# Patent

## Title
Systems and methods for encoding light field image files having a depth map

## Abstract

Systems and methods configured to store images synthesized from light field image data and metadata describing the images in electronic files and render images using the stored image and the metadata in accordance with embodiments of the invention are disclosed. One embodiment includes a processor and memory containing an encoding application and light field image data, where the light field image data comprises a plurality of low resolution images of a scene captured from different viewpoints. In addition, the encoding application configures the processor to: synthesize a higher resolution image of the scene from a reference viewpoint using the low resolution images, where synthesizing the higher resolution image involves creating a depth map that specifies depths from the reference viewpoint for pixels in the higher resolution image; encode the higher resolution image; and create a light field image file including the encoded image and metadata including the depth map.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
The present invention is a continuation of U.S. patent application Ser. No. 14/477,396, filed Sep. 4, 2014, which is a continuation of U.S. patent application Ser. No. 13/631,731, filed Sep. 28, 2012, which claims priority to U.S. Provisional Application No. 61/540,188 entitled “JPEG-DX: A Backwards-compatible, Dynamic Focus Extension to JPEG”, to Venkataraman et al. and filed Sep. 28, 2011, the disclosures of which are incorporated herein by reference in their entirety.


FIELD OF THE INVENTION
The present invention relates to encoding of image files and more specifically to the encoding of light field image files.
BACKGROUND
The ISO/IEC 10918-1 standard, more commonly referred to as the JPEG standard after the Joint Photographic Experts Group that developed the standard, establishes a standard process for digital compression and coding of still images. The JPEG standard specifies a codec for compressing an image into a bitstream and for decompressing the bitstream back into an image.
A variety of container file formats including the JPEG File Interchange Format (JFIF) specified in ISO/IEC 10918-5 and the Exchangeable Image File Format (Exif) and can be used to store a JPEG bitstream. JFIF can be considered a minimal file format that enables JPEG bitstreams to be exchanged between a wide variety of platforms and applications. The color space used in JFIF files is YCbCr as defined by CCIR Recommendation 601, involving 256 levels. The Y, Cb, and Cr components of the image file are converted from R, G, and B, but are normalized so as to occupy the full 256 levels of an 8-bit binary encoding. YCbCr is one of the compression formats used by JPEG. Another popular option is to perform compression directly on the R, G and B color planes. Direct RGB color plane compression is also popular when lossless compression is being applied.
A JPEG bitstream stores 16-bit word values in big-endian format. JPEG data in general is stored as a stream of blocks, and each block is identified by a marker value. The first two bytes of every JPEG bitstream are the Start Of Image (SOI) marker values FFh D8h. In a JFIF-compliant file there is a JFIF APP0 (Application) marker, immediately following the SOI, which consists of the marker code values FFh E0h and the characters JFIF in the marker data, as described in the next section. In addition to the JFIF marker segment, there may be one or more optional JFIF extension marker segments, followed by the actual image data.
Overall the JFIF format supports sixteen “Application markers” to store metadata. Using application markers makes it is possible for a decoder to parse a JFIF file and decode only required segments of image data. Application markers are limited to 64K bytes each but it is possible to use the same maker ID multiple times and refer to different memory segments.
An APP0 marker after the SOI marker is used to identify a JFIF file. Additional APP0 marker segments can optionally be used to specify JFIF extensions. When a decoder does not support decoding a specific JFIF application marker, the decoder can skip the segment and continue decoding.
One of the most popular file formats used by digital cameras is Exif. When Exif is employed with JPEG bitstreams, an APP1 Application marker is used to store the Exif data. The Exif tag structure is borrowed from the Tagged Image File Format (TIFF) maintained by Adobe Systems Incorporated of San Jose, Calif.
SUMMARY OF THE INVENTION
Systems and methods in accordance with embodiments of the invention are configured to store images synthesized from light field image data and metadata describing the images in electronic files. One embodiment of the invention includes a processor and memory containing an encoding application and light field image data, where the light field image data comprises a plurality of low resolution images of a scene captured from different viewpoints. In addition, the encoding application configures the processor to: synthesize a higher resolution image of the scene from a reference viewpoint using the low resolution images, where synthesizing the higher resolution image involves creating a depth map that specifies depths from the reference viewpoint for pixels in the higher resolution image; encode the higher resolution image; and create a light field image file including the encoded image and metadata describing the encoded image, where the metadata includes the depth map.
In a further embodiment, the encoding application configures the processor to encode the depth map and the depth map included in the metadata describing the encoded image is the encoded depth map.
In another embodiment, synthesizing the higher resolution image involves identifying pixels in the plurality of low resolution images of the scene that are occluded in the reference viewpoint, and the metadata describing the encoded image in the light field image file includes descriptions of the occluded pixels.
In a still further embodiment, the descriptions of the occluded pixels include colors, locations, and depths of the occluded pixels.
In still another embodiment, synthesizing the higher resolution image involves creating a confidence map for the depth map, where the confidence map indicates the reliability of the depth value for a pixel in the depth map, and the metadata describing the encoded image in the light field image file includes the confidence map.
In a yet further embodiment, the encoding application configures the processor to encode the confidence map.
In yet another embodiment, the encoding application configures the processor to generate an edge map that indicates pixels in the synthesized image that lie on a discontinuity, and the metadata describing the encoded image in the light field image file includes the edge map.
In a further embodiment again, the edge map identifies whether a pixel lies on an intensity discontinuity.
In another embodiment again, the edge map identifies whether a pixel lies on an intensity and depth discontinuity.
In a further additional embodiment, the encoding application configures the processor to encode the edge map.
In another additional embodiment, the encoding application configures the processor to generate a missing pixel map that indicates pixels in the synthesized image that do not correspond to a pixel from the plurality of low resolution images of the scene and that are generated by interpolating pixel values from adjacent pixels in the synthesized image, and the metadata describing the encoded image in the light field image file includes the missing pixels map.
In a still yet further embodiment, the encoding application configures the processor to encode the missing pixels map.
In still yet another embodiment, the metadata also includes a focal plane.
In a still further embodiment again, the light field image file conforms to the JFIF standard.
In still another embodiment again, the high resolution image is encoded in accordance with the JPEG standard.
In a still further additional embodiment, the metadata is located within an Application marker segment within the light field image file.
In still another additional embodiment, the Application marker segment is identified using the APPS marker.
In a yet further embodiment again, the encoding application configures the processor to encode the depth map in accordance with the JPEG standard using lossless compression and the encoded depth map is stored within the Application marker segment containing the metadata.
In yet another embodiment again, synthesizing the higher resolution images involves identifying pixels from the plurality of low resolution images of the scene that are occluded in the reference viewpoint, and descriptions of the occluded pixels are stored within the Application marker segment containing the metadata.
In a yet further additional embodiment, the descriptions of the occluded pixels include colors, locations, and depths of the occluded pixels.
In yet another additional embodiment, synthesizing the higher resolution image involves creating a confidence map for the depth map, where the confidence map indicates the reliability of the depth value for a pixel in the depth map, and the confidence map is stored within the Application marker segment containing the metadata.
In a further additional embodiment again, the encoding application configures the processor to encode the confidence map in accordance with the JPEG standard using lossless compression.
In another additional embodiment again, the encoding application configures the processor to generate an edge map that indicates pixels in the synthesized image that lie on a discontinuity, and the edge map is stored within the Application marker segment containing the metadata.
In a still yet further embodiment again, the edge map identifies whether a pixel lies on an intensity discontinuity.
In still yet another embodiment again, the edge map identifies whether a pixel lies on an intensity and depth discontinuity.
In a still yet further additional embodiment, the encoding application configures the processor to encode the edge map in accordance with the JPEG standard using lossless compression.
In still yet another additional embodiment, the encoding application configures the processor to generate a missing pixel map that indicates pixels in the synthesized image that do not correspond to a pixel from the plurality of low resolution images of the scene and that are generated by interpolating pixel values from adjacent pixels in the synthesized image, and the missing pixel map is stored within the Application marker segment containing the metadata.
In a yet further additional embodiment again, the encoding application configures the processor to encode the missing pixels map in accordance with the JPEG standard using lossless compression.
An embodiment of the method of the invention includes synthesize a higher resolution image of a scene from a reference viewpoint and a depth map that describes depths of pixels in the synthesized image using an encoding device and light field image data, where the light field image data comprises a plurality of low resolution images of a scene captured from different viewpoints and synthesizing the higher resolution image includes creating a depth map that specifies depths from the reference viewpoint for pixels in the higher resolution image, encoding the higher resolution image using the encoding device, and creating a light field image file including the encoded image and metadata describing the encoded image using the encoding device, where the metadata includes the depth map.
Another embodiment of the invention includes a machine readable medium containing processor instructions, where execution of the instructions by a processor causes the processor to perform a process involving: synthesizing a higher resolution image of a scene from a reference viewpoint using light field image data, where the light field image data comprises a plurality of low resolution images of a scene captured from different viewpoints and synthesizing the higher resolution image includes creating a depth map that specifies depths from the reference viewpoint for pixels in the higher resolution image; encoding the higher resolution image; and creating a light field image file including the encoded image and metadata describing the encoded image, where the metadata includes the depth map.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 conceptually illustrates the architecture of an array camera configured to generate light field image files in accordance with embodiments of the invention.
FIG. 2 is a flow chart of a process for creating a light field image file including an image synthesized from light field image data and a depth map for the synthesized image generated using the light field image data in accordance with an embodiment of the invention.
FIG. 3 is a process for creating a light field image file that conforms to the JFIF standard and that includes an image encoded in accordance with the JPEG standard in accordance with an embodiment of the invention.
FIG. 4 illustrates an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 5 illustrates a “DZ Selection Descriptor” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 6 illustrates a “Depth Map, Camera Array and Auxiliary Maps Selection Descriptor” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 7 illustrates a “Depth Map, Camera Array and Auxiliary Maps Compression Descriptor” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 8 illustrates a “Depth Map Attributes” field within a “Depth Map Header” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 9 illustrates a “Depth Map Descriptor” field within a “Depth Map Header” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 10 illustrates a “Depth Map Data Descriptor” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 11 illustrates a “Camera Array Attributes” field within a “Camera Array Header” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 12 illustrates a “Camera Array Descriptor” field within a “Camera Array Header” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 13 illustrates an “Individual Camera Descriptor” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 14 illustrates “Individual Camera Data” within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 15 illustrates an “Individual Pixel Data Structure” within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 16 illustrates an “Auxiliary Map Descriptor” within an “Auxiliary Map Header” contained within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 17 illustrates an “Auxiliary Map Data Descriptor” within an APP9 Application marker segment of a light field image file that conforms to the JFIF standard in accordance with an embodiment of the invention.
FIG. 18 illustrates a network including at least one encoding device configured to capture light field image data and encode light field image files and to share the light field image file with rendering devices via a network in accordance with an embodiment of the invention.
FIG. 19 conceptually illustrates a rendering device configured by a rendering application to render an image using a light field image file.
FIG. 20 is a flow chart illustrating a process for rendering an image using a light field image file in accordance with an embodiment of the invention.
FIG. 21 conceptually illustrates a rendering device configured by a rendering application to render an image using a light field image file containing an image and/or a map encoded in accordance with the JPEG standard.
FIG. 22 is a flow chart illustrating a process for rendering an image using a light field image file that conforms to the JFIF standard and includes an image encoded in accordance with the JPEG standard and metadata describing the encoded image.
FIG. 23 is a flow chart illustrating a process applying depth dependent effects to an encoded image contained within the light field image file based upon a depth map contained within the light field image file in accordance with an embodiment of the invention.
FIG. 24 is a flow chart illustrating a process for rendering an image from a different viewpoint to a reference viewpoint of an image contained within a light field image file in accordance with an embodiment of the invention.
FIG. 25 is a plan view of a camera array with a plurality of imagers, according to one embodiment.
FIGS. 26A through 26E are plan views of camera arrays having different layouts of heterogeneous imagers, according to embodiments of the invention.



DETAILED DESCRIPTION
Turning now to the drawings, systems and methods for storing images synthesized from light field image data and metadata describing the images in electronic files and for rendering images using the stored images and metadata in accordance with embodiments of the invention are illustrated. A file containing an image synthesized from light field image data and metadata derived from the light field image data can be referred to as a light field image file. As is discussed further below, the encoded image in a light field image file is typically synthesized using a super resolution process from a number of lower resolution images. The light field image file can also include metadata describing the synthesized image derived from the light field image data that enables post processing of the synthesized image. In many embodiments, a light field image file is created by encoding an image synthesized from light field image data and combining the encoded image with a depth map derived from the light field image data. In several embodiments, the encoded image is synthesized from a reference viewpoint and the metadata includes information concerning pixels in the light field image that are occluded from the reference viewpoint. In a number of embodiments, the metadata can also include additional information including (but not limited to) auxiliary maps such as confidence maps, edge maps, and missing pixel maps that can be utilized during post processing of the encoded image to improve the quality of an image rendered using the light field image data file.
In many embodiments, the light field image file is compatible with the JPEG File Interchange Format (JFIF). The synthesized image is encoded as a JPEG bitstream and stored within the file. The accompanying depth map, occluded pixels and/or any appropriate additional information including (but not limited to) auxiliary maps are then stored within the JFIF file as metadata using an Application marker to identify the metadata. A legacy rendering device can simply display the synthesized image by decoding the JPEG bitstream. Rendering devices in accordance with embodiments of the invention can perform additional post-processing on the decoded JPEG bitstream using the depth map and/or any available auxiliary maps. In many embodiments, the maps included in the metadata can also be compressed using lossless JPEG encoding and decoded using a JPEG decoder. Although much of the discussion that follows references the JFIF and JPEG standards, these standards are simply discussed as examples and it should be appreciated that similar techniques can be utilized to embed metadata derived from light field image data used to synthesize the encoded image within a variety of standard file formats, where the synthesized image and/or maps are encoded using any of a variety of standards based image encoding processes.
By transmitting a light field image file including an encoded image, and metadata describing the encoded image, a rendering device (i.e. a device configured to generate an image rendered using the information within the light field image file) can render new images using the information within the file without the need to perform super resolution processing on the original light field image data. In this way, the amount of data transmitted to the rendering device and the computational complexity of rendering an image is reduced. In several embodiments, rendering devices are configured to perform processes including (but not limited to) refocusing the encoded image based upon a focal plane specified by the user, synthesizing an image from a different viewpoint, and generating a stereo pair of images. The capturing of light field image data and the encoding and decoding of light field image files in accordance with embodiments of the invention are discussed further below.
Capturing Light Field Image Data
A light field, which is often defined as a 4D function characterizing the light from all direction at all points in a scene, can be interpreted as a two-dimensional (2D) collection of 2D images of a scene. Array cameras, such as those described in U.S. patent application Ser. No. 12/935,504 entitled “Capturing and Processing of Images using Monolithic Camera Array with Heterogeneous Imagers” to Venkataraman et al., can be utilized to capture light field images. In a number of embodiments, super resolution processes such as those described in U.S. patent application Ser. No. 12/967,807 entitled “Systems and Methods for Synthesizing High Resolution Images Using Super-Resolution Processes” to Lelescu et al., are utilized to synthesize a higher resolution 2D image or a stereo pair of higher resolution 2D images from the lower resolution images in the light field captured by an array camera. The terms high or higher resolution and low or lower resolution are used here in a relative sense and not to indicate the specific resolutions of the images captured by the array camera. The disclosures of U.S. patent application Ser. No. 12/935,504 and U.S. patent application Ser. No. 12/967,807 are hereby incorporated by reference in their entirety.
Array Cameras
Embodiments relate to using a distributed approach to capturing images using a plurality of imagers of different imaging characteristics. Each imager may be spatially shifted from another imager in such a manner that an imager captures an image that us shifted by a sub-pixel amount with respect to another imager captured by another imager. Each imager may also include separate optics with different filters and operate with different operating parameters (e.g., exposure time). Distinct images generated by the imagers are processed to obtain an enhanced image. Each imager may be associated with an optical element fabricated using wafer level optics (WLO) technology.
A sensor element or pixel refers to an individual light sensing element in a camera array. The sensor element or pixel includes, among others, traditional CIS (CMOS Image Sensor), CCD (charge-coupled device), high dynamic range pixel, multispectral pixel and various alternatives thereof.
An imager refers to a two dimensional array of pixels. The sensor elements of each imager have similar physical properties and receive light through the same optical component. Further, the sensor elements in the each imager may be associated with the same color filter.
A camera array refers to a collection of imagers designed to function as a unitary component. The camera array may be fabricated on a single chip for mounting or installing in various devices.
An array of camera arrays refers to an aggregation of two or more camera arrays. Two or more camera arrays may operate in conjunction to provide extended functionality over a single camera array.
Image characteristics of an imager refer to any characteristics or parameters of the imager associated with capturing of images. The imaging characteristics may include, among others, the size of the imager, the type of pixels included in the imager, the shape of the imager, filters associated with the imager, the exposure time of the imager, aperture size associated with the imager, the configuration of the optical element associated with the imager, gain of the imager, the resolution of the imager, and operational timing of the imager.
Structure of Camera Array
FIG. 25 is a plan view of a camera array 2500 with imagers 1A through NM, according to one embodiment. The camera array 2500 is fabricated on a semiconductor chip to include a plurality of imagers 1A through NM. Each of the imagers 1A through NM may include a plurality of pixels (e.g., 0.32 Mega pixels). In one embodiment, the imagers 1A through NM are arranged into a grid format as illustrated in FIG. 25. In other embodiments, the imagers are arranged in a non-grid format. For example, the imagers may be arranged in a circular pattern, zigzagged pattern or scattered pattern.
The camera array may include two or more types of heterogeneous imagers, each imager including two or more sensor elements or pixels. Each one of the imagers may have different imaging characteristics. Alternatively, there may be two or more different types of imagers where the same type of imagers shares the same imaging characteristics.
In one embodiment, each imager 1A through NM has its own filter and/or optical element (e.g., lens). Specifically, each of the imagers 1A through NM or a group of imagers may be associated with spectral color filters to receive certain wavelengths of light. Example filters include a traditional filter used in the Bayer pattern (R, G, B or their complements C, M, Y), an IR-cut filter, a near-IR filter, a polarizing filter, and a custom filter to suit the needs of hyper-spectral imaging. Some imagers may have no filter to allow reception of both the entire visible spectra and near-IR, which increases the imager's signal-to-noise ratio. The number of distinct filters may be as large as the number of imagers in the camera array. Further, each of the imagers 1A through NM or a group of imagers may receive light through lens having different optical characteristics (e.g., focal lengths) or apertures of different sizes.
In one embodiment, the camera array includes other related circuitry. The other circuitry may include, among others, circuitry to control imaging parameters and sensors to sense physical parameters. The control circuitry may control imaging parameters such as exposure times, gain, and black level offset. The sensor may include dark pixels to estimate dark current at the operating temperature. The dark current may be measured for on-the-fly compensation for any thermal creep that the substrate may suffer from.
In one embodiment, the circuit for controlling imaging parameters may trigger each imager independently or in a synchronized manner. The start of the exposure periods for the various imagers in the camera array (analogous to opening a shutter) may be staggered in an overlapping manner so that the scenes are sampled sequentially while having several imagers being exposed to light at the same time. In a conventional video camera sampling a scene at N exposures per second, the exposure time per sample is limited to 1/N seconds. With a plurality of imagers, there is no such limit to the exposure time per sample because multiple imagers may be operated to capture images in a staggered manner.
Each imager can be operated independently. Entire or most operations associated with each individual imager may be individualized. In one embodiment, a master setting is programmed and deviation (i.e., offset or gain) from such master setting is configured for each imager. The deviations may reflect functions such as high dynamic range, gain settings, integration time settings, digital processing settings or combinations thereof. These deviations can be specified at a low level (e.g., deviation in the gain) or at a higher level (e.g., difference in the ISO number, which is then automatically translated to deltas for gain, integration time, or otherwise as specified by context/master control registers) for the particular camera array. By setting the master values and deviations from the master values, higher levels of control abstraction can be achieved to facilitate simpler programming model for many operations. In one embodiment, the parameters for the imagers are arbitrarily fixed for a target application. In another embodiment, the parameters are configured to allow a high degree of flexibility and programmability.
In one embodiment, the camera array is designed as a drop-in replacement for existing camera image sensors used in cell phones and other mobile devices. For this purpose, the camera array may be designed to be physically compatible with conventional image sensors of approximately the same resolution although the achieved resolution of the camera array may exceed conventional image sensors in many photographic situations. Taking advantage of the increased performance, the camera array of the embodiment may include fewer pixels to obtain equal or better quality images compared to conventional image sensors. Alternatively, the size of the pixels in the imager may be reduced compared to pixels in conventional image sensors while achieving comparable results.
In order to match the raw pixel count of a conventional image sensor without increasing silicon area, the logic overhead for the individual imagers is preferably constrained in the silicon area. In one embodiment, much of the pixel control logic is a single collection of functions common to all or most of the imagers with a smaller set of functions applicable each imager. In this embodiment, the conventional external interface for the imager may be used because the data output does not increase significantly for the imagers.
The number of imagers in the camera array may be determined based on, among other factors, (i) resolution, (ii) parallax, (iii) sensitivity, and (iv) dynamic range. A first factor for the size of imager is the resolution. From a resolution point of view, the preferred number of the imagers ranges from 2×2 to 6×6 because an array size of larger than 6×6 is likely to destroy frequency information that cannot be recreated by the super-resolution process. For example, 8 Megapixel resolution with 2×2 imager will require each imager to have 2 Megapixels. Similarly, 8 Megapixel resolution with a 5×5 array will require each imager to have 0.32 Megapixels.
A second factor that may constrain the number of imagers is the issue of parallax and occlusion. With respect to an object captured in an image, the portion of the background scene that is occluded from the view of the imager is called as “occlusion set.” When two imagers capture the object from two different locations, the occlusion set of each imager is different. Hence, there may be scene pixels captured by one imager but not the other. To resolve this issue of occlusion, it is desirable to include a certain minimal set of imagers for a given type of imager.
A third factor that may put a lower bound on the number of imagers is the issue of sensitivity in low light conditions. To improve low light sensitivity, imagers for detecting near-IR spectrum may be needed. The number of imagers in the camera array may need to be increased to accommodate such near-IR imagers.
A fourth factor in determining the size of the imager is dynamic range. To provide dynamic range in the camera array, it is advantageous to provide several imagers of the same filter type (chroma or luma). Each imager of the same filter type may then be operated with different exposures simultaneously. The images captured with different exposures may be processed to generate a high dynamic range image.
Based on these factors, the preferred number of imagers is 2×2 to 6×6. 4×4 and 5×5 configurations are more preferable than 2×2 and 3×3 configurations because the former are likely to provide sufficient number of imagers to resolve occlusion issues, increase sensitivity and increase the dynamic range. At the same time, the computational load required to recover resolution from these array sizes will be modest in comparison to that required in the 6×6 array. Arrays larger than 6×6 may, however, be used to provide additional features such as optical zooming and multispectral imaging.
Another consideration is the number of imagers dedicated to luma sampling. By ensuring that the imagers in the array dedicated to near-IR sampling do not reduce the achieved resolution, the information from the near-IR images is added to the resolution captured by the luma imagers. For this purpose, at least 50% of the imagers may be used for sampling the luma and/or near-IR spectra. In one embodiment with 4×4 imagers, 4 imagers samples luma, 4 imagers samples near-IR, and the remaining 8 imagers samples two chroma (Red and Blue). In another embodiment with 5×5 imagers, 9 imagers samples luma, 8 imagers samples near-IR, and the remaining 8 imagers samples two chroma (Red and Blue). Further, the imagers with these filters may be arranged symmetrically within the camera array to address occlusion due to parallax.
In one embodiment, the imagers in the camera array are spatially separated from each other by a predetermined distance. By increasing the spatial separation, the parallax between the images captured by the imagers may be increased. The increased parallax is advantageous where more accurate distance information is important. Separation between two imagers may also be increased to approximate the separation of a pair of human eyes. By approximating the separation of human eyes, a realistic stereoscopic 3D image may be provided to present the resulting image on an appropriate 3D display device.
In one embodiment, multiple camera arrays are provided at different locations on a device to overcome space constraints. One camera array may be designed to fit within a restricted space while another camera array may be placed in another restricted space of the device. For example, if a total of 20 imagers are required but the available space allows only a camera array of 1×10 imagers to be provided on either side of a device, two camera arrays each including 10 imagers may be placed on available space at both sides of the device. Each camera array may be fabricated on a substrate and be secured to a motherboard or other parts of a device. The images collected from multiple camera arrays may be processed to generate images of desired resolution and performance.
A design for a single imager may be applied to different camera arrays each including other types of imagers. Other variables in the camera array such as spatial distances, color filters and combination with the same or other sensors may be modified to produce a camera array with differing imaging characteristics. In this way, a diverse mix of camera arrays may be produced while maintaining the benefits from economies of scale.
FIGS. 26A through 26E illustrate various configurations of imagers for obtaining a high resolution image through a super-resolution process, according to embodiments of the present invention. In FIGS. 26A through 26E, “R” represents an imager having a red filter, “G” represents a imager having a green filter, “B” represents an imager having a blue filter, “P” represents a polychromatic imager having sensitivity across the entire visible spectra and near-IR spectrum, and “I” represents an imager having a near-IR filter. The polychromatic imager may sample image from all parts of the visible spectra and the near-IR region (i.e., from 650 nm to 800 nm). In the embodiment of FIG. 26A, the center columns and rows of the imagers include polychromatic imagers. The remaining areas of the camera array are filled with imagers having green filters, blue filters, and red filters. The embodiment of FIG. 26A does not include any imagers for detecting near-IR spectrum alone.
The embodiment of FIG. 26B has a configuration similar to conventional Bayer filter mapping. This embodiment does not include any polychromatic imagers or near-IR imagers. As described above in detail with reference to FIG. 25, the embodiment of FIG. 26B is different from conventional Bayer filter configuration in that each color filter is mapped to each imager instead of being mapped to an individual pixel.
FIG. 26C illustrates an embodiment where the polychromatic imagers form a symmetric checkerboard pattern. FIG. 26D illustrates an embodiment where four near-IR imagers are provided. FIG. 26E illustrates an embodiment with irregular mapping of imagers. The embodiments of FIGS. 26A through 26E are merely illustrative and various other layouts of imagers can also be used.
The use of polychromatic imagers and near-IR imagers is advantageous because these sensors may capture high quality images in low lighting conditions. The images captured by the polychromatic imager or the near-IR imager are used to denoise the images obtained from regular color imagers.
The premise of increasing resolution by aggregating multiple low resolution images is based on the fact that the different low resolution images represent slightly different viewpoints of the same scene. If the LR images are all shifted by integer units of a pixel, then each image contains essentially the same information. Therefore, there is no new information in LR images that can be used to create the HR image. In the imagers according to embodiments, the layout of the imagers may be preset and controlled so that each imager in a row or a column is a fixed sub-pixel distance from its neighboring imagers. The wafer level manufacturing and packaging process allows accurate formation of imagers to attain the sub-pixel precisions required for the super-resolution processing.
An issue of separating the spectral sensing elements into different imagers is parallax caused by the physical separation of the imagers. By ensuring that the imagers are symmetrically placed, at least two imagers can capture the pixels around the edge of a foreground object. In this way, the pixels around the edge of a foreground object may be aggregated to increase resolution as well as avoiding any occlusions. Another issue related to parallax is the sampling of color. The issue of sampling the color may be reduced by using parallax information in the polychromatic imagers to improve the accuracy of the sampling of color from the color filtered imagers.
In one embodiment, near-IR imagers are used to determine relative luminance differences compared to a visible spectra imager. Objects have differing material reflectivity results in differences in the images captured by the visible spectra and the near-IR spectra. At low lighting conditions, the near-IR imager exhibits a higher signal to noise ratios. Therefore, the signals from the near-IR sensor may be used to enhance the luminance image. The transferring of details from the near-IR image to the luminance image may be performed before aggregating spectral images from different imagers through the super-resolution process. In this way, edge information about the scene may be improved to construct edge-preserving images that can be used effectively in the super-resolution process.
Image Fusion of Color Images with Near-IR Images
The spectral response of CMOS imagers is typically very good in the near-IR regions covering 650 nm to 800 nm and reasonably good between 800 nm and 1000 nm. Although near-IR images having no chroma information, information in this spectral region is useful in low lighting conditions because the near-IR images are relatively free of noise. Hence, the near-IR images may be used to denoise color images under the low lighting conditions.
In one embodiment, an image from a near-IR imager is fused with another image from a visible light imager. Before proceeding with the fusion, a registration is performed between the near-IR image and the visible light image to resolve differences in viewpoints. The registration process may be performed in an offline, one-time, processing step. After the registration is performed, the luminance information on the near-IR image is interpolated to grid points that correspond to each grid point on the visible light image.
After the pixel correspondence between the near-IR image and the visible light image is established, denoising and detail transfer process may be performed. The denoising process allows transfer of signal information from the near-IR image to the visible light image to improve the overall SNR of the fusion image. The detail transfer ensures that edges in the near-IR image and the visible light image are preserved and accentuated to improve the overall visibility of objects in the fused image.
In one embodiment, a near-IR flash may serve as a near-IR light source during capturing of an image by the near-IR imagers. Using the near-IR flash is advantageous, among other reasons, because (i) the harsh lighting on objects of interest may be prevented, (ii) ambient color of the object may be preserved, and (iii) red-eye effect may be prevented.
In one embodiment, a visible light filter that allows only near-IR rays to pass through is used to further optimize the optics for near-IR imaging. The visible light filter improves the near-IR optics transfer function because the light filter results in sharper details in the near-IR image. The details may then be transferred to the visible light images using a dual bilateral filter.
Dynamic Range Determination by Differing Exposures at Imagers
An auto-exposure (AE) algorithm is important to obtaining an appropriate exposure for the scene to be captured. The design of the AE algorithm affects the dynamic range of captured images. The AE algorithm determines an exposure value that allows the acquired image to fall in the linear region of the camera array's sensitivity range. The linear region is preferred because a good signal-to-noise ratio is obtained in this region. If the exposure is too low, the picture becomes under-saturated while if the exposure is too high the picture becomes over-saturated. In conventional cameras, an iterative process is taken to reduce the difference between measured picture brightness and previously defined brightness below a threshold. This iterative process requires a large amount of time for convergence, and sometimes results in an unacceptable shutter delay.
In one embodiment, the picture brightness of images captured by a plurality of imagers is independently measured. Specifically, a plurality of imagers are set to capturing images with different exposures to reduce the time for computing the adequate exposure. For example, in a camera array with 5×5 imagers where 8 luma imagers and 9 near-IR imagers are provided, each of the imagers may be set with different exposures. The near-IR imagers are used to capture low-light aspects of the scene and the luma imagers are used to capture the high illumination aspects of the scene. This results in a total of 17 possible exposures. If exposure for each imager is offset from an adjacent imager by a factor of 2, for example, a maximum dynamic range of 217 or 102 dB can be captured. This maximum dynamic range is considerably higher than the typical 48 dB attainable in a conventional camera with 8 bit image outputs.
At each time instant, the responses (under-exposed, over-exposed or optimal) from each of the multiple imagers are analyzed based on how many exposures are needed at the subsequent time instant. The ability to query multiple exposures simultaneously in the range of possible exposures accelerates the search compared to the case where only one exposure is tested at once. By reducing the processing time for determining the adequate exposure, shutter delays and shot-to-shot lags may be reduced.
In one embodiment, the HDR image is synthesized from multiple exposures by combining the images after linearizing the imager response for each exposure. The images from the imagers may be registered before combining to account for the difference in the viewpoints of the imagers.
In one embodiment, at least one imager includes HDR pixels to generate HDR images. HDR pixels are specialized pixels that capture high dynamic range scenes. Although HDR pixels show superior performances compared to other pixels, HDR pixels show poor performance at low lighting conditions in comparison with near-IR imagers. To improve performance at low lighting conditions, signals from the near-IR imagers may be used in conjunction with the signal from the HDR imager to attain better quality images across different lighting conditions.
In one embodiment, an HDR image is obtained by processing images captured by multiple imagers by processing. The ability to capture multiple exposures simultaneously using the imager is advantageous because artifacts caused by motion of objects in the scene can be mitigated or eliminated.
Hyperspectral Imaging by Multiple Imagers
In one embodiment, a multi-spectral image is rendered by multiple imagers to facilitate the segmentation or recognition of objects in a scene. Because the spectral reflectance coefficients vary smoothly in most real world objects, the spectral reflectance coefficients may be estimated by capturing the scene in multiple spectral dimensions using imagers with different color filters and analyzing the captured images using Principal Components Analysis (PCA).
In one embodiment, half of the imagers in the camera array are devoted to sampling in the basic spectral dimensions (R, G, and B) and the other half of the imagers are devoted to sampling in a shifted basic spectral dimensions (R′, G′, and B′). The shifted basic spectral dimensions are shifted from the basic spectral dimensions by a certain wavelength (e.g., 10 nm).
In one embodiment, pixel correspondence and non-linear interpolation is performed to account for the sub-pixel shifted views of the scene. Then the spectral reflectance coefficients of the scene are synthesized using a set of orthogonal spectral basis functions. The basis functions are eigenvectors derived by PCA of a correlation matrix and the correlation matrix is derived from a database storing spectral reflectance coefficients measured by, for example, Munsell color chips (a total of 1257) representing the spectral distribution of a wide range of real world materials to reconstruct the spectrum at each point in the scene.
At first glance, capturing different spectral images of the scene through different imagers in the camera array appears to trade resolution for higher dimensional spectral sampling. However, some of the lost resolution may be recovered. The multiple imagers sample the scene over different spectral dimensions where each sampling grid of each imager is offset by a sub-pixel shift from the others. In one embodiment, no two sampling grid of the imager overlap. That is, the superposition of all the sampling grids from all the imagers forms a dense, possibly non-uniform, montage of points. Scattered data interpolation methods may be used to determine the spectral density at each sample point in this non-uniform montage for each spectral image. In this way, a certain amount of resolution lost in the process of sampling the scene using different spectral filters may be recovered.
As described above, image segmentation and object recognition are facilitated by determining the spectral reflectance coefficients of the object. The situation often arises in security applications wherein a network of cameras is used to track an object as it moves from the operational zone of one camera to another. Each zone may have its own unique lighting conditions (fluorescent, incandescent, D65, etc.) that may cause the object to have a different appearance in each image captured by different cameras. If these cameras capture the images in a hyper-spectral mode, all images may be converted to the same illuminant to enhance object recognition performance.
In one embodiment, camera arrays with multiple imagers are used for providing medical diagnostic images. Full spectral digitized images of diagnostic samples contribute to accurate diagnosis because doctors and medical personnel can place higher confidence in the resulting diagnosis. The imagers in the camera arrays may be provided with color filters to provide full spectral data. Such camera array may be installed on cell phones to capture and transmit diagnostic information to remote locations. Further, the camera arrays including multiple imagers may provide images with a large depth of field to enhance the reliability of image capture of wounds, rashes, and other symptoms.
In one embodiment, a small imager (including, for example, 20-500 pixels) with a narrow spectral bandpass filters is used to produce a signature of the ambient and local light sources in a scene. By using the small imager, the exposure and white balance characteristics may be determined more accurately at a faster speed. The spectral bandpass filters may be ordinary color filters or diffractive elements of a bandpass width adequate to allow the number of camera arrays to cover the visible spectrum of about 400 nm. These imagers may run at a much higher frame rate and obtain data (which may or may not be used for its pictorial content) for processing into information to control the exposure and white balance of other larger imagers in the same camera array. The small imagers may also be interspersed within the camera array.
Optical Zoom Implemented Using Multiple Imagers
In one embodiment, a subset of imagers in the camera array includes telephoto lenses. The subset of imagers may have other imaging characteristics same as imagers with non-telephoto lenses. Images from this subset of imagers are combined and super-resolution processed to form a super-resolution telephoto image. In another embodiment, the camera array includes two or more subsets of imagers equipped with lenses of more than two magnifications to provide differing zoom magnifications.
Embodiments of the camera arrays may achieve its final resolution by aggregating images through super-resolution. Taking an example of providing 5×5 imagers with a 3× optical zoom feature, if 17 imagers are used to sample the luma (G) and 8 imagers are used to sample the chroma (R and B), 17 luma imagers allow a resolution that is four times higher than what is achieved by any single imager in the set of 17 imagers. If the number of the imager is increased from 5×5 to 6×6, an addition of 11 extra imagers becomes available. In comparison with the 8 Megapixel conventional image sensor fitted with a 3× zoom lens, a resolution that is 60% of the conventional image sensor is achieved when 8 of the additional 11 imagers are dedicated to sampling luma (G) and the remaining 3 imagers are dedicated to chroma (R and B) and near-IR sampling at 3× zoom. This considerably reduces the chroma sampling (or near-IR sampling) to luma sampling ratio. The reduced chroma to luma sampling ratio is somewhat offset by using the super-resolved luma image at 3× zoom as a recognition prior on the chroma (and near-IR) image to resample the chroma image at a higher resolution.
With 6×6 imagers, a resolution equivalent to the resolution of conventional image sensor is achieved at 1× zoom. At 3× zoom, a resolution equivalent to about 60% of conventional image sensor outfitted with a 3× zoom lens is obtained by the same imagers. Also, there is a decrease in luma resolution at 3× zoom compared with conventional image sensors with resolution at 3× zoom. The decreased luma resolution, however, is offset by the fact that the optics of conventional image sensor has reduced efficiency at 3× zoom due to crosstalk and optical aberrations.
The zoom operation achieved by multiple imagers has the following advantages. First, the quality of the achieved zoom is considerably higher than what is achieved in the conventional image sensor due to the fact that the lens elements may be tailored for each change in focal length. In conventional image sensors, optical aberrations and field curvature must be corrected across the whole operating range of the lens, which is considerably harder in a zoom lens with moving elements than in a fixed lens element where only aberrations for a fixed focal length need to be corrected. Additionally, the fixed lens in the imagers has a fixed chief ray angle for a given height, which is not the case with conventional image sensor with a moving zoom lens. Second, the imagers allow simulation of zoom lenses without significantly increasing the optical track height. The reduced height allows implementation of thin modules even for camera arrays with zooming capability.
The overhead required to support a certain level of optical zoom in camera arrays according to some embodiments is tabulated in Table 2.











TABLE 2









No. of
No. of Luma
No. of Chroma



Imagers in
Imagers at
Imagers at different



Camera
different Zoom levels
Zoom Levels















array
1×
2×
3×
1×
2×
3×







25
17
0
0
8
0
0



36
16
0
8
8
0
4










In one embodiment, the pixels in the images are mapped onto an output image with a size and resolution corresponding to the amount of zoom desired in order to provide a smooth zoom capability from the widest-angle view to the greatest-magnification view. Assuming that the higher magnification lenses have the same center of view as the lower magnification lenses, the image information available is such that a center area of the image has a higher resolution available than the outer area. In the case of three or more distinct magnifications, nested regions of different resolution may be provided with resolution increasing toward the center.
An image with the most telephoto effect has a resolution determined by the super-resolution ability of the imagers equipped with the telephoto lenses. An image with the widest field of view can be formatted in at least one of two following ways. First, the wide field image may be formatted as an image with a uniform resolution where the resolution is determined by the super-resolution capability of the set of imagers having the wider-angle lenses. Second, the wide field image is formatted as a higher resolution image where the resolution of the central part of the image is determined by the super-resolution capability of the set of imagers equipped with telephoto lenses. In the lower resolution regions, information from the reduced number of pixels per image area is interpolated smoothly across the larger number of “digital” pixels. In such an image, the pixel information may be processed and interpolated so that the transition from higher to lower resolution regions occurs smoothly.
In one embodiment, zooming is achieved by inducing a barrel-like distortion into some, or all, of the array lens so that a disproportionate number of the pixels are dedicated to the central part of each image. In this embodiment, every image has to be processed to remove the barrel distortion. To generate a wide angle image, pixels closer to the center are sub-sampled relative to outer pixels are super-sampled. As zooming is performed, the pixels at the periphery of the imagers are progressively discarded and the sampling of the pixels nearer the center of the imager is increased.
In one embodiment, mipmap filters are built to allow images to be rendered at a zoom scale that is between the specific zoom range of the optical elements (e.g., 1× and 3× zoom scales of the camera array). Mipmaps are a precalculated optimized set of images that accompany a baseline image. A set of images associated with the 3× zoom luma image can be created from a baseline scale at 3× down to 1×. Each image in this set is a version of the baseline 3× zoom image but at a reduced level of detail. Rendering an image at a desired zoom level is achieved using the mipmap by (i) taking the image at 1× zoom, and computing the coverage of the scene for the desired zoom level (i.e., what pixels in the baseline image needs to be rendered at the requested scale to produce the output image), (ii) for each pixel in the coverage set, determine if the pixel is in the image covered by the 3× zoom luma image, (iii) if the pixel is available in the 3× zoom luma image, then choose the two closest mipmap images and interpolate (using smoothing filter) the corresponding pixels from the two mipmap images to produce the output image, and (iv) if the pixel is unavailable in the 3× zoom luma image, then choose the pixel from the baseline 1× luma image and scale up to the desired scale to produce the output pixel. By using mipmaps, smooth optical zoom may be simulated at any point between two given discrete levels (i.e., 1× zoom and 3× zoom).
Capturing Video Images
In one embodiment, the camera array generates high frame image sequences. The imagers in the camera array can operate independently to capture images. Compared to conventional image sensors, the camera array may capture images at the frame rate up to N time (where N is the number of imagers). Further, the frame period for each imager may overlap to improve operations under low-light conditions. To increase the resolution, a subset of imagers may operate in a synchronized manner to produce images of higher resolution. In this case, the maximum frame rate is reduced by the number of imagers operating in a synchronized manner. The high-speed video frame rates can enables slow-motion video playback at a normal video rate.
In one example, two luma imagers (green imagers or near-IR imagers), two blue imagers and two green imagers are used to obtain high-definition 1080p images. Using permutations of four luma imagers (two green imagers and two near-IR imagers or three green imagers and one near-IR imager) together with one blue imager and one red imager, the chroma imagers can be upsampled to achieve 120 frames/sec for 1080p video. For higher frame rate imaging devices, the number of frame rates can be scaled up linearly. For Standard-Definition (480p) operation, a frame rate of 240 frames/sec may be achieved using the same camera array.
Conventional imaging devices with a high-resolution image sensor (e.g., 8 Megapixels) use binning or skipping to capture lower resolution images (e.g., 1080p30, 720p30 and 480p30). In binning, rows and columns in the captured images are interpolated in the charge, voltage or pixel domains in order to achieve the target video resolutions while reducing the noise. In skipping, rows and columns are skipped in order to reduce the power consumption of the sensor. Both of these techniques result in reduced image quality.
In one embodiment, the imagers in the camera arrays are selectively activated to capture a video image. For example, 9 imagers (including one near-IR imager) may be used to obtain 1080p (1920×1080 pixels) images while 6 imagers (including one near-IR imager) may be used to obtain 720p (1280×720 pixels) images or 4 imagers (including one near-IR imager) may be used to obtain 480p (720×480 pixels) images. Because there is an accurate one-to-one pixel correspondence between the imager and the target video images, the resolution achieved is higher than traditional approaches. Further, since only a subset of the imagers is activated to capture the images, significant power savings can also be achieved. For example, 60% reduction in power consumption is achieved in 1080p and 80% of power consumption is achieved in 480p.
Using the near-IR imager to capture video images is advantageous because the information from the near-IR imager may be used to denoise each video image. In this way, the camera arrays of embodiments exhibit excellent low-light sensitivity and can operate in extremely low-light conditions. In one embodiment, super-resolution processing is performed on images from multiple imagers to obtain higher resolution video imagers. The noise-reduction characteristics of the super-resolution process along with fusion of images from the near-IR imager results in a very low-noise images.
In one embodiment, high-dynamic-range (HDR) video capture is enabled by activating more imagers. For example, in a 5×5 camera array operating in 1080p video capture mode, there are only 9 cameras active. A subset of the 16 cameras may be overexposed and underexposed by a stop in sets of two or four to achieve a video output with a very high dynamic range.
Other Applications for Multiple Imagers
In one embodiment, the multiple imagers are used for estimating distance to an object in a scene. Since information regarding the distance to each point in an image is available in the camera array along with the extent in x and y coordinates of an image element, the size of an image element may be determined. Further, the absolute size and shape of physical items may be measured without other reference information. For example, a picture of a foot can be taken and the resulting information may be used to accurately estimate the size of an appropriate shoe.
In one embodiment, reduction in depth of field is simulated in images captured by the camera array using distance information. The camera arrays according to the present invention produce images with greatly increased depth of field. The long depth of field, however, may not be desirable in some applications. In such case, a particular distance or several distances may be selected as the “in best focus” distance(s) for the image and based on the distance (z) information from parallax information, the image can be blurred pixel-by-pixel using, for example, a simple Gaussian blur. In one embodiment, the depth map obtained from the camera array is utilized to enable a tone mapping algorithm to perform the mapping using the depth information to guide the level, thereby emphasizing or exaggerating the 3D effect.
In one embodiment, apertures of different sizes are provided to obtain aperture diversity. The aperture size has a direct relationship with the depth of field. In miniature cameras, however, the aperture is generally made as large as possible to allow as much light to reach the camera array. Different imagers may receive light through apertures of different sizes. For imagers to produce a large depth of field, the aperture may be reduced whereas other imagers may have large apertures to maximize the light received. By fusing the images from sensor images of different aperture sizes, images with large depth of field may be obtained without sacrificing the quality of the image.
In one embodiment, the camera array according to the present invention refocuses based on images captured from offsets in viewpoints. Unlike a conventional plenoptic camera, the images obtained from the camera array of the present invention do not suffer from the extreme loss of resolution. The camera array according to the present invention, however, produces sparse data points for refocusing compared to the plenoptic camera. In order to overcome the sparse data points, interpolation may be performed to refocus data from the spare data points.
In one embodiment, each imager in the camera array has a different centroid. That is, the optics of each imager are designed and arranged so that the fields of view for each imager slightly overlap but for the most part constitute distinct tiles of a larger field of view. The images from each of the tiles are panoramically stitched together to render a single high-resolution image.
In one embodiment, camera arrays may be formed on separate substrates and mounted on the same motherboard with spatial separation. The lens elements on each imager may be arranged so that the corner of the field of view slightly encompasses a line perpendicular to the substrate. Thus, if four imagers are mounted on the motherboard with each imager rotated 90 degrees with respect to another imager, the fields of view will be four slightly overlapping tiles. This allows a single design of WLO lens array and imager chip to be used to capture different tiles of a panoramic image.
In one embodiment, one or more sets of imagers are arranged to capture images that are stitched to produce panoramic images with overlapping fields of view while another imager or sets of imagers have a field of view that encompasses the tiled image generated. This embodiment provides different effective resolution for imagers with different characteristics. For example, it may be desirable to have more luminance resolution than chrominance resolution. Hence, several sets of imagers may detect luminance with their fields of view panoramically stitched. Fewer imagers may be used to detect chrominance with the field of view encompassing the stitched field of view of the luminance imagers.
In one embodiment, the camera array with multiple imagers is mounted on a flexible motherboard such that the motherboard can be manually bent to change the aspect ratio of the image. For example, a set of imagers can be mounted in a horizontal line on a flexible motherboard so that in the quiescent state of the motherboard, the fields of view of all of the imagers are approximately the same. If there are four imagers, an image with double the resolution of each individual imager is obtained so that details in the subject image that are half the dimension of details that can be resolved by an individual imager. If the motherboard is bent so that it forms part of a vertical cylinder, the imagers point outward. With a partial bend, the width of the subject image is doubled while the detail that can be resolved is reduced because each point in the subject image is in the field of view of two rather than four imagers. At the maximum bend, the subject image is four times wider while the detail that can be resolved in the subject is further reduced.
Each two-dimensional (2D) image in a captured light field is from the viewpoint of one of the cameras in the array camera. A high resolution image synthesized using super resolution processing is synthesized from a specific viewpoint that can be referred to as a reference viewpoint. The reference viewpoint can be from the viewpoint of one of the cameras in a camera array. Alternatively, the reference viewpoint can be an arbitrary virtual viewpoint.
Due to the different viewpoint of each of the cameras, parallax results in variations in the position of foreground objects within the images of the scene. Processes for performing parallax detection are discussed in U.S. Provisional Patent Application Ser. No. 61/691,666 entitled “Systems and Methods for Parallax Detection and Correction in Images Captured Using Array Cameras” to Venkataraman et al., the disclosure of which is incorporated by reference herein in its entirety. As is disclosed in U.S. Provisional Patent Application Ser. No. 61/691,666, a depth map from a reference viewpoint can be generated by determining the disparity between the pixels in the images within a light field due to parallax. A depth map indicates the distance of the surfaces of scene objects from a reference viewpoint. In a number of embodiments, the computational complexity of generating depth maps is reduced by generating an initial low resolution depth map and then increasing the resolution of the depth map in regions where additional depth information is desirable such as (but not limited to) regions involving depth transitions and/or regions containing pixels that are occluded in one or more images within the light field.
During super resolution processing, a depth map can be utilized in a variety of ways. U.S. patent application Ser. No. 12/967,807 describes how a depth map can be utilized during super resolution processing to dynamically refocus a synthesized image to blur the synthesized image to make portions of the scene that do not lie on the focal plane to appear out of focus. U.S. patent application Ser. No. 12/967,807 also describes how a depth map can be utilized during super resolution processing to generate a stereo pair of higher resolution images for use in 3D applications. A depth map can also be utilized to synthesize a high resolution image from one or more virtual viewpoints. In this way, a rendering device can simulate motion parallax and a dolly zoom (i.e. virtual viewpoints in front or behind the reference viewpoint). In addition to utilizing a depth map during super-resolution processing, a depth map can be utilized in a variety of post processing processes to achieve effects including (but not limited to) dynamic refocusing, generation of stereo pairs, and generation of virtual viewpoints without performing super-resolution processing. Light field image data captured by array cameras, storage of the light field image data in a light field image file, and the rendering of images using the light field image file in accordance with embodiments of the invention are discussed further below.
Array Camera Architecture
Array cameras in accordance with embodiments of the invention are configured so that the array camera software can control the capture of light field image data and can capture the light field image data into a file that can be used to render one or more images on any of a variety of appropriately configured rendering devices. An array camera including an imager array in accordance with an embodiment of the invention is illustrated in FIG. 1. The array camera 100 includes a sensor 102 having an array of focal planes 104 and which is configured to communicate with a processor 108. The processor is also configured to communicate with one or more different types of memory 110 that can be utilized to store image data and/or contain machine readable instructions utilized to configure the processor to perform processes including (but not limited to) the various processes described below. The array camera 100 also includes a display 112 that can be utilized by the processor 108 to present a user interface to a user and to display an image rendered using the light field image data. Although the processor is illustrated as a single processor, array cameras in accordance with embodiments of the invention can utilize a single processor or multiple processors including (but not limited to) a graphics processing unit (GPU).
In the illustrated embodiment, the processor receives image data generated by the sensor and reconstructs the light field captured by the sensor from the image data. The processor can manipulate the light field in any of a variety of different ways including (but not limited to) determining the depth and visibility of the pixels in the light field and synthesizing higher resolution 2D images from the image data of the light field. Sensors including multiple focal planes are discussed in U.S. patent application Ser. No. 13/106,797 entitled “Architectures for System on Chip Array Cameras”, to Pain et al., the disclosure of which is incorporated herein by reference in its entirety.
In the illustrated embodiment, the focal planes are configured in a 5×5 array. Each focal plane 104 on the sensor is capable of capturing an image of the scene. The sensor elements utilized in the focal planes can be individual light sensing elements such as, but not limited to, traditional CIS (CMOS Image Sensor) pixels, CCD (charge-coupled device) pixels, high dynamic range sensor elements, multispectral sensor elements and/or any other structure configured to generate an electrical signal indicative of light incident on the structure. In many embodiments, the sensor elements of each focal plane have similar physical properties and receive light via the same optical channel and color filter (where present). In other embodiments, the sensor elements have different characteristics and, in many instances, the characteristics of the sensor elements are related to the color filter applied to each sensor element.
In many embodiments, an array of images (i.e. a light field) is created using the image data captured by the focal planes in the sensor. As noted above, processors 108 in accordance with many embodiments of the invention are configured using appropriate software to take the image data within the light field and synthesize one or more high resolution images. In several embodiments, the high resolution image is synthesized from a reference viewpoint, typically that of a reference focal plane 104 within the sensor 102. In many embodiments, the processor is able to synthesize an image from a virtual viewpoint, which does not correspond to the viewpoints of any of the focal planes 104 in the sensor 102. Unless all of the objects within a captured scene are a significant distance from the array camera, the images in the light field will include disparity due to the different fields of view of the focal planes used to capture the images. Processes for detecting and correcting for disparity when performing super-resolution processing in accordance with embodiments of the invention are discussed in U.S. Provisional Patent Application Ser. No. 61/691,666 (incorporated by reference above). The detected disparity can be utilized to generate a depth map. The high resolution image and depth map can be encoded and stored in memory 110 in a light field image file. The processor 108 can use the light field image file to render one or more high resolution images. The processor 108 can also coordinate the sharing of the light field image file with other devices (e.g. via a network connection), which can use the light field image file to render one or more high resolution images.
Although a specific array camera architecture is illustrated in FIG. 1, alternative architectures can also be utilized in accordance with embodiments of the invention. Systems and methods for encoding high resolution images and depth maps for storage in electronic files in accordance with embodiments of the invention are discussed below.
Capturing and Storing Light Field Image Data
Processes for capturing and storing light field image data in accordance with many embodiments of the invention involve capturing light field image data, generating a depth map from a reference viewpoint, and using the light field image data and the depth map to synthesize an image from the reference viewpoint. The synthesized image can then be compressed for storage. The depth map and additional data that can be utilized in the post processing can also be encoded as metadata that can be stored in the same container file with the encoded image.
A process for capturing and storing light field image data in accordance with an embodiment of the invention is illustrated in FIG. 2. The process 200 includes capturing (202) light field image data. In several embodiments, the light field image data is captured using an array camera similar to the array cameras described above. In other embodiments, any of a variety of image capture device(s) can be utilized to capture light field image data. The light field image data is used to generate (204) a depth map. A depth map can be generated using any of a variety of techniques including (but not limited to) using any of the processes disclosed in U.S. Provisional Patent Application Ser. No. 61/691,666 or U.S. patent application Ser. No. 13/623,091 entitled “Systems and Methods for Determining Depth from Multiple Views of a Scene that Include Aliasing Using Hypothesized Fusion”, to Venkatarman et al. The disclosure of U.S. patent Ser. No. 13/623,091 is incorporated by reference herein in its entirety.
The light field image data and the depth map can be utilized to synthesize (206) an image from a specific viewpoint. In many embodiments, the light field image data includes a number of low resolution images that are used to synthesize a higher resolution image using a super resolution process. In a number of embodiments, a super resolution process such as (but not limited to) any of the super resolution processes disclosed in U.S. patent application Ser. No. 12/967,807 can be utilized to synthesize a higher resolution image from the reference viewpoint.
In order to be able to perform post processing to modify the synthesized image without the original light field image data, metadata can be generated (208) from the light field image data, the synthesized image, and/or the depth map. The metadata data can be included in a light field image file and utilized during post processing of the synthesized image to perform processing including (but not limited to) refocusing the encoded image based upon a focal plane specified by the user, and synthesizing one or more images from a different viewpoint. In a number of embodiments, the auxiliary data includes (but is not limited to) pixels in the light field image data occluded from the reference viewpoint used to synthesize the image from the light field image data, one or more auxiliary maps including (but not limited to) a confidence map, an edge map, and/or a missing pixel map. Auxiliary data that is formatted as maps or layers provide information corresponding to pixel locations within the synthesized image. A confidence map is produced during the generation of a depth map and reflects the reliability of the depth value for a particular pixel. This information may be used to apply different filters in areas of the image and improve image quality of the rendered image. An edge map defines which pixels are edge pixels, which enables application of filters that refine edges (e.g. post sharpening). A missing pixel map represents pixels computed by interpolation of neighboring pixels and enables selection of post-processing filters to improve image quality. As can be readily appreciated, the specific metadata generated depends upon the post processing supported by the image data file. In a number of embodiments, no auxiliary data is included in the image data file.
In order to generate an image data file, the synthesized image is encoded (210). The encoding typically involves compressing the synthesized image and can involve lossless or lossy compression of the synthesized image. In many embodiments, the depth map and any auxiliary data are written (212) to a file with the encoded image as metadata to generate a light field image data file. In a number of embodiments, the depth map and/or the auxiliary maps are encoded. In many embodiments, the encoding involves lossless compression.
Although specific processes for encoding light field image data for storage in a light field image file are discussed above, any of a variety of techniques can be utilized to process light field image data and store the results in an image file including but not limited to processes that encode low resolution images captured by an array camera and calibration information concerning the array camera that can be utilized in super resolution processing. Storage of light field image data in JFIF files in accordance with embodiments of the invention is discussed further below.
Image Data Formats
In several embodiments, the encoding of a synthesized image and the container file format utilized to create the light field image file are based upon standards including but not limited to the JPEG standard (ISO/IEC 10918-1) for encoding a still image as a bitstream and the JFIF standard (ISO/IEC 10918-5). By utilizing these standards, the synthesized image can be rendered by any rendering device configured to support rendering of JPEG images contained within JFIF files. In many embodiments, additional data concerning the synthesized image such as (but not limited to) a depth map and auxiliary data that can be utilized in the post processing of the synthesized image can be stored as metadata associated with an Application marker within the JFIF file. Conventional rendering devices can simply skip Application markers containing this metadata. Rendering device in accordance with many embodiments of the invention can decode the metadata and utilize the metadata in any of a variety of post processing processes.
A process for encoding an image synthesized using light field image data in accordance with the JPEG specification and for including the encoded image and metadata that can be utilized in the post processing of the image in a JFIF file in accordance with an embodiment of the invention is illustrated in FIG. 3. The process 300 includes encoding (302) an image synthesized from light field image data in accordance with the JPEG standard. The image data is written (304) to a JFIF file. A depth map for the synthesized image is compressed (306) and the compressed depth map and any additional auxiliary data are written (308) as metadata to an Application marker segment of the JFIF file containing the encoded image. Where the auxiliary data includes maps, the maps can also be compressed by encoding the maps in accordance with the JPEG standard. At which point, the JFIF file contains an encoded image and metadata that can be utilized to perform post processing on the encoded image in ways that utilize the additional information captured in the light field image data utilized to synthesize the high resolution image (without the need to perform super resolution processing on the underlying light field image data).
Although specific processes are discussed above for storing light field image data in JFIF files, any of a variety of processes can be utilized to encode synthesized images and additional metadata derived from the light field image data used to synthesize the encoded images in a JFIF file as appropriate to the requirements of a specific application in accordance with embodiments of the invention. The encoding of synthesized images and metadata for insertion into JFIF files in accordance with embodiments of the invention are discussed further below. Although much of the discussion that follows relates to JFIF files, synthesized images and metadata can be encoded for inclusion in a light field image file using any of a variety of proprietary or standards based encoding techniques and/or utilizing any of a variety of proprietary or standards based file formats.
Encoding Images Synthesized from Light Field Image Data
An image synthesized from light field image data using super resolution processing can be encoded in accordance with the JPEG standard for inclusion in a light field image file in accordance with embodiments of the invention. The JPEG standard is a lossy compression standard. However, the information losses typically do not impact edges of objects. Therefore, the loss of information during the encoding of the image typically does not impact the accuracy of maps generated based upon the synthesized image (as opposed to the encoded synthesized image). The pixels within images contained within files that comply with the JFIF standard are typically encoded as YCbCr values. Many array cameras synthesize images, where each pixel is expressed in terms of a Red, Green and Blue intensity value. In several embodiments, the process of encoding the synthesized image involves mapping the pixels of the image from the RGB domain to the YCbCr domain prior to encoding. In other embodiments, mechanisms are used within the file to encode the image in the RGB domain. Typically, encoding in the YCbCr domain provides better compression ratios and encoding in the RGB domain provides higher decoded image quality.
Storing Additional Metadata Derived from Light Field Image Data
The JFIF standard does not specify a format for storing depth maps or auxiliary data generated by an array camera. The JFIF standard does, however, provide sixteen Application markers that can be utilized to store metadata concerning the encoded image contained within the file. In a number of embodiments, one or more of the Application markers of a JFIF file is utilized to store an encoded depth map and/or one or more auxiliary maps that can be utilized in the post processing of the encoded image contained within the file.
A JFIF Application marker segment that can be utilized to store a depth map, individual camera occlusion data and auxiliary map data in accordance with an embodiment of the invention is illustrated in FIG. 4. The APPS Application marker segment 400 uses a format identifier 402 that uniquely identifies that the Application marker segment contains metadata describing an image synthesized using light field image data. In a number of embodiments, the identifier is referred to as the “DZ Format Identifier” 402 and is expressed as the zero terminated string “PIDZ0”.
The Application marker segment includes a header 404 indicated as “DZ Header” that provides a description of the metadata contained within the Application marker segment. In the illustrated embodiment, the “DZ Header” 404 includes a DZ Endian field that indicates whether the data in the “DZ Header” is big endian or little endian. The “DZ Header” 404 also includes a “DZ Selection Descriptor”.
An embodiment of a “DZ Selection Descriptor” is illustrated in FIG. 5, which includes four bytes. The first two bytes (i.e. bytes 0 and 1) contain information concerning the metadata describing the encoded image that are present (see FIG. 6) and the manner in which the different pieces of metadata are compressed (see FIG. 7). In the illustrated embodiment, the types of metadata that are supported are a depth map, occluded pixel data, virtual view point data, a missing pixel map, a regular edge map, a silhouette edge map, and/or a confidence map. In other embodiments, any of a variety of metadata describing an encoded image obtained from the light field image data used to synthesize the image can be included in the metadata contained within a JFIF file in accordance with an embodiment of the invention. In many instances, the metadata describing the encoded image can include maps that can be considered to be monochrome images that can be encoded using JPEG encoding. In a number of embodiments, the maps can be compressed using lossless JPEG LS encoding. In several embodiments, the maps can be compressed using lossy JPEG encoding. Utilizing JPEG encoding to compress the maps reduces the size of the maps and enables rendering devices to leverage a JPEG decoder to both decode the image contained within the JFIF file and the maps describing the encoded image. The third byte (i.e. byte 2) of the “DZ Selection Descriptor” indicates the number of sets of metadata describing the encoded image that are contained within the Application marker segment and the fourth byte is reserved. Although specific implementations of the header 404 describing the metadata contained within the Application marker segment are illustrated in FIGS. 4-7, any of a variety of implementations can be utilized to identify the maps describing the synthesized image that are present within the metadata contained within an light field image file as appropriate to the requirements of the application in accordance with embodiments of the invention.
Depth Map
Referring back to FIG. 4, the Application marker segment also includes a “Depth Map Header” 406 that describes depth map 416 included within the Application marker segment. The “Depth Map Header”406 includes an indication 408 of the size of “Depth Map Attributes” 410 included within the “Depth Map Header”, the “Depth Map Attributes” 410, and a “Depth Map Descriptor” 412. As noted above, the depth map 416 can be considered to be a monochrome image and lossless or lossy JPEG encoding can be utilized to compress the “Depth Map Data” included in a JFIF file.
A “Depth Map Attributes” table in accordance with an embodiment of the invention is illustrated in FIG. 8 and includes information concerning the manner in which the depth map should be used to render the encoded image. In the illustrated embodiment, the information contained within the “Depth Map Attributes” table includes the focal plane and the F# of the synthetic aperture to utilize when rendering the encoded image. Although specific pieces of information related to the manner in which the depth map can be utilized to render the encoded image are illustrated in FIG. 8, any of a variety of pieces of information appropriate to the requirements of a specific application can be utilized in accordance with embodiments of the invention.
A “Depth Map Descriptor” in accordance with an embodiment of the invention is illustrated in FIG. 9 and includes metadata describing the depth map. In the illustrated embodiment, the “Depth Map Descriptor” includes a zero terminated identifier string “PIDZDH0” and version information. In other embodiments, any of a variety of pieces of information appropriate to the specific requirements of particular applications can be utilized in accordance with embodiments of the invention.
A JFIF Application marker segment is restricted to 65,533 bytes. However, an Application marker can be utilized multiple times within a JFIF file. Therefore, depth maps in accordance with many embodiments of the invention can span multiple APPS Application marker segments. The manner in which depth map data is stored within an Application marker segment in a JFIF file in accordance with an embodiment of the invention is illustrated in FIG. 10. In the illustrated embodiment, the depth map data is contained within a descriptor that is uniquely identified using the “PIDZDD0” zero terminated string. The descriptor also includes the length of the descriptor and depth map data.
Although specific implementations of a depth map and header describing a depth map within an Application marker segment of a JFIF file are illustrated in FIGS. 4, 8, 9, and 10, any of a variety of implementations can be utilized to include a depth map describing an encoded image within a JFIF file as appropriate to the requirements of the application in accordance with embodiments of the invention.
Occlusion Data
Referring back to FIG. 4, the Application marker segment also includes a “Camera Array Header” 418 that describes occlusion data 428 for individual cameras within an array camera that captured the light field image data utilized to synthesize the image contained within the light field image file. The occlusion data can be useful in a variety of post processing processes including (but not limited) to process that involve modifying the viewpoint of the encoded image. The “Camera Array Header” 418 includes an indication 420 of the size of a “Camera Array General Attributes” table 422 included within the “Camera Array Header”, the “Camera Array General Attributes” table 422, and a “Camera Array Descriptor” 424.
A “Camera Array General Attributes” table in accordance with an embodiment of the invention is illustrated in FIG. 11 and includes information describing the number of cameras and dimensions of a camera array utilized to capture the light field image data utilized to synthesize the image encoded within the JFIF file. In addition, the “Camera Array General Attributes” table can indicate a reference camera position within the array and/or a virtual view position within the array. The “Camera Array General Attributes” table also provides information concerning the number of cameras within the array for which occlusion data is provided within the JFIF file.
A “Camera Array Descriptor” in accordance with an embodiment of the invention is illustrated in FIG. 12 and includes metadata describing the individual camera occlusion data contained within the JFIF file. In the illustrated embodiment, the “Camera Array Descriptor” includes a zero terminated identifier string “PIDZAH0” and version information. In other embodiments, any of a variety of pieces of information appropriate to the specific requirements of particular applications can be utilized in accordance with embodiments of the invention.
In many embodiments, occlusion data is provided on a camera by camera basis. In several embodiments, the occlusion data is included within a JFIF file using an individual camera descriptor and an associated set of occlusion data. An individual camera descriptor that identifies a camera and identifies the number of occluded pixels related to the identified camera described within the JFIF file in accordance with an embodiment of the invention is illustrated in FIG. 13. In the illustrated embodiment, the descriptor is identified using the “PIDZCD0” zero terminated string. The descriptor also includes a camera number that can be utilized to identify a camera within an array camera that captured light field image data utilized to synthesize the encoded image contained within the JFIF file. In addition, the descriptor includes the number of occluded pixels described in the JFIF file and the length (in bytes) of the data describing the occluded pixels. The manner in which the occluded pixel data can be described in accordance with embodiments of the invention is illustrated in FIG. 14. The same descriptor “PDIZCD0” is used to identify the occluded pixel data and the descriptor also includes the number of pixels of occluded data contained within the segment, the length of the data in bytes and an offset to the next marker in addition to the occluded pixel data. Due to the restriction on Application marker segments not exceeding 65,533 bytes in data, the additional information enables a rendering device to reconstruct the occluded pixel data across multiple APPS application marker segments within a JFIF file in accordance with embodiments of the invention.
A table describing an occluded pixel that can be inserted within a JFIF file in accordance with an embodiment of the invention is illustrated in FIG. 15. The table includes the depth of the occluded pixel, the pixel color of the occluded pixel and the pixel coordinates. In the illustrated embodiment, the pixel color is illustrated as being in the RGB domain. In other embodiments, the pixel color can be expressed in any domain including the YCbCr domain.
Although specific implementations for storing information describing occluded pixel depth within an Application marker segment of a JFIF file are illustrated in FIGS. 4, 13, 14, and 15, any of a variety of implementations can be utilized to include occluded pixel information within a JFIF file as appropriate to the requirements of the application in accordance with embodiments of the invention.
Auxiliary Maps
Referring back to FIG. 4, any of a variety of auxiliary maps can be included in an Application marker segment within a JFIF file in accordance with an embodiment of the invention. The total number of auxiliary maps and the types of auxiliary maps can be indicated in the Application marker segment. Each auxiliary map can be expressed using an “Auxiliary Map Descriptor” 432 and “Auxiliary Map Data” 434. In the illustrated embodiment, the “Auxiliary Map Descriptor” 432 is included in an “Auxiliary Map Header” 430 within the Application marker segment in the JFIF file.
An “Auxiliary Map Descriptor” that describes an auxiliary map contained within a light field image file in accordance with an embodiment of the invention is illustrated in FIG. 16. The “Auxiliary Map Descriptor” includes an identifier, which is the “PIDZAM0” zero terminated string and information specifying the type of auxiliary map and number of bits per pixel in the map. As noted above, any of a variety of auxiliary maps derived from light field image data used to synthesize an encoded image can be included within a JFIF file in accordance with embodiments of the invention. In the illustrated embodiment, confidence maps, silhouette edge maps, regular edge maps, and missing pixel maps are supported.
“Auxiliary Map Data” stored in a JFIF file in accordance with an embodiment of the invention is conceptually illustrated in FIG. 17. The “Auxiliary Map Data” uses the same “PDIZAD0” zero terminated string identifier and includes the number of pixels of the auxiliary map contained within the segment, the length of the data in bytes and an offset to the next marker in addition to pixels of the auxiliary map. Due to the restriction on Application marker segments not exceeding 65,533 bytes in data, the additional information enables a rendering device to reconstruct the auxiliary map describing the encoded image across multiple APPS application marker segments within a JFIF file.
Although specific implementations for storing auxiliary maps within an Application marker segment of a JFIF file are illustrated in FIGS. 4, 16, and 17, any of a variety of implementations can be utilized to include auxiliary map information within a JFIF file as appropriate to the requirements of the application in accordance with embodiments of the invention. Various examples of auxiliary maps that can be utilized to provide additional information concerning an encoded image based upon the light field image data utilized to synthesize the encoded image in accordance with embodiments of the invention are discussed below.
Confidence Maps
A confidence map can be utilized to provide information concerning the relative reliability of the information at a specific pixel location. In several embodiments, a confidence map is represented as a complimentary one bit per pixel map representing pixels within the encoded image that were visible in only a subset of the images used to synthesize the encoded image. In other embodiments, a confidence map can utilize additional bits of information to express confidence using any of a variety of metrics including (but not limited to) a confidence measure determined during super resolution processing, or the number of images in which the pixel is visible.
Edge Maps
A variety of edge maps can be provided included (but not limited to) a regular edge map and a silhouette map. A regular edge map is a map that identifies pixels that are on an edge in the image, where the edge is an intensity discontinuity. A silhouette edge maps is a map that identifies pixels that are on an edge, where the edge involves an intensity discontinuity and a depth discontinuity. In several embodiments, each can be expressed as a separate one bit map or the two maps can be combined as a map including two pixels per map. The bits simply signal the presence of a particular type of edge at a specific location to post processing processes that apply filters including (but not limited to) various edge preserving and/or edge sharpening filters.
Missing Pixel Maps
A missing pixel map indicates pixel locations in a synthesized image that do not include a pixel from the light field image data, but instead include an interpolated pixel value. In several embodiments, a missing pixel map can be represented using a complimentary one bit per pixel map. The missing pixel map enables selection of post-processing filters to improve image quality. In many embodiments, a simple interpolation algorithm can be used during the synthesis of a higher resolution from light field image data and the missing pixels map can be utilized to apply a more computationally expensive interpolation process as a post processing process. In other embodiments, missing pixel maps can be utilized in any of a variety of different post processing process as appropriate to the requirements of a specific application in accordance with embodiments of the invention.
Rendering Images Using Light Field Imaging Files
When light field image data is encoded in a light field image file, the light field image file can be shared with a variety of rendering devices including but not limited to cameras, mobile devices, personal computers, tablet computers, network connected televisions, network connected game consoles, network connected media players, and any other device that is connected to the Internet and can be configured to display images. A system for sharing light field image files in accordance with an embodiment of the invention is illustrated in FIG. 18. The system 1800 includes a mobile device 1802 including an array camera configured to capture light field image data and encode the light field image data in a light field image file. The mobile device 1802 also includes a network interface that enables the transfer of a light field image file to other rendering devices via the Internet 1804. In several embodiments, the light field image file is transferred with the assistance of a server system 1806 that can either store the light field image file for access by other devices or relay the light field image file to other rendering devices. In many embodiments, the server system 1806 provides a user interface that enables users to modify the rendering of the image provided to the device. In several embodiments, the server system 1806 provides the light field image file to a device for rendering. In the illustrated embodiment, a variety of network connected rendering devices 1808 are illustrated including a mobile phone and a personal computer. In other embodiments, any of a variety of network connected and/or disconnected devices can render images using a light field image file in accordance with embodiments of the invention. Rendering devices and processes for rendering images in accordance with embodiments of the invention are discussed further below.
Rendering Devices
A rendering device in accordance with embodiments of the invention typically includes a processor and a rendering application that enables the rendering of an image based upon a light field image data file. The simplest rendering is for the rendering device to decode the encoded image contained within the light field image data file. More complex renderings involve applying post processing to the encoded image using the metadata contained within the light field image file to perform manipulations including (but not limited to) modifying the viewpoint of the image and/or modifying the focal plane of the image.
A rendering device in accordance with an embodiment of the invention is illustrated in FIG. 19. The rendering device 1900 includes a processor 1902, memory 1904, and an optional network interface 1906. The memory contains a rendering application 1908 that is used to configure the microprocessor to render images for display using a light field image file 1910. In the illustrated embodiment, the light field image file is shown stored in memory. In other embodiments, the light field image file can be stored in an external storage device. Although a specific rendering device is illustrated in FIG. 19, any of a variety of rendering devices can be utilized in accordance with embodiments of the invention including (but not limited to) the types of devices that are customarily used to display images using image files. Processes for rendering of images using light field image files in accordance with embodiments of the invention are discussed further below.
Processes for Rendering Images Using Light Field Image Files
As noted above, rendering a light field image file can be as simple as decoding an encoded image contained within the light field image file or can involve more complex post processing of the encoded image using metadata derived from the same light field image data used to synthesize the encoded image. A process for rendering a light field image in accordance with an embodiment of the invention is illustrated in FIG. 20. The process 2000 includes parsing (2002) the light field image file to locate the encoded image contained within the image file. The encoded image file is decoded (2004). As noted above, the image can be encoded using a standards based encoder and so the decoding process can utilize a standards based codec within a rendering device, or the image can be encoded using a proprietary encoding and a proprietary decoder is provided on the rendering device to decode the image. When the process for rendering the image simply involves rendering the image, the decoded image can be displayed. When the process for rendering the image includes post processing, the image file is parsed (2006) to locate metadata within the file that can be utilized to perform the post processing. The metadata is decoded (2008). The metadata can often take the form of maps that can be encoded using standards based image encoders and a standards based decoder present on the rendering device can be utilized to decode the metadata. In other embodiments, a proprietary decoding process is utilized to decode the metadata. The metadata can then be used to perform (2010) the post processing of the encoded image and the image can be displayed (2012). The display of the image can be local. Alternatively the image can be streamed to a remote device or encoded as an image and provided to a remote device for display.
Although specific processes for rendering an image from a light field image file are discussed with reference to FIG. 20, any of a variety of processes appropriate to the requirements of a specific application can be utilized to render an image for display using a light field image file in accordance with an embodiment of the invention. As noted above, any of a variety of standards based encoders and decoders can be utilized in the encoding and decoding of light field image files in accordance with embodiments of the invention. Processes for rendering images using light field image files that conform to the JFIF standard and include an image and/or metadata encoded in accordance with the JPEG standard are discussed further below.
Rendering Images Using JFIF Light Field Image Files
The ability to leverage deployed JPEG decoders can greatly simplify the process of rendering light field images. When a light field image file conforms to the JFIF standard and the image and/or metadata encoded within the light field image file is encoded in accordance with the JPEG standard, a rendering application can leverage an existing implementation of a JPEG decoder to render an image using the light field image file. Similar efficiencies can be obtained where the light field image file includes an image and/or metadata encoded in accordance with another popular standard for image encoding.
A rendering device configured by a rendering application to render an image using a light field image file in accordance with an embodiment of the invention is illustrated in FIG. 21. The rendering device 2100 includes a processor 2102, memory 2104, and an optional network interface 2106 that can be utilized to receive light field image files. In the illustrated embodiment, the memory 2104 of the rendering device 2100 includes a rendering application 2108, a JPEG decoder application 2110, and a light field image file 2112 that contains at least one image and/or metadata encoded in accordance with the JPEG standard. The rendering application 2108 configures the processor to parse the light field image file to locate an encoded image and to decode the encoded image using the JPEG decoder application 2110. Similarly, the rendering application can configure the processor to parse the light field image file to locate metadata and to decode encoded maps contained within the metadata using the JPEG decoder.
Although specific rendering devices including JPEG decoders are discussed above with reference to FIG. 21, any of a variety of rendering devices incorporating standards based decoders can be utilized to render images from appropriately encoded light field image files in accordance with embodiments of the invention. Processes for decoding light field image files that confirm with the JFIF standard and that contain at least one image and/or metadata encoded in accordance with the JPEG standard in accordance with embodiments of the invention are discussed further below.
Processes for Rendering Images from JFIF Light Field Image Files
Processes for rending images using light field image files that conform to the JFIF standard can utilize markers within the light field image file to identify encoded images and metadata. Headers within the metadata provide information concerning the metadata present in the file and can provide offset information or pointers to the location of additional metadata and/or markers within the file to assist with parsing the file. Once appropriate information is located a standard JPEG decoder implementation can be utilized to decode encoded images and/or maps within the file.
A process for displaying an image rendered using a light field image file that conforms to the JFIF standard using a JPEG decoder in accordance with an embodiment of the invention is illustrated in FIG. 22. The process 2200 involves parsing (2202) the light field image file to locate a Start of Image (SOI) Marker. The SOI marker is used to locate an image file encoded in accordance with the JPEG format. The encoded image can be decoded (2204) using a JPEG decoder. When no post processing of the decoded image is desired, the image can simply be displayed. Where post processing of the image is desired (e.g. to change the view point of the image and/or the focal plane of the image), the process parses (2206) the light field image file to locate an appropriate Application marker. In the illustrated embodiment, an APP9 marker indicates the presence of metadata within the light field image file. The specific metadata within the file can be determined by parsing (2206) a header within the APP9 Application marker segment that describes the metadata within the file. In the illustrated embodiment, the header is the “DZ Header” within the APP9 Application marker segment. The information within the metadata header can be utilized to locate (2208) specific metadata utilized in a post processing process within the light field image file. In instances where the metadata is encoded, the metadata can be decoded. In many embodiments, metadata describing an encoded image within a light field image file is in the form of a map that provides information concerning specific pixels within an encoded image contained within the light field image file and JPEG encoding is used to compress the map. Accordingly, a JPEG decoder can be utilized to decode the map. The decoded metadata can be utilized to perform (2212) a post processes the decoded image. The image can then be displayed (2214). In many embodiments, the image is displayed on a local display. In a number of embodiments, the image is streamed to a remote display or encoded as an image and forwarded to a remote device for display.
Although specific processes for displaying images rendered using light field image files are discussed above with respect to FIG. 22, any of a variety of processes for parsing a light field image file and decoding images and/or metadata encoded in accordance with the JPEG standard using a JPEG decoder can be utilized in accordance with embodiments of the invention. Much of the discussion above references the use of metadata derived from light field image data and contained within a light field image file to perform post processing processes on an encoded image synthesized from the light field image data. Post processing of images synthesized from light field image data using metadata obtained using the light field image data in accordance with embodiments of the invention are discussed further below.
Post Processing of Images Using Metadata Derived from Light Field Image Data
Images can be synthesized from light field image data in a variety of ways. Metadata included in light field image files in accordance with embodiments of the invention can enable images to be rendered from a single image synthesized from the light field image data without the need to perform super resolution processing. Advantages of rendering images in this way can include that the process of obtaining the final image is less processor intensive and less data is used to obtain the final image. However, the light field image data provides rich information concerning a captured scene from multiple viewpoints. In many embodiments, a depth map and occluded pixels from the light field image data (i.e. pixels that are not visible from the reference viewpoint of the synthesized image) can be included in a light field image file to provide some of the additional information typically contained within light field image data. The depth map can be utilized to modify the focal plane when rendering an image and/or to apply depth dependent effects to the rendered image. The depth map and the occluded pixels can be utilized to synthesize images from different viewpoints. In several embodiments, additional maps are provided (such as, but not limited to, confidence maps, edge maps, and missing pixel maps) that can be utilized when rendering alternative viewpoints to improve the resulting rendered image. The ability to render images from different viewpoints can be utilized to simply render an image from a different viewpoint. In many embodiments, the ability to render images from different viewpoints can be utilized to generate a stereo pair for 3D viewing. In several embodiments, processes similar to those described in U.S. Provisional Patent Application Ser. No. 61/707,691, entitled “Synthesizing Images From Light Fields Utilizing Virtual Viewpoints” to Jain (the disclosure of which is incorporated herein by reference in its entirety) can be utilized to modify the viewpoint based upon motion of a rendering device to create a motion parallax effect. Processes for rendering images using depth based effects and for rendering images using different viewpoints are discussed further below.
Rendering Images Using Depth Based Effects
A variety of depth based effects can be applied to an image synthesized from light field image data in accordance with embodiments of the invention including (but not limited to) applying dynamic refocusing of an image, locally varying the depth of field within an image, selecting multiple in focus areas at different depths, and/or applying one or more depth related blur model. A process for applying depth based effects to an image synthesized from light field image data and contained within a light field image file that includes a depth map in accordance with an embodiment of the invention is illustrated in FIG. 23. The process 2300 includes decoding (2302) an image synthesized from light field image data contained within a light field image file. In addition, a depth map derived from the light field image data that describes the synthesized image is also decoded (2304) from metadata contained within the light field image file. One or more depth dependent effects can then be applied (2406) to the pixels of the decoded image based upon the depths of the pixels indicated by the depth map. In a number of embodiments, the depth dependent effects are automatically determined by modifying the focal plane, and/or F number (which provides different depths of fields and degree of blur in out-of-focus regions). The image can then be displayed (2308). In many embodiments, the image is displayed on a local display. In a number of embodiments, the image is streamed to a remote display or encoded as an image and forwarded to a remote device for display.
Although specific processes for applying depth dependent effects to an image synthesized from light field image data using a depth map obtained using the light field image data are discussed above with respect to FIG. 23, any of a variety of processes can be utilized for extracting an image and a depth map from a light field image file and for using the depth map to apply one or more depth dependent effects in accordance with embodiments of the invention. Processes for rendering images from different viewpoints to the reference viewpoint of an image contained within a light field image file based upon a depth map and information concerning occluded pixels contained within the light field image file in accordance with embodiments of the invention are discussed further below.
Rendering Images Using Different Viewpoints
One of the compelling aspects of computational imaging is the ability to use light field image data to synthesize images from different viewpoints. The ability to synthesize images from different viewpoints creates interesting possibilities including the creation of stereo pairs for 3D applications and the simulation of motion parallax as a user interacts with an image. Light field image files in accordance with many embodiments of the invention can include an image synthesized from light field image data from a reference viewpoint, a depth map for the synthesized image and information concerning pixels from the light field image data that are occluded in the reference viewpoint. A rendering device can use the information concerning the depths of the pixels in the synthesized image and the depths of the occluded images to determine the appropriate shifts to apply to the pixels to shift them to the locations in which they would appear from a different viewpoint. Occluded pixels from the different viewpoint can be identified and locations on the grid of the different viewpoint that are missing pixels can be identified and hole filling can be performed using interpolation of adjacent non-occluded pixels. In many embodiments, the quality of an image rendered from a different viewpoint can be increased by providing additional information in the form of auxiliary maps that can be used to refine the rendering process. In a number of embodiments, auxiliary maps can include confidence maps, edge maps, and missing pixel maps. Each of these maps can provide a rendering process with information concerning how to render an image based on customized preferences provided by a user. In other embodiments, any of a variety of auxiliary information including additional auxiliary maps can be provided as appropriate to the requirements of a specific rendering process.
A process for rendering an image from a different viewpoint using a light field image file containing an image synthesized using light field image data from a reference viewpoint, a depth map describing the depth of the pixels of the synthesized image, and information concerning occluded pixels in accordance with an embodiment of the invention is illustrated in FIG. 24. The process 2400 includes decoding (2402) an image contained within a light field image file, where the image is an image synthesized from light field image data. The process also includes decoding (2404) a depth map from the light field image file, where the depth map was also obtained from the light field image data used to synthesize the encoded image. Information concerning pixels from the light field image data that are occluded in the reference viewpoint is also obtained (2405) from the light field image file, where the information includes the location and depth of the occluded pixels from the reference viewpoint. In many embodiments, auxiliary information, including auxiliary maps that specify additional information concerning the pixels in the encoded image, is also contained within the light field image file and auxiliary information useful in the rendering of an image from a different viewpoint to the reference viewpoint can be extracted and decoded (2408) from the light field image file. Using the depth map and the depths of the occluded pixels, shifts in the location and depths of pixels in the different viewpoint can be determined (2410). Based upon the shifts, occluded pixels can be determined (2414) and the image displayed. Where auxiliary information is available, the auxiliary information can be utilized to adjust (2412) the pixels in the image prior to rendering. In many embodiments, the adjustments are performed prior to identifying occluded pixels and displaying the final image. In a number of embodiments, the adjustments are performed after occluded pixels are identifies.
Although specific processes for rendering an image from a different viewpoint using an image synthesized from a reference view point using light field image data, a depth map obtained using the light field image data, and information concerning pixels in the light field image data that are occluded in the reference viewpoint are discussed above with respect to FIG. 24, any of a variety of processes can be utilized for rendering images from different viewpoints using a light field image file as appropriate to the requirements of specific applications in accordance with embodiments of the invention. Processes for rendering images simulating different lens characteristics from in accordance with embodiments of the invention are discussed further below.
While the above description contains many specific embodiments of the invention, these should not be construed as limitations on the scope of the invention, but rather as an example of one embodiment thereof. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents.

## Claims

1. A system for encoding light field image data as a light field image file, comprising:
a processor; and
memory containing an encoding application and light field image data, where the light field image data comprises a plurality of images of a scene captured from different viewpoints;
wherein the plurality of images of a scene is captured using a camera array comprising a collection of imagers designed to function as a unitary component, where the collection of imagers comprises at least two heterogeneous images; and
wherein the encoding application directs the processor to:
create a depth map that specifies depths for pixels in a reference image in the plurality of images;
encode the reference image; and
create a light field image file including the encoded image and metadata describing the encoded image, wherein:
the light field image file is structured using the Exchangable image file (Exif) format; and
the metadata includes the depth map.

2. The system of claim 1, wherein the light field image file conforms to the JFIF standard.

3. The system of claim 1, wherein the encoded image is encoded in accordance with the JPEG standard.

4. The system of claim 1, wherein the metadata is located within an application marker segment within the light field image file.

5. The system of claim 4, wherein the application marker segment is identified using the APP9 marker.

6. The system of claim 4, wherein the application marker segment is identified using an APP1 marker that is used to identify the Exif data.

7. The system of claim 1, wherein the encoding application directs the processor to encode the depth map and the depth map included in the metadata describing the encoded image is the encoded depth map.

8. The system of claim 7, wherein the depth map is losslessly encoded.

9. The system of claim 8, wherein the encoding application directs the processor to decode the depth map using a JPEG decoder.

10. The system of claim 7, wherein the depth map is encoded using lossy compression.

11. The system of claim 1, wherein:
encoding the reference image includes creating a confidence map for the depth map, where the confidence map indicates the reliability of the depth value for a pixel in the depth map; and
the metadata describing the encoded image in the light field image file includes the confidence map.

12. The system of claim 1, wherein:
encoding the reference image involves identifying pixels in the plurality images of the scene that are occluded in a reference viewpoint; and
the metadata describing the encoded image in the light field image file includes descriptions of the occluded pixels.

13. The system of claim 12, wherein the descriptions of the occluded pixels includes data selected from the group consisting of colors, locations, and depths of the occluded pixels.

14. The system of claim 12, wherein:
the encoding application directs the processor to generate an edge map that indicates pixels in the reference image that lie on a discontinuity; and
the metadata describing the encoded image in the light field image file includes the edge map.

15. The system of claim 14, wherein the edge map identifies whether a pixel lies on a discontinuity selected from the group consisting of an intensity and depth discontinuity.

16. The system of claim 12, wherein:
the encoding application directs the processor to generate a missing pixel map that indicates pixels in the reference image that do not correspond to a pixel from the plurality images of the scene and that are generated by interpolating pixel values from adjacent pixels in the reference image; and
the metadata describing the encoded image in the light field image file includes the missing pixels map.

17. The system of claim 1, wherein the metadata also includes a focal plane.

18. The system of claim 1, wherein the encoding application directs the processor to:
select a second reference image from the plurality of images, where the second reference image is distinct from the reference image and the reference image and the second reference image comprise a stereo pair of images;
encode the second reference image; and
include the second reference image in the encoded light field image file.

19. The system of claim 1, wherein each imager in the at least two heterogeneous imagers comprises at least two sensor elements and has different imaging characteristics.

20. The system of claim 1, wherein the collection of imagers is fabricated on a single chip.

21. The system of claim 1, wherein the collection of imagers comprises a one dimensional array of imagers.

22. A method for encoding light field image data as a light field image file, comprising:
obtaining a set of light field image data comprising a plurality of images of a scene captured from different viewpoints using an encoding system, where the plurality of images of a scene is captured using a camera array comprising a collection of imagers designed to function as a unitary component, where the collection of imagers comprises at least two heterogeneous images;
creating a depth map that specifies depths for pixels in a reference image in the plurality of images using the encoding device;
encoding the reference image using the encoding device; and
creating a light field image file including the encoded image and metadata describing the encoded image using the encoding device, wherein:
the light field image file is structured using the Exchangeable image file (Exif) format; and
the metadata includes the depth map.

23. A non-transitory machine readable medium containing processor instructions, where execution of the instructions by a processor causes the processor to perform a process comprising:
obtaining a set of light field image data comprising a plurality of images of a scene captured from different viewpoints, where the plurality of images of a scene is captured using a camera array comprising a collection of imagers designed to function as a unitary component, where the collection of imagers comprises at least two heterogeneous images;
creating a depth map that specifies depths for pixels in a reference image in the plurality of images;
encoding the reference image; and
creating a light field image file including the encoded image and metadata describing the encoded image, wherein:
the light field image file is structured using the Exchangable image file (Exif) format; and
the metadata includes the depth map.