Method for generating a digital hologram, associated electronic device and system
The method of partitioning pixels into blocks and selecting relevant elements based on observation positions in the digital hologram generation process addresses the inefficiency in existing technologies, achieving a significant reduction in computational load for large holograms.
Patent Information
- Application Number
- FR2023013457
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-01
- Publication Date
- 2025-06-06
AI Technical Summary
Existing methods for generating digital holograms do not effectively reduce the computational load, particularly when producing large holograms, as they do not substantially decrease the number of operations required.
A method for generating a digital hologram that involves partitioning pixels into blocks, selecting relevant elements of a three-dimensional scene visible from specific observation positions, and determining pixel values based on the light intensities of these selected elements, thereby reducing the computational load.
This approach significantly reduces the quantity of elements selected for each block of pixels, leading to a substantial decrease in the computational operations required to generate the digital hologram, making it more efficient for large holograms.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: Method for generating a digital hologram, associated electronic device and system Technical field of the invention
[0001] The present invention relates to the technical field of digital holography.
[0002] It relates in particular to a method for generating a digital hologram, as well as an associated electronic device and system. State of the art
[0003] In the context of computer hologram generation (or CGH for "Computer Generated Hologram"), it was proposed in the article "Layered holography stereogram based on inverse Fresnel diffraction", by H. Zhang, Y. Zhao, L. Cao and G. Jin, in Applied Optics, vol. 55, n° 3, January 2016 to partition the hologram into several holographic elements, called "hogels" in this article, and to determine each holographic element by cutting into different depth slices the field visible from this holographic element.
[0004] Dividing the hologram into different elements does not, however, substantially reduce the computational load required to generate the digital hologram as a whole, which is significant in particular when attempting to produce large holograms. Presentation of the invention
[0005] In this context, the present invention provides a method for generating a digital hologram based on a three-dimensional scene, the digital hologram being defined by pixels located in a definition plane, the method comprising the following steps:
[0006] - reception of data defining each observation position of a set including at least one observation position;
[0007] - partitioning the pixels into a plurality of pixel blocks;
[0008] - for at least one block of pixels of the plurality of blocks of pixels (or even for at least some of the pixel blocks of the plurality of pixel blocks), selection of elements of the three-dimensional scene whose light contribution to be reproduced by the pixel block concerned is visible from at least one observation zone associated with an observation position of the whole, and determination of values respectively associated with the pixels of the pixel block concerned on the basis of the light intensities respectively associated with the elements selected for the pixel block concerned.
[0009] The selection step makes it possible to take into account, when generating the hologram digital, only elements that are relevant to the observation position(s), which reduces the amount of operations required to generate the digital hologram.
[0010] Carrying out such a selection by block of pixels also makes it possible to significantly reduce the quantity of elements selected for each block of pixels since a reduced proportion of the elements of the three-dimensional scene is in practice reproduced by a given block of pixels.
[0011] The digital hologram thus generated is intended to reproduce the three-dimensional scene.
[0012] The method may comprise, for at least one block of pixels, a step of determining an angular range or several angular ranges covering (together) (all) the angles formed between the pixels of the block of pixels concerned and each observation zone respectively associated with each observation position of the set.
[0013] The elements of the three-dimensional scene selected for this block of pixels can then be the elements of the three-dimensional scene whose light contribution is reproduced (at the level of the digital hologram and / or at least in part) by a ray emitted, from a pixel of the block concerned, in a determined angular range (that is to say, if an angular range is previously determined, in this angular range and, if several angular ranges are previously determined, in one of the angular ranges previously determined).
[0014] When said set comprises a plurality of observation positions, the method may comprise, for at least one block of pixels, a step of determining an intensity map and / or a depth map by analyzing the three-dimensional scene using a virtual camera positioned at the level of the block of pixels concerned and having a predetermined angular aperture; the elements of the three-dimensional scene selected for this block of pixels may then be the elements whose position defined in the intensity map and / or in the depth map corresponds to the angular range determined for this block of pixels.
[0015] According to another possible implementation, the selection step is carried out by analyzing the three-dimensional scene using a virtual camera whose angular aperture depends on the determined angular range.
[0016] When said set comprises a single observation position, the virtual camera can be positioned according to said observation position.
[0017] The analysis of the three-dimensional scene using the virtual camera produces, for example, an intensity map.
[0018] The aforementioned light intensities respectively associated with the selected elements can then be read from the intensity map.
[0019] The method may further comprise, for a given block of pixels, a step of determination of a window corresponding to the selected elements for the given block of pixels.
[0020] The method may in this case further comprise the following steps:
[0021] - determination of diffusion weight for the given block of pixels using the determined window; and / or
[0022] - determination of the values respectively associated with the pixels of the block of pixels given by means of an error diffusion algorithm using the determined diffusion weights.
[0023] The method may further comprise the following steps carried out for another block of pixels, different from the given block of pixels:
[0024] - determination of another window corresponding to the elements selected for the other block of pixels; and / or
[0025] - determination of other diffusion weights as a function of the diffusion weights determined terminated for the given block of pixels and a phase factor corresponding to a translation from the window determined for the given block of pixels to the other window; and / or
[0026] - determination of the values associated with the pixels of the other block of pixels by means said error diffusion algorithm using the other diffusion weights.
[0027] The method may also comprise a step of determining the observation position by means of an eye tracking device.
[0028] In practice, the three-dimensional scene can be represented by at least one object whose coordinates are defined in a three-dimensional space. This object (or each object) can be defined by a point cloud, or by a polygon mesh, or by data representing the object from several points of view, or by neural radiance fields (or NeRF for "Neural Radiance Fields").
[0029] The pixel blocks are for example rectangular.
[0030] The invention also provides an electronic device comprising:
[0031] - a data receiving unit defining each observation position of a set comprising at least one observation position;
[0032] - a processing unit configured to select, for at least one block of pixels of a plurality of pixel blocks obtained by partitioning pixels defining a digital hologram in a definition plane, elements of a three-dimensional scene whose light contribution to be reproduced by the pixel block concerned is visible from at least one observation zone associated with an observation position of the assembly, and to determine values respectively associated with the pixels of the pixel block concerned on the basis of the light intensities respectively associated with the elements selected for the pixel block concerned.
[0033] The invention finally proposes a system comprising such an electronic device and a eye tracking device configured to determine the observation position (and to transmit the determined observation position to the receiving unit).
[0034] Of course, the various features, variants and embodiments of the invention may be combined with each other in various combinations to the extent that they are not incompatible or mutually exclusive. Detailed description of the invention
[0035] Furthermore, various other characteristics of the invention emerge from the appended description given with reference to the drawings which illustrate non-limiting embodiments of the invention and where:
[0036] [Fig-1] is a representation of a three-dimensional scene and a digital hologram intended to reproduce this three-dimensional scene;
[0037] [Fig.2] schematically represents the main elements of a system comprising an electronic device designed to generate a digital hologram;
[0038] [Fig.3] is a flowchart representing an example of a method for generating a digital hologram;
[0039] [Fig.4] represents the context of a first embodiment possible for one of the steps of [Fig.3]; and
[0040] [Fig.5] represents the context of a second embodiment possible for this step.
[0041] We seek to generate a digital hologram H capable of reproducing a three-dimensional scene S, formed here from several objects Ob O2 and located in a three-dimensional space.
[0042] In the following, a reference frame (O,x,y,z) of this three-dimensional space is used. For convenience, the reference frame (O,x,y,z) is placed so that the plane (O,x,y), that is to say the plane defined by the axes (Ox) and (Oy), corresponds to the definition plane of the digital hologram H. The origin O of the reference frame (O,x,y,z) can also be located at the center of the digital hologram H.
[0043] In this context, the axis (Oz) is perpendicular to the plane (O,x,y) and it is proposed here that the points defining the three-dimensional scene S (i.e. the points of the objects Oi, O2) have three-dimensional coordinates (in the frame (O,x,y,z)), or coordinates in the three-dimensional space, the last coordinate of which, or depth value z, is positive.
[0044] It is also considered that the observation positions of the digital hologram H, which are also observation positions of the three-dimensional scene S (to be reproduced by the digital hologram H when this digital hologram H will be generated), have three-dimensional coordinates (in the frame (O,x,y,z)) of which the last coordinate, or depth value z, is negative.
[0045] The digital hologram H is defined by a plurality of pixels, arranged for example in the form of a pixel matrix and therefore located in the definition plane (O,x,y) already mentioned.
[0046] It is in fact usually considered that the plane of definition of the digital hologram H is located in three-dimensional space. The digital hologram is generated as described below so that the light field produced by the digital hologram H (in practice the light rays emitted by the pixels of the digital hologram H) corresponds (in the half-space of equation z<0) to the light field produced by the three-dimensional scene S.
[0047] Of particular interest here are large digital holograms, i.e. digital holograms which comprise, for example, more than 10,000 pixels on each of the two sides of the digital hologram H, or in other words which are defined by a matrix of pixels having more than 10,000 rows and more than 10,000 columns.
[0048] [Fig.2] schematically represents the main elements of a system comprising an electronic device 2 designed to generate a digital hologram H.
[0049] This system also comprises one or more eye tracking devices 4.
[0050] Each eye tracking device 4 is designed to determine an observation position from which a user of the system observes the three-dimensional scene S reproduced by the digital hologram H. In practice, the observation position is defined by three-dimensional coordinates (or coordinates in three-dimensional space).
[0051] When multiple users use the system, the system may include multiple eye tracking devices 4 configured respectively to determine the viewing position of a particular user.
[0052] An observation position may correspond to a real position of a user (precisely of the eyes of a user) relative to a display device 10 of the digital hologram H (and consequently relative to the three-dimensional scene S reproduced by this digital hologram H).
[0053] An eye tracking device 4 may in this case comprise an image capture device 12 configured to take an image of an environment facing the display device 10 of the digital hologram H and an analysis module 14 designed to determine the observation position by analyzing the image taken (precisely for example by detecting the eyes of a given user within the image taken).
[0054] The electronic device 2 comprises a reception unit 6 configured to receive, here from the eye tracking device(s) 4, data ending the observation position(s). For each observation position, this data here includes the three-dimensional coordinates of the observation position concerned. Alternatively, when the users are located in a given plane (associated with a predefined depth z0, with here z0<0), the data defining each observation position may include two-dimensional coordinates (x,y) of the observation position in this given plane.
[0055] The electronic device 2 further comprises a processing unit 8 configured to select, for at least one block of pixels of a plurality of blocks of pixels obtained by partitioning the pixels defining the digital hologram H in the definition plane, elements of the three-dimensional scene S whose light contribution to be reproduced by the block of pixels concerned is visible from at least one observation position, and to determine values respectively associated with the pixels of the block of pixels concerned on the basis of the light intensities respectively associated with the elements selected for the block of pixels concerned.
[0056] The processing unit 8 thus generates the digital hologram H on the basis of the values determined for the different blocks of pixels and can, for example, transmit the digital hologram H to the display device 10 (the processing unit 8 and the display device 10 being, for example, connected for this purpose either by a bus or by a computer network, wired or wireless).
[0057] The digital hologram H thus generated can then be displayed by the display device 10 so that the user(s), when observing the displayed digital hologram H, have the impression of seeing the three-dimensional scene S.
[0058] The receiving unit 6 and the processing unit 8 may each be implemented in practice by hardware means (such as electronic circuits) and / or software means (such as computer programs executable by one or more processor(s)).
[0059] For example, the receiving unit 6 is an electronic communication circuit designed to exchange data with the eye tracking device(s) 4; the processing unit 8 may be implemented by a processor programmed by computer program instructions designed to implement the method of [Fig. 3] when these computer program instructions are executed by the processor. Alternatively, however, the processing unit 8 could be implemented by an application-specific integrated circuit, for example based on logic gates.
[0060] [Fig. 3] is a flowchart representing an example of a method for generating a digital hologram. This method is implemented here by the electronic device 2.
[0061] This method begins with a step E2 of receiving data defining each observation position of a set comprising at least one position observation. These data are here received from the eye tracking device(s) 4 by means of the receiving unit 6. As already indicated, these data comprise for example, for each observation position, the three-dimensional coordinates of this observation position (or, alternatively, two-dimensional coordinates of this observation position in a predefined plane of equation z = z0). For each observation position, an observation zone (or observation region) U; is defined here contained in a plane parallel to the definition plane of the digital hologram H and containing the observation position concerned. Each observation zone U; is for example delimited by a rectangle of predetermined dimensions. This rectangle may in practice be centered on the observation position concerned; alternatively, this rectangle could not be centered on the observation position concerned, since the surface delimited by this rectangle comprises (i.e.surrounds) the observation position concerned. Each observation zone U; represents the set of positions where the eyes of a user can theoretically be located around the observation position concerned.
[0062] The method continues with a step E4 of partitioning the pixels defining the digital hologram H into a plurality of pixel blocks. The pixel blocks are here rectangular blocks. The pixel blocks are thus formed from contiguous pixels by segmentation (or cutting) of the digital hologram H.
[0063] In the sequence Kx is denoted the number of pixel blocks formed in the width of the digital hologram H (i.e. along the axis (Ox)) and Ky the number of pixel blocks formed over the height of the digital hologram (i.e. along the axis (Oy)). The number of pixel blocks formed in step E4 is therefore here equal to Kx.Ky.
[0064] We also note Hmn the different blocks of pixels, where the index m (between 0 and Kx-1) identifies the block Hmn concerned along the axis (Ox) and the index n (between 0 and Ky-1) identifies the block Hmn concerned along the axis (Oy).
[0065] Finally, we note Mx, My the resolution of each block Hmn (that is to say the number of pixels in each block Hm>n) respectively along the axis (Ox) and along the axis (Oy).
[0066] In order to then enter a loop which allows the successive processing of the different blocks of pixels Hmn, the index values m and n are initialized to zero in step E6.
[0067] The aforementioned loop begins with a step E8 of selecting elements of the three-dimensional scene S whose light contribution to be reproduced by the current block of pixels Hm>n is visible from at least one observation zone among the observation zone(s) respectively associated with the observation position(s) defined in the data received in step E2.
[0068] To do this, the processing unit 8 determines for example an angular range or several angular ranges covering all the angles formed between the pixels of the block of current pixels Hmn and each observation zone associated with an observation position defined in the data received in step E4.
[0069] In practice, the processing unit 8 determines for example such an angular range, or such angular ranges, in the plane (xOz) and such an angular range, or such angular ranges, in the plane (yOz).
[0070] The processing unit 8 can then select in step E8 (for the current block of pixels Hm n) the elements of the three-dimensional scene S whose light contribution is reproduced by a ray emitted, from at least one pixel of the current block Hmn, in a previously determined angular range (that is to say, if an angular range is previously determined, in this angular range and, if several angular ranges are previously determined, in one of the previously determined angular ranges).
[0071] Two possible examples of implementation of this step E8 are given below with reference to figures 4 and 5.
[0072] As will emerge from the description of these two examples, step E8 also makes it possible in these two examples to produce an intensity map I and a depth map D which define the position (x,y,D(x,y)) and the intensity I(x,y) of each selected element. (If several elements share the same coordinates (x,y), it is the element of minimum depth, i.e. closest to the definition plane of the digital hologram, whose intensity I(x,y) and depth D(x,y) are retained in the intensity map I and the depth map D.)
[0073] The method then comprises a step E10 of constructing matrices Ud each representing the light sources located in a plane associated with a given depth index d. These matrices Ud are here constructed on the basis of the depth map D and the intensity map I.
[0074] For each depth index d encountered in the depth map D, the matrix Ud associated with this depth index d is defined as follows (by scanning the values of x and y used):
[0075] Ud(x,y) = SQRT(I(x,y)).exp(jO>(x,y)) if D(x,y) = d
[0076] Ud(x,y) = 0 if D(x,y) d
[0077] where SQRT is the square root function, exp the exponential function, j the complex number such that j2=-l and <b(x,y) la phase initiale (avec <b(x,y) e [0,2ir[), qui peut être choisie aléatoire pour obtenir une scène d’apparence diffuse.
[0078] We thus obtain a Ud matrix for each possible depth index value (in the depth map D), i.e. 2b Ud matrices if b is the number of bits on which the depth indices are represented in the depth map D. We note in the sequence Nz the number of Ud matrices, i.e. the number of depth indices d processed.
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]
[0087]
[0088]
[0089]
[0090]
[0091]
[0092]
[0093]
[0094] The method continues with a step E12 of propagation of the light waves emitted by the light sources defined in the different Ud matrices so as to obtain an object wave Q with complex values. The processing unit 8 thus determines the object wave Q as follows: y) where Pz is a light propagation operator between two parallel planes separated by a distance z and z(d) is the depth associated with the depth index d (among the possible depth values in the depth map d). If we denote by zmin and zmax the minimum and maximum depths of the three-dimensional scene S (with respect to the definition plane of the digital hologram H, with equation z=0), with 0 < zmin < zmax, and the depth values d correspond to depths regularly distributed between the depths zmin and zmax, the depth z(d) associated with the depth index d is worth for example: z(d) = [d / (Nz-l)].(zmax - zmin) + zmin in the example described here where the three-dimensional scene S corresponds to positive values of the depth z as already indicated. The propagation operator P- can be applied using a Fourier transform F, for example according to the following formula: PZ{U} U v) = where X is the wavelength of the (monochromatic) light used. In practice, the Fourier transform F can be applied using a fast Fourier transform (or FFT) algorithm. Furthermore, since the Ud matrices each contain a large number of nuisance elements thanks to the E8 selection step, one can (alternatively or in combination) use a sparse Fourier transform, which further reduces the computation time. Alternatively, the propagation operator Pz can be applied using a Rayleigh-Sommerfeld convolution, for example according to the following convolution formula: P; (U1(x,y) = $rff-didn with: 2 , / . being here also the wavelength of the (monochromatic) light used. According to this variant, the application of the propagation operator therefore amounts to determining a sum of spherical waves. Here also, as the matrices Ud each contain a large number of nuisance elements thanks to the selection step E8, convolution (or spherical wave summation) can be performed very quickly.
[0095] The method of figure 3 can then comprise a step E14 of converting the object wave û with complex values into a hologram block Hmn with real, positive and quantized values.
[0096] According to one possible embodiment, this conversion is carried out by the simple application of a conversion operator Q as described in the article "Optimal quantization for amplitude and phase in computer-generated holography" by Zehao He, Xiaomeng Sui, Guofan Jin, Daping Chu, and Liangcai Cao, in Opt. Express 29, 119-133 (2021):
[0097] for any pixel with coordinates (x,y) of the block Hmn: Hm>n(x,y) = Q(O(x,y)).
[0098] According to another possible embodiment, an error diffusion algorithm is further used during the conversion step E14, as described now.
[0099] In this case, step E14 comprises a first sub-step of determining diffusion weight d(r,s).
[0100] It is proposed here that this first sub-step be carried out differently depending on whether the current block is the first block processed (i.e. m=0 and n=0), or a later block (i.e. m^0 or n^0).
[0101] For the processing of the first block Ho>o, the first sub-step comprises:
[0102] - determining a window corresponding to the elements selected in step E8 for the block of pixels Ho>o, that is to say to the elements of the three-dimensional scene S reproduced by at least one ray emitted by the block of pixels H0>0; and
[0103] - the determination of the diffusion weights dOjO(r,s) for the block of pixels H0>0 in ap applying a Fourier transform to the determined window.
[0104] This first sub-step can for example be carried out according to the technique described in the article "Signal window minimum average error algorithm for multi-phase level computer-generated holograms", by M. El Bouz and K. Heggarty, in Optics Communications, vol. 180, n° 1, pages 21 to 28, June 2000, while however limiting itself here to the elements of the three-dimensional scene S reproduced by the pixel block HOjO.
[0105] The determined window is for example a rectangular window (of minimal dimensions) covering (in projection in the plane xOy, that is to say in the plane of equation z=0) the elements selected in step E8 for the block Ho>o.
[0106] For the processing of the other Hm n blocks (with m^O or n^0), the first sub-step comprises:
[0107] - determining a window corresponding to the elements selected in step E8 for the block of pixels Hm>n concerned, that is to say to the elements of the three-dimensional scene S reproduced by at least one ray emitted by the block of pixels Hm>n; and
[0108] - the determination of the diffusion weights dm>n(r,s) for the block of pixels Hm>n concerned depending on the diffusion weights do>o(r,s) previously determined for the block of pixels Ho>o (during the first passage to step E14 with i=0 and j=0) and a phase factor gjf0 corresponding to a translation from the window determined for the block of pixels Ho>o (during the first passage to step E14) to the window determined for the current block Hmn (as indicated in the previous dash). We note below (tb t2) the components of this translation along the axis (Ox) and along the axis (Oy), respectively.
[0109] The determined window is for example a rectangular window (of minimal dimensions) covering (in projection in the plane xOy, that is to say in the plane of equation z=0) the elements selected in step E8 for the current block Hmn.
[0110] Each diffusion weight dmn(r,s) for the relevant block of pixels Hmn can be precisely determined by multiplying the corresponding diffusion weight d0,0(r,s) (previously determined for the block of pixels H0>0) by the phase factor: dm,n (r,s) = do>o(r,s). with / 0 = -2ir(r.ti / Mx + s.t2 / My), where Mx, My represent as already indicated the number of pixels in each block Hmn respectively along the (Ox) axis and along the (Oy) axis.
[0111] Indeed, the aforementioned windows being determined in a similar manner for the different blocks of pixels Hmn, these windows have substantially identical dimensions and it is therefore possible to transform the window determined for the block of pixels Ho,o into the window determined for the block of pixels Hm,n by the aforementioned translation. If, however, the window determined for a particular block Hm,n were notably different from the window determined for the block Ho,o, the diffusion weights relating to this particular block could be determined by means of the method described in the aforementioned article, as for the diffusion weights do,o(r,s) of the block Ht.
[0112] We note in the sequence d(r,s) the diffusion weights determined for the current block of pixels H o,o or Hm n.
[0113] Step E14 then comprises a second conversion sub-step with error diffusion which makes it possible to obtain the values of the pixels of the current block Hmn as a function of the (complex) values of the object wave O and the diffusion weights d(r,s) determined in the first sub-step using a conversion operator (such as the aforementioned conversion operator Q).
[0114] This second sub-step is for example carried out by browsing the current block Hmn (i.e. by taking pixels with variable coordinates (x,y) within the current block Hm>n) and carrying out the following calculations for each pair of coordinates (x,y):
[0115] Hm>n(x,y) = Q(w(x,y))
[0116] where
[0117] y) = y) +^.1(r, 5)4y- r, ys)
[0118] with e(x',y') = Q(x',y') - Hmn(x',y'), the sum relating to the pixels already processed (i.e. on the values r,s such that the pixel with coordinates (xr,ys) has already been processed, the value Hm>n(xr,ys) therefore already being determined), and of course for values of r and s for which the diffusion weight d(r,s) is defined.
[0119] Several possibilities are conceivable in practice for the aforementioned path of the pixels of the current block Hm n, in particular:
[0120] - a unidirectional path: the lines are traversed one after the other and each line is traveled in the same direction;
[0121] - a bidirectional path: the lines are traveled one after the other, and the even lines are traveled in one direction and odd lines in the opposite direction;
[0122] - a random path: the pixels are successively chosen randomly within block Hm n.
[0123] The values Hm>n(x,y) respectively associated with the pixels of the block of pixels Hmn have thus been determined on the basis of the light intensities (here taken from the intensity map I) respectively associated with the elements selected for the current block of pixels Hm>n, here by propagation of the light waves produced by these selected elements to the definition plane and possibly furthermore by means of an error diffusion algorithm using the determined diffusion weights.
[0124] We note that we thus define the pixels of the generated hologram H located within the current block Hm>n, in other words:
[0125] for all x between 0 and Mx-1 and for all y between 0 and My-1, H(x+m.Mx,y+n.My) = Hm>n(x,y).
[0126] In order to move on to the processing of another block of pixels, the method of [Fig.3] continues with a step of incrementing the index m (step El6).
[0127] The method of [Fig.3] then comprises a step E18 of comparing the current index m (after incrementation) with the number Kx.
[0128] If it is determined at step E18 that m < Kx (arrow P), the method continues at step E8 to process the new block Hmn.
[0129] Otherwise (arrow N), all the blocks of the line (along the Ox axis) have been processed and the method moves on to step E20 for processing a new line of blocks.
[0130] In step E20, the index m is reset (reinitialized) to 0 and the index n is incremented.
[0131] The method of [Fig.3] then comprises a step E22 of comparing the current index n (after incrementation) with the number Ky.
[0132] If it is determined at step E22 that n < Ky (arrow P), the method continues at step E8 for processing the new block Hm>n (i.e. in practice the first block H0>n of the new line of blocks).
[0133] Otherwise (arrow N), all the block lines and therefore all the blocks have been processed and the method continues to step E24 where the digital hologram H is used.
[0134] In step E24, the generated digital hologram H is for example displayed by the display device 10. Alternatively, the digital hologram H could be stored in a storage unit (not shown), for example for later use (display).
[0135] [Fig.4] represents the context of a first embodiment that can be envisaged for step E8.
[0136] This first embodiment can be used when a plurality of observation positions are defined in the data received in step E2, i.e. when the aforementioned set comprises a plurality of observation positions POi, PO2.
[0137] In this case, step E8 comprises a first sub-step of analysis of the three-dimensional scene S using a virtual camera in perspective projection, the projection center of which is located at the center of the current block Hm n and the field of view of which is defined by the half-angle 0X along the axis (Ox) and by the half-angle 0y along the axis (Oy),
[0138] with 0X = arctan[X / (2px)] and 0y = arctan[X / (2py)],
[0139] where X is as already indicated the wavelength used, px is the dimension of each pixel along the axis (Ox) and py is the dimension of each pixel along the axis (Oy).
[0140] This first sub-step makes it possible to obtain a 2D-plus-depth rendering, i.e. an intensity map I' and a depth map D'. Each point (x,y) of the intensity map I' having a non-zero intensity value I'(x,y) corresponds to a (luminous) element located at the coordinates (x,y,D'(x,y)) in the three-dimensional scene S.
[0141] Step E8 further comprises here a second sub-step of determining at least one angular range covering the angles formed between the pixels of the current block of pixels Hmn and each of the observation positions POi, PO2.
[0142] In practice, we determine at least one such angular range [^'w, ^ar] (and possibly several angular ranges jans |cp|an (zOx) and at least such an angular range (and possibly several angular ranges ^3”°^) in the plane (zOy).
[0143] If we note as previously U; the observation zone associated with the observation position PO;, z; the third coordinate of the observation position PO; (the observation zone U; being therefore located in the plane of equation z = z;), and if we note for each observation zone U;:
[0144] a mm the minimum distance existing between the observation zone U; and an edge of the block of pixels Hm>n running along the axis (Ox),
[0145] At the maximum distance existing between the observation zone U; and an edge of the block of pixels Hm>n running along the axis (Ox),
[0146] lf1tn the minimum distance existing between the observation zone U; and an edge of the current block of pixels Hmn along the axis (Oy),
[0147] has the maximum distance existing between the observation zone U; and an edge of the current block of pixels Hmn along the axis (Oy),
[0148] we have: ^in „ YY and uy — drcidni | u— drcidni ~ i uy — drctdni i 0™ = arctan(^
[0149] Step E8 then comprises in this case a third sub-step of determining, for each observation position POi, PO2 and using the network formula, ranges of spatial frequencies respectively along the axis (Ox) and along the axis (Oy)) associated with the observation position concerned. For each observation position PO;, the spatial frequency ranges [ U v ' J xj can in fact be determined on the basis of the angular ranges cor respondent respectively determined above for this observation position PO; thanks to the following relations (network formula):
[0150] sin(
[0152] =
[0153] sin(
[0154] Step E8 then comprises a fourth sub-step of selecting points from the intensity map I' and the depth map D' which correspond to the previously defined spatial frequency ranges (and therefore to the previously defined angular ranges).
[0155] A point with coordinates (x,y) in the depth map D' (and in the intensity map I') is selected if there is a pair of spatial frequency ranges yLmaxj ^k / nin associated with an observation position POk which check:
[0156] iix(px. / 't"'",+0.5) < x < qx(px. i'k-max +0.5) and qy(py. yU«!«+0.5) < y < py(py. ^«^+0.5)
[0157] where qx and qy are respectively the resolutions along the (Ox) axis and along the (Oy) axis of the depth map D' (and of the intensity map I'), with here qx = Mx and qy = My.
[0158] The depth map which contains only the elements thus selected (by the fourth sub-step mentioned above) is the depth map D produced by step E8. Similarly, the intensity map which contains only the elements thus selected is the intensity map I produced by step E8.
[0159] [Fig.5] represents the context of a second embodiment that can be envisaged for step E8.
[0160] This second embodiment can be used when a single observation position PO0 is defined in the data received in step E2, i.e. when the aforementioned set comprises a single observation position PO0.
[0161] According to this second embodiment, the selection of step E8 is carried out by analysis of the three-dimensional scene S by means of a virtual camera in perspective projection, positioned according to said observation position PO0, the optical axis of which is perpendicular to the plane of definition of the digital hologram H, and the angular aperture of which depends on at least one angular range covering the angles formed between the pixels of the current block of pixels Hm>n and the observation zone Uo associated with the observation position PO0.
[0162] Precisely, if the observation position PO0 is located in a plane of equation (z = z0) and if we note:
[0163] At the minimum distance existing between the observation zone Uo and a pixel of the block of pixels Hm>n running along the axis (Ox),
[0164] A 'the maximum distance existing between the observation zone Uo and a pixel of the block of pixels Hm>n current along the axis (Ox),
[0165] A y“” the minimum distance existing between the observation zone Uo and a pixel of the block of pixels Hm>n current along the axis (Oy),
[0166] A yWA the maximum distance existing between the observation position Uo and a pixel of the block of pixels Hm>n current along the axis (Oy),
[0167] the angular ranges covering the angles formed between the pixels of the current block of pixels H m>n and the observation position PO are respectively (f1^] in the plane (xOz) and in the plane (yOz), with: 101681 e = arctan(<} «T=aretan(Ç)- = at«an( <j « (' A me. x \ Av L <■0 y
[0169] The angular aperture of the aforementioned virtual camera (used to perform the selection of step E8) can then be _ ff™n in the plane (xOz) and fi = $yax- in the plane (yOz).
[0170] The projection center C of the virtual camera (or position of the virtual camera) is for example located between the definition plane of the digital hologram H and the plane of equation (z=z0) so that the field of vision defined by the virtual camera corresponds to the field of vision of an observer located at the observation position PO.
[0171] The step of analyzing the three-dimensional scene S by means of the aforementioned virtual camera makes it possible to obtain a 2D-plus-depth rendering, which here comprises the intensity map I and the depth map D, which together describe the elements of the three-dimensional scene S selected in step E8.
Claims
Claims
1. Method for generating a digital hologram (H) on the basis of a three-dimensional scene (S), the digital hologram being defined by pixels located in a definition plane, the method comprising the following steps: - reception (E2) of data defining each observation position (POi; PO2; POo) of a set comprising at least one observation position; - partitioning (E4) the pixels into a plurality of pixel blocks (H m,n) i - for at least one pixel block of the plurality of pixel blocks, selection (E8) of elements of the three-dimensional scene whose light contribution to be reproduced by the pixel block concerned is visible from at least one observation zone (Ui; U2;Uo) associated with an observation position of the set, and determination (E10, E12, E14) of values respectively associated with the pixels of the block of pixels concerned on the basis of the light intensities respectively associated with the elements selected for the block of pixels concerned.;
2. Method according to claim 1, comprising, for at least one block of pixels, a step of determining an angular range or several angular ranges covering the angles formed between the pixels of the block of pixels concerned and each observation zone respectively associated with each observation position of the set.
3. Method according to claim 2, in which the elements of the three-dimensional scene selected for this block of pixels are the elements of the three-dimensional scene whose light contribution is reproduced by a ray emitted, from a pixel of the block concerned, in a determined angular range.
4. Method according to claim 2, in which said set comprises a plurality of observation positions, the method comprising, for at least one block of pixels, a step of determining an intensity map by analyzing the three-dimensional scene by means of a virtual camera positioned at the level of the block of pixels concerned and having a predetermined angular aperture, the elements of the three-dimensional scene selected for this block of pixels being the elements whose position in the intensity map corresponds to the angular range determined for this block of pixels.
5. Method according to claim 2, in which the selection step is carried out by analyzing the three-dimensional scene by means of a virtual camera whose angular aperture depends on the determined angular range.
6. A method according to claim 5, wherein said set comprises a single observation position and wherein the virtual camera is positioned according to said observation position.
7. Method according to one of claims 4 to 6, in which the analysis of the three-dimensional scene by means of the virtual camera produces an intensity map and in which said light intensities respectively associated with the selected elements are read in the intensity map.
8. Method according to one of claims 1 to 7, comprising, for a given block of pixels, a step of determining a window corresponding to the elements selected for the given block of pixels.
9. Method according to claim 8, comprising the following steps: - determining diffusion weights for the given block of pixels using the determined window; - determining the values respectively associated with the pixels of the given block of pixels by means of an error diffusion algorithm using the determined diffusion weights.
10. Method according to claim 8 or 9, comprising the following steps carried out for another block of pixels, different from the given block of pixels: - determining another window corresponding to the elements selected for the other block of pixels; - determining other diffusion weights as a function of the diffusion weights determined for the given block of pixels and a phase factor corresponding to a translation from the window determined for the given block of pixels to the other window; - determining the values associated with the pixels of the other block of pixels by means of said error diffusion algorithm using the other diffusion weights.
11. Method according to one of claims 1 to 10, comprising a step of determining the observation position by means of an eye tracking device (4).
12. Method according to one of claims 1 to 11, in which the three-dimensional scene is represented by at least one object whose coordinates are defined in a three-dimensional space.
13. Method according to one of claims 1 to 12, in which the blocks of pixels are rectangular.
14. Electronic device (2) comprising: - a data reception unit (6) defining each observation position of a set comprising at least one observation position; - a processing unit (8) configured to select, for at least one block of pixels of a plurality of blocks of pixels obtained by partitioning pixels defining a digital hologram in a definition plane, elements of a three-dimensional scene whose light contribution to be reproduced by the block of pixels concerned is visible from at least one observation zone associated with an observation position of the set, and to determine values respectively associated with the pixels of the block of pixels concerned on the basis of the light intensities respectively associated with the elements selected for the block of pixels concerned.
15. A system comprising an electronic device according to claim 14 and an eye tracking device (4) configured to determine the observation position.