IP Library Granted Patent US 8,908,058
Granted Patent B2
US 8,908,058 · App. 13/155,882 · Granted Dec 9, 2014

Storage and transmission of pictures including multiple frames

Inventors: Kurt Barton Akeley (Saratoga, CA); Yi-Ren Ng (Redwood City, CA); Kenneth Wayne Waters (San Jose, CA); Kayvon Fatahalian (San Francisco, CA); Timothy James Knight (Palo Alto, CA); Yuriy Aleksandrovich Romanenko (Campbell, CA)
Assignee: Lytro, Inc.
H04N5/232H04N9/8205H04N5/772
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 8,908,058
App. No.
13/155,882
Granted
Dec 9, 2014
Kind
B2
Abstract

According to various embodiments, multiple frames, each having image data and metadata, can be aggregated into pictures. The frames may come from different image capture devices, enabling aggregation of image data from multiple sources. Aggregation can be automatic, or it can be performed in response to user input specifying particular combinations of frames to be aggregated. In various embodiments, pictures are mutable, whereas immutability of the constituent frames is enforced. In various embodiments, certain metadata elements that are not essential to rendering can be selectively removed from frames, so as to address privacy concerns. In various embodiments, frames can be authenticated by the use of digests generated by a hash function.

Claims (79)

1. A system for generating an image from a plurality of component elements captured by different image capture devices, the system comprising:

a plurality of image capture devices, each image capture device comprising:

an image capture mechanism, configured to:

capture at least one image;

acquire metadata associated with the captured at least one image; and

generate at least one frame, each frame comprising a captured image and metadata associated with the captured image;

a hash module, configured to apply a hash function to generate at least one digest from the captured image and metadata in at least one frame;

a storage device, communicatively coupled to the image capture mechanism and to the hash module, configured to store the at least one frame and the at least one digest; and

a communications interface, configured to transmit the at least one digest to at least one other device;

an image renderer, configured to render a viewable image from a plurality of frames by:

receiving a plurality of digests from image capture devices, each digest identifying a corresponding frame;

obtaining frames corresponding to the received digests, each obtained frame comprising an image and metadata associated with the image;

authenticating at least one of the obtained frames by applying a hash module to the image and metadata in the obtained frame and comparing the result with the corresponding received digest; and

combining the plurality of obtained frames to generate a viewable image; and

an output device, communicatively coupled to the image renderer, for outputting the viewable image.

2. The system of claim 1 , wherein the image renderer is associated with a server, and wherein obtaining frames corresponding to the received digests comprises obtaining the frames at the server.

3. The system of claim 1 , wherein the image renderer is associated with an image capture device, and wherein obtaining frames corresponding to the received comprises obtaining the frames at the image capture device associated with the image renderer.

4. The system of claim 1 , wherein the image capture device is configured to transmit at least one generated frame to a server responsive to a trigger event.

5. The system of claim 4 , wherein the trigger event comprises availability of sufficient bandwidth to transmit at least one generated frame.

6. The system of claim 1 , wherein each image capture device comprises a camera.

7. The system of claim 1 , wherein:

the image renderer combines the plurality of obtained frames using at least a subset of the metadata in the obtained frames.

8. The system of claim 1 , wherein the communications interface is configured to transmit the at least one digest to at least one other device via an electronic network.

9. The system of claim 1 , wherein the image renderer is configured to obtain the frames via an electronic network.

10. The system of claim 1 , wherein the storage device is configured to store a container file associated with a plurality of frames, each frame comprising:

a captured image; and

metadata associated with the captured image;

wherein the container file is further associated with instructions for combining the frames with one another;

and wherein the image renderer is further configured to perform at least one operation on at least a subset of the frames according to the instructions.

11. The system of claim 1 , wherein at least one of the image capture devices comprises a camera.

12. The system of claim 1 , wherein at least one of the captured images comprises a light field image.

13. The system of claim 1 , wherein the metadata comprises a plurality of name-value pairs.

14. The system of claim 1 , wherein the metadata is represented using JavaScript Object Notation.

15. The system of claim 1 , wherein the metadata comprises at least one selected from the group consisting of:

a description of equipment used to capture the captured image;

a description of settings used when capturing the captured image;

a location associated with the captured image;

at least one parameter associated with the image data; and

light field data associated with the image data.

16. The system of claim 1 , wherein the metadata comprises at least one removable metadata section.

17. A method for generating an image from a plurality of component elements captured by different image capture devices, the method comprising:

at a first device in a plurality of image capture devices:

capturing at least one image;

acquiring metadata associated with the captured at least one image; and

generating at least one frame, each frame comprising a captured image and metadata associated with the captured image;

storing the at least one frame;

receiving at least one digest from at least one second device, each digest having been generated by application of a hash function to a frame comprising a captured image and metadata associated with the captured image, each digest identifying a corresponding frame;

subsequently obtaining at least one frame corresponding to the at least one received digest, each obtained frame comprising an image and metadata associated with the image;

authenticating the obtained frame by applying a hash module to the image and metadata in the obtained frame and comparing the result with the corresponding received digest;

combining the obtained frame with at least one frame generated at the first device, to generate a viewable image; and

outputting the viewable image.

18. The method of claim 17 , wherein obtaining at least one frame comprises obtaining the at least one frame from a server.

19. The method of claim 17 , further comprising:

applying a hash function to generate at least one digest from the captured image and metadata in at least one frame; and

transmitting the generated digest to at least a second device in the plurality of image capture devices.

20. The method of claim 17 , further comprising transmitting at least one generated frame to a server.

21. The method of claim 17 , further comprising transmitting at least one generated frame to a server responsive to a trigger event.

22. The method of claim 21 , wherein the trigger event comprises availability of sufficient bandwidth to transmit at least one generated frame.

23. The method of claim 17 , wherein:

combining the obtained frame with at least one frame generated at the first device comprises combining the obtained frame with the at least one frame generated at the first device using at least a subset of the metadata in the obtained frame and using at least a subset of the data in the frame generated at the first device.

24. A computer program product for generating an image from a plurality of component elements captured by different image capture devices, the computer program product comprising:

a nontransitory computer-readable storage medium; and

computer program code, encoded on the medium, configured to cause at least one processor at a first device to perform the steps of:

capturing at least one image;

acquiring metadata associated with the captured at least one image;

generating at least one frame, each frame comprising a captured image and metadata associated with the captured image;

causing a storage device to store the at least one frame;

receiving at least one digest from at least one second device, each digest having been generated by application of a hash function to a frame comprising a captured image and metadata associated with the captured image, each digest identifying a corresponding frame;

subsequently obtaining at least one frame corresponding to the at least one received digest, each obtained frame comprising an image and metadata associated with the image;

authenticating the obtained frame by applying a hash module to the image and metadata in the obtained frame and comparing the result with the corresponding received digest;

combining the obtained frame with at least one frame generated at the first device, to generate a viewable image; and

causing an output device to output the viewable image.

25. The computer program product of claim 24 , wherein the computer program code configured to cause at least one processor to obtain at least one frame comprises computer program code configured to cause at least one processor to obtain the at least one frame from a server.

26. The computer program product of claim 24 , further comprising computer program code configured to cause at least one processor to perform the steps of:

applying a hash function to generate at least one digest from the captured image and metadata in at least one frame; and

transmitting the generated digest to at least a second device.

27. The computer program product of claim 26 , further comprising computer program code configured to cause at least one processor to transmit at least one generated frame to a server.

28. The computer program product of claim 24 , wherein the computer program code configured to cause at least one processor to combine the obtained frame with at least one frame generated at the first device comprises computer program code configured to cause at least one processor to

combine the obtained frame with the at least one frame generated at the first device using at least a subset of the metadata in the obtained frame and using at least a subset of the data in the frame generated at the first device.

Assignments (4)
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 →
SECURITY AGREEMENT Recorded Jan 31, 2013
From: LYTRO, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 029732/0787 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2011
From: AKELEY, KURT BARTON; NG, YI-REN; WATERS, KENNETH WAYNE; FATAHALIAN, KAYVON; KNIGHT, TIMOTHY JAMES; ROMANENKO, YURIY ALEKSANDROVICH
To: LYTRO, INC.
Reel/Frame 026410/0256 →
Continuity (3)
Continuation In Part 12703367 · Feb 10, 2010
Provisional Application 61170620 · Apr 18, 2009
Related Publication 20110234841A1 · Sep 29, 2011