METHOD AND AN APPARATUS FOR GENERATING DATA REPRESENTATIVE OF A PIXEL BEAM
20210329217 · 2021-10-21
Inventors
- Laurent BLONDÉ (Thorigne-Fouillard, FR)
- Valter Drazic (Betton, FR)
- Mozhdeh Seifi (Thorigne-Fouillard, FR)
Cpc classification
G02B3/0056
PHYSICS
H04N13/229
ELECTRICITY
International classification
Abstract
There are several types of plenoptic devices and camera arrays available on the market, and all these light field acquisition devices have their proprietary file format. However, there is no standard supporting the acquisition and transmission of multi-dimensional information. It is interesting to obtain information related to a correspondence between pixels of a sensor of said optical acquisition system and an object space of said optical acquisition system. Indeed, knowing which portion of the object space of an optical acquisition system a pixel belonging to the sensor of said optical acquisition system is sensing enables the improvement of signal processing operations. The notion of pixel beam, which represents a volume occupied by a set of rays of light in an object space of an optical system of a camera along with a compact format for storing such information is thus introduce.
Claims
1. A computer implemented method for sorting a collection of rays of light, called generating rays, each generating ray of said collection generates, in an object space of an optical acquisition system, a surface of a volume occupied by a set of rays of light passing through a pupil of said optical acquisition system and a conjugate of at least one pixel of a sensor of said optical acquisition system, by rotating around a revolution axis of said volume, said volume occupied by said set of rays of light being called a pixel beam, the method comprising: selecting, for at least one pixel beam, a generating ray generating the surface of said pixel beam which crosses a reference straight line, generating a collection of sorted generating rays comprising the selected generating ray.
2. The method according to claim 1 wherein the surface of the pixel beam generated by a generating ray is a hyperboloid of one sheet.
3. The method according to claim 1 wherein the reference straight line is parallel to an optical axis of a main lens of the optical acquisition system.
4. The method according to claim 1 wherein the reference straight line is parallel to a central axis of a lens-array of the optical acquisition system.
5. The method according to claim 4 wherein selecting the generating ray consists in: computing coordinates of a vector defining the selected generating ray by multiplying a vector defining another generating ray of said pixel beam, belonging to the collection of generating rays, with a rotation matrix, the distance between the selected generating ray and the reference straight line being equal to zero since said selected generating ray and said reference straight line cross each other, computing the value of the rotation angle of the rotation matrix based on the points and vectors defining said selected generating ray and said reference straight line.
6. A method for generating data representative of a volume, in an object space of an optical acquisition system, occupied by a set of rays of light passing through a pupil of said optical acquisition system and a conjugate of at least one pixel of a sensor of said optical acquisition system said volume occupied by said set of rays of light being called a pixel beam, the method comprising: acquiring a first collection of rays of light and a second collection of rays of light, called generating rays, each generating ray of said collection of generating rays generates a surface of a pixel beam by rotating around a revolution axis of said pixel beam, the revolution axis of said pixel beam being a ray of light belonging to the first collection of rays of light; computing intersection data defining intersections of a generating ray and the revolution axis of a given pixel beam with a plurality of given reference planes, said reference planes being parallel to one another and corresponding to different depths in the object space; obtaining ray diagram parameters defining the graphical representation of the intersection data in a 2D ray diagram to provide data representative of said pixel beam.
7. The method according to claim 6 wherein the intersection data corresponding to the generating ray and the revolution axis are graphically represented in the ray diagram as datalines and the ray diagram parameters include data representative of at least one of: the slope of a dataline; and an intersection of a dataline with an axis of the ray diagram.
8. The method according to claim 7 wherein the data representative of the pixel beam further comprises colour data representing the colour of the corresponding second generating ray and revolution axis.
9. The method according to claim 6 wherein the acquired collection of generating rays is obtained in accordance with the method comprising: selecting, for at least one pixel beam, a generating ray generating the surface of said pixel beam which crosses a reference straight line, generating a collection of sorted generating rays comprising the selected generating ray.
10. An apparatus for sorting a collection of rays of light, called generating rays, each generating ray of said collection generates, in an object space of an optical acquisition system, a surface of a volume occupied by a set of rays of light passing through a pupil of said optical acquisition system and a conjugate of at least one pixel of a sensor of said optical acquisition system, by rotating around a revolution axis of said volume, said volume occupied by said set of rays of light being called a pixel beam, said apparatus comprising a processor configured to: select, for at least one pixel beam, a generating ray generating the surface of said pixel beam which crosses a reference straight line, generate a collection of sorted generating rays comprising the selected generating ray.
11. The apparatus according to claim 10 wherein the processor is configured to select the generating ray by: computing coordinates of a vector defining the selected generating ray by multiplying a vector defining another generating ray of said pixel beam, belonging to the collection of generating rays, with a rotation matrix, the distance between the selected generating ray and the reference straight line being equal to zero since said selected generating ray and said reference straight line cross each other, computing the value of the rotation angle of the rotation matrix based on the points and vectors defining said selected generating ray and said reference straight line.
12. An apparatus for generating data representative of a volume, in an object space of an optical acquisition system, occupied by a set of rays of light passing through a pupil of said optical acquisition system and a conjugate of at least one pixel of a sensor of said optical acquisition system said volume occupied by said set of rays of light being called a pixel beam, the apparatus comprising a processor configured to: acquire a first collection of rays of light and a second collection of rays of light, called generating rays, each generating ray of said collection of generating rays generates a surface of a pixel beam by rotating around a revolution axis of said pixel beam, the revolution axis of said pixel beam being a ray of light belonging to the first collection of rays of light; computing intersection data defining intersections of a generating ray and the revolution axis of a given pixel beam with a plurality of given reference planes, said reference planes being parallel to one another and corresponding to different depths in the object space; obtain ray diagram parameters defining the graphical representation of the intersection data in a 2D ray diagram to provide data representative of said pixel beam.
13. The apparatus according to claim 12 wherein the acquired collection of generating rays is obtained in accordance with the method comprising: selecting, for at least one pixel beam, a generating ray generating the surface of said pixel beam which crosses a reference straight line, generating a collection of sorted generating rays comprising the selected generating ray.
14. A light field imaging device comprising: an array of micro lenses arranged in a regular lattice structure; a photosensor configured to capture light projected on the photosensor from the array of micro lenses, the photosensor comprising sets of pixels, each set of pixels being optically associated with a respective micro lens of the array of micro lenses; and a device for providing metadata in accordance with claim 8.
15. A device for rendering an image from light field data obtained in accordance with the method of claim 6.
16. A digital file comprising data representative of a volume, in an object space of an optical acquisition system, occupied by a set of rays of light passing through a pupil of said optical acquisition system and a conjugate of at least one pixel of a sensor of said optical acquisition system said volume occupied by said set of rays of light being called a pixel beam said data comprising: a ray diagram parameters defining a graphical representation in a 2D ray diagram of intersection data of a first ray of light, called a generating ray, and second ray of light, said generating ray generating a surface of a pixel beam by rotating around the other ray of light, said other ray of light being a revolution axis of said pixel beam, the intersection data defining intersections of the generating ray and the revolution axis of the pixel beam with a plurality of given reference planes, said reference planes being parallel to one another and corresponding to different depths in the object space; colour data defining colours of the generating ray and the revolution axis of the pixel beam.
17. The digital file according to claim 16 obtained by the method comprising: acquiring a first collection of rays of light and a second collection of rays of light, called generating rays, each generating ray of said collection of generating rays generates a surface of a pixel beam by rotating around a revolution axis of said pixel beam, the revolution axis of said pixel beam being a ray of light belonging to the first collection of rays of light: computing intersection data defining intersections of a generating ray and the revolution axis of a given pixel beam with a plurality of given reference planes, said reference planes being parallel to one another and corresponding to different depths in the object space: obtaining ray diagram parameters defining the graphical representation of the intersection data in a 2D ray diagram to provide data representative of said pixel beam.
18-19. (canceled)
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0045] Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which:
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
DETAILED DESCRIPTION
[0066] As will be appreciated by one skilled in the art, aspects of the present principles can be embodied as a system, method or computer readable medium. Accordingly, aspects of the present principles can take the form of an entirely hardware embodiment, an entirely software embodiment, (including firmware, resident software, micro-code, and so forth) or an embodiment combining software and hardware aspects that can all generally be referred to herein as a “circuit”, “module”, or “system”. Furthermore, aspects of the present principles can take the form of a computer readable storage medium. Any combination of one or more computer readable storage medium(a) may be utilized.
[0067] Embodiments of the invention provide formatting of light-field data for further processing applications such as format conversion, refocusing, viewpoint change and 3D image generation.
[0068]
[0069] The photosensor array 220 provides light-field image data which is acquired by LF Data acquisition module 240 for generation of a light-field data format by light-field data formatting module 250 and/or for processing by light-field data processor 255. Light-field data may be stored, after acquisition and after processing, in memory 290 in a raw data format, as sub aperture images or focal stacks, or in a light-field data format in accordance with embodiments of the invention.
[0070] In the illustrated example, the light-field data formatting module 150 and the light-field data processor 255 are disposed in or integrated into the light-field camera 200. In other embodiments of the invention the light-field data formatting module 250 and/or the light-field data processor 255 may be provided in a separate component external to the light-field capture camera. The separate component may be local or remote with respect to the light-field image capture device. It will be appreciated that any suitable wired or wireless protocol may be used for transmitting light-field image data to the formatting module 250 or light-field data processor 255; for example the light-field data processor may transfer captured light-field image data and/or other data via the Internet, a cellular data network, a WiFi network, a BlueTooth communication protocol, and/or any other suitable means.
[0071] The light-field data formatting module 250 is configured to generate data representative of the acquired light-field, in accordance with embodiments of the invention. The light-field data formatting module 250 may be implemented in software, hardware or a combination thereof.
[0072] The light-field data processor 255 is configured to operate on raw light-field image data received directly from the LF data acquisition module 240 for example to generate focal stacks or a matrix of views in accordance with embodiments of the invention. Output data, such as, for example, still images, 2D video streams, and the like of the captured scene may be generated. The light-field data processor may be implemented in software, hardware or a combination thereof.
[0073] In at least one embodiment, the light-field camera 200 may also include a user interface 260 for enabling a user to provide user input to control operation of camera 100 by controller 270. Control of the camera may include one or more of control of optical parameters of the camera such as shutter speed, or in the case of an adjustable light-field camera, control of the relative distance between the microlens array and the photosensor, or the relative distance between the objective lens and the microlens array.
[0074] In some embodiments the relative distances between optical elements of the light-field camera may be manually adjusted. Control of the camera may also include control of other light-field data acquisition parameters, light-field data formatting parameters or light-field processing parameters of the camera. The user interface 260 may comprise any suitable user input device(s) such as a touchscreen, buttons, keyboard, pointing device, and/or the like. In this way, input received by the user interface can be used to control and/or configure the LF data formatting module 250 for controlling the data formatting, the LF data processor 255 for controlling the processing of the acquired light-field data and controller 270 for controlling the light-field camera 200.
[0075] The light-field camera includes a power source 280, such as one or more replaceable or rechargeable batteries. The light-field camera comprises memory 290 for storing captured light-field data and/or rendered final images or other data such as software for implementing methods of embodiments of the invention. The memory can include external and/or internal memory. In at least one embodiment, the memory can be provided at a separate device and/or location from camera 200. In one embodiment, the memory includes a removable/swappable storage device such as a memory stick.
[0076] The light-field camera may also include a display unit 265 (e.g., an LCD screen) for viewing scenes in front of the camera prior to capture and/or for viewing previously captured and/or rendered images. The screen 265 may also be used to display one or more menus or other information to the user. The light-field camera may further include one or more I/O interfaces 295, such as FireWire or Universal Serial Bus (USB) interfaces, or wired or wireless communication interfaces for data communication via the Internet, a cellular data network, a WiFi network, a BlueTooth communication protocol, and/or any other suitable means. The I/O interface 295 may be used for transferring data, such as light-field representative data generated by LF data formatting module in accordance with embodiments of the invention and light-field data such as raw light-field data or data processed by LF data processor 255, to and from external devices such as computer systems or display units, for rendering applications.
[0077]
[0078] The circuit 2000 includes memory 2090, a memory controller 2045 and processing circuitry 2040 comprising one or more processing units (CPU(s)). The one or more processing units 2040 are configured to run various software programs and/or sets of instructions stored in the memory 2090 to perform various functions including light-field data formatting and light-field data processing. Software components stored in the memory include a data formatting module (or set of instructions) 2050 for generating data representative of acquired light data in accordance with embodiments of the invention and a light-field data processing module (or set of instructions) 2055 for processing light-field data in accordance with embodiments of the invention. Other modules may be included in the memory for applications of the light-field camera device such as an operating system module 2051 for controlling general system tasks (e.g. power management, memory management) and for facilitating communication between the various hardware and software components of the device 2000, and an interface module 2052 for controlling and managing communication with other devices via I/O interface ports.
[0079]
[0080] There are several ways of representing (or defining) a 4D light-field image. For example, a 4D light-field image can be represented, by a collection of micro-lens images as previously described with reference to
[0081] Embodiments of the invention provide a representation of light-field data based on the notion of pixel beam. In this way the diversity in formats and light-field devices may be taken into account. Indeed, one drawback of ray based formats, is that the parametrization planes have to be sampled to reflect the pixel formats and sizes. Therefore, the sampling needs to be defined along other data in order to recover physical meaningful information.
[0082] A pixel beam 40, as shown on
[0083] A pupil of an optical system is defined as the image of an aperture stop as seen through part of said optical system, i.e. the lenses of the camera which precedes said aperture stop. An aperture stop is an opening which limits the amount of light which passes through the optical system of the camera. For example, an adjustable diaphragm located inside a camera lens is the aperture stop for the lens. The amount of light admitted through the diaphragm is controlled by the diameter of the diaphragm opening which may be adapted depending of the amount of light a user of the camera wishes to admit, or the depth of field the user wishes. For example, making the aperture smaller reduces the amount of light admitted through the diaphragm, but increases the depth of field. The apparent size of a stop may be larger or smaller than its physical size because of the refractive action of a lens. Formally, a pupil is the image of the aperture stop through the optical system of the camera.
[0084] A pixel beam 40 is defined as a pencil of rays of light that reaches a given pixel 42 when propagating through the optical system 41 via an entrance pupil 44. As light travels on straight lines in free space, the shape of such a pixel beam 40 can be defined by two sections, one being the conjugate 45 of the pixel 42, and the other being the entrance pupil 44. The pixel 42 is defined by its non-null surface and its sensitivity map.
[0085] Thus, a pixel beam may be represented by an hyperboloid of one sheet 50, as shown on
[0086] A hyperboloid of one sheet is a ruled surface that can support the notion of pencil of rays of light and is compatible with the notion of “etendul” of physical light beams.
[0087] A hyperboloid of one sheet corresponds to the geometry of a Gaussian beam. Indeed, in optics, a Gaussian beam is a beam of monochromatic electromagnetic radiation whose transverse magnetic and electric field amplitude profiles are given by a Gaussian function; this also implies a Gaussian intensity profile. This fundamental transverse Gaussian mode describes an intended output of most lasers, since such a beam of light can be focused into the most concentrated spot.
[0088] The equations below assume a beam with a circular cross-section at all values of this can be seen by noting that a single transverse dimension, r, appears.
[0089] At a position along the beam (measured from the focus), the spot size parameter w is given by.sup.1
where w.sub.0 is the waist size.
[0090] As represented on .sub.R, the width w of the beam is equal to √{square root over (2)}w.sub.0.
[0091] Although the tails of a Gaussian function never actually reach zero, for. This means that far from the waist, the beam “edge” is cone-shaped. The angle between lines along that cone (whose r=w(z)) and the central axis of the beam (r=0) is called the divergence of the beam.
[0092] The total angular spread of the beam far from the waist is then given by Θ=20.
[0093] Since a hyperboloid of one sheet is a ruled surface, one family of straight lines, called generating rays, rotating around a revolution axis, called chief ray, of the hyperboloid, describe such a surface. The chief ray of a hyperboloid and the generating rays describing its surface are not parallel to each other and they never intercept each other. The knowledge of parameters defining the chief ray and any generating ray belonging to the family of generating lines of the hyperboloid are sufficient to define a pixel beam 40, 50.
[0094] The general equation of a hyperboloid of one sheet representing a pixel beam 40, 50 is:
[0095] where (x.sub.0, y.sub.0, z.sub.0) are the coordinates of a centre of the waist of the pixel beam in a (x, y, ) coordinates system centred on the centre of the pupil, a, b, c are homologous to the length of semi-axes along Ox, Oy, Oz respectively, where a represents the radius of the of waist along Ox; b represents the radius of the waist along Oy and c defines an angular aperture of the pixel beam, and θ.sub.x, θ.sub.y, define the chief ray directions relative to the entrance of the pupil 44 centre. They depend on the pixel 42 position on the sensor 43 and on the optical elements of the optical system 41. More precisely, the parameters θ.sub.x, θ.sub.y represent shear angles defining a direction of the conjugate 45 of the pixel 42 from the centre of the pupil 44. In some embodiments of the invention, a and b have identical values, in these cases, the waist has a circular shape.
[0096] The parameter c defines the angular aperture a of the pixel beam 40, 50 and is given by the formula
or by the expression given by the following [0097] equation:
[0098] where r represents the pupil radius, and z.sub.P represents the position of the waist of the pixel beam in front of the pupil.
[0099] However, such a representation of a pixel beam 40, 50 takes up large amounts of storage space since the classical file format for storing rays consists in storing a position and a direction in a 3D space. A solution for reducing the amount of storage space required to store a representation a pixel beam is described hereinafter in reference to
[0100] By nature, while chief rays will behave smoothly passing through the microlenses centres of the microlens array of the camera, generating rays suffer from stronger deviations on the borders of the microlenses. Thus the generating rays tend to hit the main lens of the camera at larger aperture angles. Aberrations like distortion will thus disturb the generating rays, while the chief rays are less affected by such aberrations. This disturbance of the generating rays makes it difficult to run the method described in reference to
[0101]
[0102] The apparatus 600 comprises a processor 601, a storage unit 602, an input device 603, a display device 604, and an interface unit 605 which are connected by a bus 606. Of course, constituent elements of the computer apparatus 600 may be connected by a connection other than a bus connection.
[0103] The processor 601 controls operations of the apparatus 600. The storage unit 602 stores at least one program capable of sorting the generating rays of a collection of pixel beams of a camera to be executed by the processor 601, and various data, including parameters related to the optical system 21 of the optical acquisition system, parameters used by computations performed by the processor 601, intermediate data of computations performed by the processor 601, and so on. The processor 601 may be formed by any known and suitable hardware, or software, or a combination of hardware and software. For example, the processor 601 may be formed by dedicated hardware such as a processing circuit, or by a programmable processing unit such as a CPU (Central Processing Unit) that executes a program stored in a memory thereof.
[0104] The storage unit 602 may be formed by any suitable storage or means capable of storing the program, data, or the like in a computer-readable manner. Examples of the storage unit 602 include non-transitory computer-readable storage media such as semiconductor memory devices, and magnetic, optical, or magneto-optical recording media loaded into a read and write unit. The program causes the processor 601 to perform a process for computing parameters representing a volume occupied by a set of rays of light in an object space of an optical system and encoding these parameters with an image captured by the optical acquisition system according to an embodiment of the present disclosure as described hereinafter with reference to
[0105] The input device 603 may be formed by a keyboard, a pointing device such as a mouse, or the like for use by the user to input commands, to make user's selections of parameters used for generating a parametric representation of a volume occupied by a set of rays of light in an object space of an optical system. The output device 604 may be formed by a display device to display, for example, a Graphical User Interface (GUI), images generated according to an embodiment of the present disclosure. The input device 603 and the output device 604 may be formed integrally by a touchscreen panel, for example.
[0106] The interface unit 605 provides an interface between the apparatus 600 and an external apparatus. The interface unit 605 may be communicable with the external apparatus via cable or wireless communication. In an embodiment, the external apparatus may be a camera, or a portable device embedding such a camera like a mobile phone, a tablet, etc.
[0107]
[0108] In a preliminary step S601, parameters (x.sub.0, y.sub.0, z.sub.0), a, b, c and θ.sub.x, θ.sub.y defining the different pixel beams associated to the pixels of the sensor of the camera are acquired either by calibrating the camera of by retrieving such parameters from a data file stored in a remote server or on a local storage unit such as the memory 290 of the camera or a flash disk connected to the camera. This acquisition or calibration may be executed by the processor 601 of the apparatus 600.
[0109] The computation of the values of the parameters (x.sub.0, y.sub.0, z.sub.0), a, b, c and θ.sub.x, θ.sub.y is realized, for example, by running a program capable of modelling a propagation of rays of light through the optical system of the camera. Such a program is for example an optical design program such as Zemax, ©, ASAP © or CodeV©. An optical design program is used to design and analyze optical systems. An optical design program models the propagation of rays of light through the optical system; and can model the effect of optical elements such as simple lenses, aspheric lenses, gradient index lenses, mirrors, and diffractive optical elements, etc. The optical design program may be executed by the processor 601 of the apparatus 600.
[0110] In a step S602 executed by the processor 601, the shear of the chief ray of a pixel beam is removed. Unshearing the chief ray consists in writing:
which gives a hyperboloid of one sheet which chief ray is parallel to the Oz axis:
where (
[0111] Ina step S603, the processor 601 computes the centering of the hyperboloid on the point of coordinates (x.sub.0, y.sub.0, z.sub.0) and then compute the normalization of the hyperboloid which gives:
[0112] Thus equation (1) now reads
X.sup.2+Y.sup.2−Z.sup.2=1 (4)
Unshearing then centering and normalizing a pixel beam reverts to use the function
transforming (x, y, z) coordinates into (X, Y, Z) coordinates.
[0113] Since the central axis of the hyperboloid is the Oz axis, two points belonging to this axis have the following set of coordinates (0,0,0) and (0,0,1) in the (XYZ) coordinate system. This central axis of the hyperboloid, transformed back in the original coordinate system (x, y, z), is the chief ray ρ.sub.C of the pixel beam.
[0114] The hyperboloid defined by equation (4) has two families of generating rays: [0115] a first family of generating rays is given by the rotation around the OZ axis of a straight line joining a first point of coordinates (1, 0, 0) and a second point of coordinates (1, ζ, ζ) for any ζ∈*, example ζ=1, and [0116] a second family of generating rays is given by the rotation around the OZ axis of a straight line joining the point of coordinates (1, 0, 0) and a third point of coordinates (1, ζ, ζ) for any ζ∈
*.
[0117] Any of these generating rays, transformed back in the original coordinate system, can be selected as ρ.sub.G0 a generating ray of a pixel beam.
[0118] In the following description of the method according to an embodiment of the invention, two points G.sub.0 which coordinantes are (1,0,0) and I.sub.0 which coordiantes are (1, 1,1) in the (XYZ) coordinate system as defining the initial generating ray ρ.sub.G0 in the (XYZ) coordinate system.
[0119] In a step S604, the processor 601 applies the function T as defined above to a reference straight line Δ in the object space of the camera. In an embodiment of the invention, the reference straight line Δ is an optical axis of a main lens of the camera. In another embodiment of the invention, the reference straight line Δ is a central axis of a lens-array of the camera, in a third embodiment the reference straight line Δ is a line with a direction forming an angle inferior or equal to
with the optical axis of the main lens of the camera.
[0120] The reference straight line Δ is defined by two points of coordinates P.sub.Δ0(x.sub.Δ0, y.sub.Δ0, z.sub.Δ0) and P.sub.Δ1(x.sub.Δ1, y.sub.Δ1, z.sub.Δ1) in the (x, y, z) coordinates system.
[0121] Applying the function T to the coordinates of P.sub.Δ0 and P.sub.Δ1 gives in the (XYZ) coordinate system:
[0122] As the chief ray ρ.sub.C of the pixel beam is the Oz axis in the (XYZ) coordinate system, a rotation of angle φ around the chief ray ρ.sub.C is given by the rotation matrix:
[0123] Naming ρ.sub.Gφ(G.sub.φ, I.sub.φ) the image of the generating ray ρ.sub.G0(G.sub.0, I.sub.0) by the rotation of angle φ around the chief ray ρ.sub.C the coordinates of the points G.sub.φ, and I.sub.φ are given by:
[0124] During a step S605, the processor 601 computes the value of the rotation angle φ.
[0125] The value of the rotation angle φ is obtained when the generating ray ρ.sub.Gφ crosses the reference straight line Δ, i.e the distance between the reference straight line Δ and the generating ray ρ.sub.Gφ is equal to 0.
[0126] The distance between two skew lines with equations
is given by (Gellert et al. 1989, p. 538).
[0127] This can be written in the concise form:
[0128] In the current case, for
x.sub.1=P.sub.Δ0 and x.sub.2=P.sub.Δ1, and x.sub.3=G.sub.φ, and x.sub.4=I.sub.φ
[0129] A distance between two straight lines being equals to zero reverts to compute:
[0130] In the case of the reference straight line Δ and the generating ray ρ.sub.Gφ:
[0131] Two solutions for φ giving D=0 can be found by:
[0132] Discriminant: Λ=4. A.sup.2. B.sup.2−4. (B.sup.2−C.sup.2). (A.sup.2−C.sup.2)=4. (A.sup.2+B.sup.2−C.sup.2).C.sup.2
[0133] This leads to two solutions:
[0134] Thus, two angles φ.sup.+ and φ.sup.− are identified for the generating ray ρ.sub.Gφ to cross the reference straight line Δ.
[0135] Since there are two families of generating rays for a same hyperboloid, four different rays generating the pixel beam cross the reference straight line Δ, two for each of the two families of generating rays. One generating ray is chosen among those four generating rays crossing the reference straight line. Then the selected generating ray is transformed back in the original coordinate system in a step S606.
[0136] This method is run on the different pixel beams of the camera. Thus, two collections of rays are obtained: a first collection of rays comprising the chief rays of the pixel beams of the camera and a second collection of rays comprising for the different pixel beams of the camera the generating rays crossing the reference straight line. Those two collections of rays are used in the method describe hereafter in order to provide a compact format for representing the pixel beams.
[0137] In order to propose a file format for storing rays which needs less storage space, a method for parametrizing the four dimensions of light-field radiance may be with reference to the cube illustrated in
{right arrow over (i)},−{right arrow over (i)},,−
,{right arrow over (k)},−{right arrow over (k)}
[0138] .sub.1 and
.sub.2 respectively. The light-field ray intersects the first reference plane P.sub.1 at depth
.sub.1 at intersection point (x.sub.1, y.sub.1) and intersects the second reference plane P.sub.2 at depth
.sub.2 at intersection point (x.sub.2, y.sub.2). In this way the light-field ray may be identified by four coordinates (x.sub.1, y.sub.1, x.sub.2, y.sub.2). The light-field can thus be parameterized by a pair of reference planes for parameterization P.sub.1, Pz also referred herein as parametrization planes, with each light-field ray being represented as a point (x.sub.1,y.sub.1,x.sub.2,x.sub.2,)∈R.sup.4 in 4D ray space.
[0139] Thus this is done for each chief ray and each generating ray of a collection of pixel beams of a camera.
[0140] For example an origin of the reference co-ordinate system may be placed at the center of a plane P.sub.1 generated by the basis vectors of the coordinate axis system ({right arrow over (i)}.sub.1, {right arrow over (j)}.sub.1). The {right arrow over (k)} axis is normal to the generated plane P.sub.1 and the second plane P.sub.2 can be placed for the sake of simplicity at a distance =Δ from plane P.sub.1 along the {right arrow over (k)} axis. In order to take into account the six different directions of propagation the entire light-field may be characterized by six pairs of such planes. A pair of planes, often referred to as a light slab characterizes the light-field interacting with the sensor or sensor array of the light-field camera along a direction of propagation.
[0141] The position of a reference plane for parameterization can be given as:
[0142] {right arrow over (x.sub.0)}=d{right arrow over (n)} where {right arrow over (n)} is the normal and d is an offset from the origin of the 3D coordinate system along the direction of the normal.
[0143] A Cartesian equation of a reference plane for parameterization can be given as:
{right arrow over (b)}({right arrow over (x)}−{right arrow over (x.sub.0)})=0
If a light-field ray has a known position: [0144] {right arrow over (x.sub.i)}(x.sub.i, y.sub.i, z.sub.i) and a normalized propagation vector: [0145] {right arrow over (u)}(u.sub.1, u.sub.2, u.sub.3) the general parametric equation of a ray in 3D may be given as:
{right arrow over (x)}=t{right arrow over (u)}+{right arrow over (x.sub.i)}
[0146] The co-ordinates of the intersection {right arrow over (x1)} between the light-field ray and a reference plane are given as:
[0147] There is no intersection between the light-field rays and the reference parameterization if the following condition is not satisfied:
({right arrow over (x.sub.1)}−{right arrow over (x.sub.0)}){right arrow over (u)}>0
[0148] Due to the perpendicularity with one of the axes of the system of the pair of reference planes used to parameterize the light-field, one of the components of the ray intersection is always constant for each plane. Hence if there is an intersection of a light-field ray {right arrow over (x1)} with the first reference plane, and the intersection {right arrow over (x2)} of the said light-field with the second reference plane, four coordinates vary and equation A can be used to calculate the four parameters of a light-field ray. These four parameters can be used to build up a 4D ray diagram of the light-field.
[0149] Assuming parameterization of the light-field with reference to two parameterization reference planes, data representing the light-field may be obtained as follows. If a reference system is set as pictured in
[0150] Developing the above expression gives:
[0151] Both sets of equation should deliver the same point {right arrow over (x3)} as the rendered light-field ray at the new location. By replacing u.sub.x; u.sub.y; u.sub.z with their corresponding expression as functions of {right arrow over (x1)} and {right arrow over (x2)}, if the second set of equation from the previous block is used and x3 and y3 are added together:
[0152] Leading to the expression:
(z.sub.2−z.sub.3)(x.sub.1+y.sub.1)+(z.sub.3−z.sub.1)(x.sub.2+y.sub.2)=(z.sub.2−z.sub.1)(x.sub.3+y.sub.3) (B)
[0153] Co-ordinates with a subscript .sub.3 relate to a known point (x.sub.3, y.sub.3, .sub.3) where the light-field is rendered. All depth co-ordinates Z are known. The parameterisation planes are in the direction of propagation or rendering. The light-field data parameters L are (x.sub.1, y.sub.1, x.sub.2, y.sub.2).
[0154] The light-field rays that form an image at point (x.sub.3, y.sub.3, .sub.3) are linked by expression (B) which defines a hyper plane in
.sup.4.
[0155] This signifies that if images are to be rendered from a two-plane parametrized light-field, only the rays in the vicinity of hyperplanes need to be rendered, there is no need to trace them.
[0156] In a preliminary step S801 of the method parameters defining the chief rays and the generating rays of the different pixel beams associated to the pixels of the sensor of the camera are acquired. These parameters are obtained as a result of the method for sorting the generating rays described above.
[0157] Such parameters are the coordinates of the chief rays and of a generating ray crossing the reference straight line of the different pixel.
[0158] In another preliminary step S802 raw light-field data is acquired by a light-field camera 801. The raw light-field data may for example be in the form of micro images as described with reference to
[0159] In step S803 the acquired light-field data is processed by ray parameter module 802 to provide intersection data (x.sub.1, y.sub.1, x.sub.z, y.sub.2) defining intersection of captured light-field rays, which correspond to the chief rays and the generating rays crossing the reference straight line of pixel beams 40, 50, with a pair of reference planes for parameterization P.sub.1, P.sub.2 at respective depths .sub.1,
.sub.2.
[0160] From calibration of the camera the following parameters can be determined: the centre of projection (x.sub.3, y.sub.3,
.sub.3) the orientation of the optical axis of the camera and the distance f from the pinhole of the camera to the plane of the photosensor. The light-field camera parameters are illustrated in
.sub.p. The pixel output of the photosensor is converted into geometrical representation of light-field rays. A light-slab comprising the two reference planes P.sub.1 and P.sub.2 is located at depths
.sub.1 and
.sub.2, respectively, beyond
.sub.3, at the other side of the centre of projection of the camera to the photosensor. By applying a triangle principle to the light rays, pixel coordinates (x.sub.p, y.sub.p,
.sub.p) recording the light projected from the array of microlenses can be mapped to ray parameters i.e. reference plane intersection points (x.sub.1, y.sub.1, x.sub.2, y.sub.2) by applying the following expression:
[0161] The above calculation may be extended to multiple cameras with different pairs of triplets (x.sub.p, y.sub.p, .sub.p) (x.sub.3, y.sub.3,
.sub.3):
[0162] In the case of a plenoptic camera, a camera model with an aperture is used and a light-field ray is described in the phase space as having an origin (x.sub.p, y.sub.p, .sub.p) and a direction (x′.sub.3, y′.sub.3, 1). Its propagation unto the plane (x.sub.3, y.sub.3) at depth
.sub.3 can be described as a matrix transform. The lens will act as an ABCD matrix to refract the ray and another ABCD propagation matrix will bring the ray onto the light-slab reference planes P.sub.1 and P.sub.2.
[0163] From this step intersection data (x.sub.1, y.sub.1, x.sub.2, y.sub.2) geometrically defining intersection of the chief rays and the generating ray crossing the reference straight line with reference planes P.sub.1, P.sub.2 is obtained.
[0164] In step S804 2D ray a diagram graphically representing the intersection data (x.sub.1, y.sub.1, x.sub.2, y.sub.2) is obtained by ray diagram generator module 803.
[0165] .sub.3=2 with an aperture |A|<0.5. The data lines of the ray diagram used to parameterise are sampled by 256 cells providing an image of 256×256 pixels.
[0166] If the ray diagram illustrated in
[0167] Since the light-field rays are mapped along data lines of the 2D ray diagram, it is more efficient to store parameters defining the data line rather than the line values themselves. Parameters defining the data line such as, for example, a slope defining parameter s and an axis intercept d may be stored with the set of light-field rays belonging to that data line.
[0168] This could require for example as little as 2 bytes for slope parameter s, 2 bytes for intercept parameter d and then only 3 bytes per ray, Moreover, the rays may be ordered along lines in the file. In order to set lines through matrix cells so called digital lines are generated which approximate the ray lines with minimum error.
[0169] To locate the data lines and to obtain slope parameters and intercept parameter d step S805 a Radon transform is performed by line detection module 804 on the ray diagram generated in step S804.
[0170] From the obtained slope parameter s and intercept parameter d a representative digital line is generated by digital line generation module 805 in step S806. In this step digital lines are generated by approximating an analytical line to its nearest grid point, for example by applying Bresenham's algorithm. Indeed Bresenham's algorithm provides a way to provide a digital line with minimal operation. Other methods may apply a fast discrete Radon transform calculation. An example of Bresenham application is one adapted from the following reference: [0171] http://www.cs.helsinki.fi/group/goa/mallinnus/lines/bresenh.html.
[0172] The digital format defines the data line by two points of a grid (0,d) and (N−1, s) d being the intersection corresponding to the value of x.sub.2 when x.sub.1=0 and s being the slope parameter corresponding to the value of x.sub.2 when x.sub.1=N−1. From the digital format generated the slope a of each individual line may be expressed as a function of d, N and s, as:
[0173] where:
[0174] s∈{0, 1, . . . N−1} and d∈{0, 1, . . . , N−1}
[0175]
[0176]
[0177] Ray data parameterized by a sampled pair of lines (in 2D) and belonging to one camera, belong to a family of digital lines (beam) in the phase space used for representing the data. The header of the beam can simply contain the slope a and the thickness of the beam defined by the upper and lower boundaries of the axis intersections d.sub.max−d.sub.min. The ray values will be stored as RGB colors along digital lines whose header can be d and s. Void cells of the ray diagram in the sampled space do not need to be stored. Coordinates x1; x2 of the rays can be deduced from the parameters d, s and from the position of the cell along the digital line.
[0178] Parameters to be estimated from the light-field or from camera's geometry are the slope a the lower and upper bounds of the digital line intercepts (d.sub.min, d.sub.max), and the digital line parameters (d.sub.i, s.sub.i). The discrete Radon transform has already been discussed as a tool to measure the support location of the light-field in the ray diagram.
[0179]
[0180] The equations of two orthogonal 2D sliced spaces from equation B is given as.
(z.sub.2−z.sub.3)(x.sub.1+y.sub.1)+(z.sub.3−z.sub.1)(x.sub.2+y.sub.2)=(z.sub.2−z.sub.1)(x.sub.3+y.sub.3) (C)
If a 2D slice for x.sub.i coordinates is taken, the equation of the beam of lines where ray data through an aperture of size A at (x.sub.3, y.sub.3, z.sub.3) will map is given as:
[0181] Similarly, if a 2D slice is taken for y.sub.i coordinates:
[0182] As previously described, the values of m and d.sub.max.sub.
[0183] This simpler procedure of location assumes a circular entrance pupil A so that d.sub.max.sub.
[0184] It would be interesting to obtain a format for the 4D case which is similar to what was proposed for the 2D case. To do so, it would be interesting to associate the 2D lines found on the Π(x.sub.1, x.sub.2), plane with the lines found on the Π(y.sub.1, y.sub.2) place, i.e., the lines that are the results of the intersection of the corresponding hyper plane with the two orthogonal slices of Π(x.sub.1, x.sub.2), and Π(y.sub.1, y.sub.2), From expressions D and E, it is known that the corresponding lines have the same slope m. This is the first parameter that associates each line in Π(x.sub.1, x.sub.2) to a line in Π(y.sub.1, y.sub.2), for a camera at a certain depth. If there are multiple cameras at the same depth (i.e., the case of
[0186] The sets of the equations may be solved for k, x.sub.3 and y.sub.3. Note that (X.sub.3, y.sub.3, z.sub.3) correspond to the coordinates of the camera, or in other words the voxel where the corresponding bundle of light is focused into a circle of the radius A. We have supposed that the aperture on the plane positioned at z.sub.3 is circular, so that d.sub.max.sub.
[0187] The digital lines may be scanned as before on Π(x.sub.1, x.sub.2) using the Bresenham digital lines; For each individual (x.sub.1, x.sub.2), value, the corresponding (y.sub.1, y.sub.2) values captured in the light-field are stored. To find such values, expression C is exploited. All the following are either known or estimated from expressions F and G x3; y3; z3; z1; z2
[0188] Moving on each line in Π(x.sub.1, x.sub.2), for each (x.sub.1.sup.q, x.sub.2.sup.q), the following relationship in (y.sub.1, y.sub.2) is obtained:
[0189] For each point in Π(x.sub.1, x.sub.2), a collection of lines in Π(y.sub.1, y.sub.2) is saved. d.sub.off corresponds to the offset of the lines scanned and saved for (x.sub.1.sup.q, x.sub.2.sup.q). It is noted that:
d.sub.off(x.sub.1.sup.q,x.sub.2.sup.q)=mx.sub.1.sup.q+k(x.sub.3+y.sub.3*)−x.sub.2.sup.q
[0190] With reference to
y.sub.2=my.sub.1+d.sub.off(x.sub.1.sup.q,x.sub.2.sup.q,x.sub.3,y.sub.3′) (K)
[0191] perpendicular to the depicted datalines, but in a 4D space.
[0192] An exemplary data format for a bundle of data lines per camera is illustrated in Table 1.
TABLE-US-00001 TABLE 1 Tags Data Light slab orientation 1 one tag w from (−x, +x, −y, +y, −z, +z) Parametrization plane offset w.sub.2 − w.sub.1 (w.sub.3 □ e is relative to w.sub.1) (float) Width in number of min u.sub.1 max u.sub.1 N u.sub.1min u.sub.1Max u.sub.1 cells (integer) value value (float) (float) Width in number of min u.sub.2 max u.sub.2 M u.sub.2min u.sub.2Max u.sub.2 cells (integer) value value (float) (float) Width in number of min v.sub.1 max v.sub.1 P v.sub.1min v.sub.1Max v.sub.1 cells (integer) value value (float) (float) Width in number of min v.sub.2 max v.sub.2 Q v.sub.2min v.sub.2Max v.sub.2 cells (integer) value value (float) (float) Number of cameras n (integer) Aperture size for A.sub.1 cam.sub.1 Cam.sub.1 focus (3 u3.sub.1 v3.sub.1 w3.sub.1 floats) lowest cam.sub.1 cam.sub.1 cam.sub.1 number d.sub.1 m.sub.1 l.sup.x.sub.1 intercept in (u.sub.1, u.sub.2) steepness of digital lines in u.sub.1, u.sub.2 cam.sub.1 number l.sup.y.sub.1 of digital lines in v.sub.1, v.sub.2 data line (RGB z.sub.p a).sub.0 (RGB z.sub.p a).sub.1 . . . (RGB Z.sub.p a).sub.n (end.sub.1 = l.sup.x.sub.1*N*l.sup.y.sub.1*P) * (3 bytes + 2floats) . . . . . . . . . . . . . . . . . . . . . . . . Aperture size for A.sub.n cam.sub.n Cam.sub.n focus (3 u3.sub.n v3.sub.n w3.sub.n floats) lowest cam.sub.n cam.sub.n cam.sub.n number d.sub.n m.sub.n l.sup.x.sub.n intercept in (u.sub.1, u.sub.2) steepness of digital lines in u.sub.1, u.sub.2 cam.sub.n number l.sup.y.sub.n of digital lines in v.sub.1, v.sub.2 data line (RGB z.sub.p a).sub.0 (RGB z.sub.p a).sub.1 . . . (RGB z.sub.p a).sub.n (end.sub.n = l.sup.x.sub.n*N*l.sup.y.sub.n*P) * (3 bytes + 3floats)
[0193] Firstly general metadata of the 4D space is provided: including boundaries of the 4 axes x.sub.1, x.sub.2, y.sub.1, y.sub.2 and their corresponding sampling. The number of cameras (bundles) is also provided. For each camera j the following parameters are saved: [0194] the size of the aperture: A.sub.j, which corresponds to the diameter of the pupil of a pixel beam, [0195] the focus point of the camera: cam.sub.j; focusPoint=(u.sub.3, u.sub.3, w.sub.3) [0196] lowest d intercept in (x1.sub.x,2)=d.sub.j [0197] steepness=m.sub.jl [0198] number of digital lines in (x.sub.1, x.sub.2)=l.sub.j.sup.x [0199] number of digital lines in (y.sub.1, y.sub.2)=l.sub.j.sup.xy
[0200] On each camera, for each (x.sup.q.sub.1; x.sup.q.sub.2), scanning is started on (y.sub.1, y.sub.2) with respect to expression (K) using the Bresenham digital lines, and the RGB values of each light-field rays are saved. In particular y.sub.3*−A to y.sub.3*+A and the corresponding d.sub.off is calculated according to expression (K).
[0201] The same calculations are performed in the decoding step using the stored metadata. In particular, k is found using equation (H). Hence the format remains compact. There is no need to store four indexes for each ray in the system. It is noted that the sampling of the hyper-plane above is the sampling of the 4D ray-space and thus a single x1; y1; x2; y2 location is not missed. This is only one example of a systematic scanning of the 4D ray-space for saving all data in a very compact form. Other processes may of course be applied. The parametric form seems to be adapted to explore the hyper-plane because it permits an inter-leaved space exploration.
[0202] In the case of multiple cameras to work on data that contains several bundles of hyper-planes (several maxima in the Radon transform due to multiple cameras), a more complex algorithm may be used. As a pre-processing step, the parameters (m, k) are found for all the peaks in the radon transform of Π(x.sub.1, x.sub.2), and put in one set. The same is done for the peaks in (y.sub.1, y.sub.2) and the parameters are put in another set. Now in each iteration of the greedy algorithm, the maximum peak intensity is found in the 2D radon transform of (x.sub.1, x.sub.2) and the corresponding peak in (y.sub.1, y.sub.2) is found by matching the previously found parameters (m, k). After saving the data as mentioned in the last section, these peaks are cleaned from the radon transforms, and the next iteration is started, until nothing meaningful remains in the light-field
[0203] Although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art which lie within the scope of the present invention.
[0204] Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate.