Abstract:
A method and a device enable the creation of three-dimensional images with more than two perspectives (e.g. pseudo-holographic images), especially to be reproduced with the aid of an autostereoscopic display or an autostereoscopic screen, from fed images having, in particular, only two perspectives, e.g., a left and a right image channel. Also, a related device creates and reproduces three-dimensional images having more than two perspectives, especially in the form of an autostereoscopic multi-user visualization system.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 12/298,020, which is the U.S. national stage of PCT International Patent Application No. PCT/EP2007/003546, filed Apr. 23, 2007, which claims priority to German Patent Application No. 10 2006 019 169.2, filed Apr. 21, 2006. The foregoing applications are incorporated herein by reference. 
    
    
     BACKGROUND 
     The invention is related to a method and a device for the creation of three dimensional images with more than two perspectives (such as pseudo-holographic images), especially for displaying on an autostereoscopic display or an autostereoscopic screen from fed images with, in particular, only two perspectives as, for example, from left and right image channels. The invention is also related to a device for the creation and display of three dimensional images with more than two perspectives, especially with an autostereoscopic multiuser visualization system (multiview system). 
     Autostereoscopic visualization systems will allow one or more viewers looking at an autostereoscopic display or an autostereocopic screen, to view a three dimensional image without visual aids such as red/blue glasses, shutter or polarization glasses. For this purpose for example parallax barrier systems or lenticular systems, which will be attached to a display, are used. But because, as described in  FIG. 10 , one or more viewers B 1 , . . . Bn will be at different angles relative to the perpendicular direction of the display or the screen DA, there must be more than two perspectives generated and presented to the left or right eye in order to allow in all positions S 1  to Sn and all viewers B 1  to Bn respectively a nearly natural three dimensional image to be viewed. Therefore, these systems are called multi-user or multiview systems. 
     One great problem, mainly if the number of perspectives is very high, is that the hardware capacity of the visualization system used and, in particular, the memory capacity required is very large. 
     The purpose of the invention presented here is to describe a method and device for the creation of three dimensional (especially moving) images with more than two perspectives (such as pseudo-holographic images) from fed images with, in particular, only two perspectives as, for example, from left and right image channels, with which a relatively large number of such perspectives can be synthesized with a relatively small amount of memory. 
     Furthermore, a device for the creation and display of three dimensional (mainly moving) images with more than two perspectives, especially in the form of an autostereoscopic multi-viewer visualization system (multiview system), shall be described, which, especially for a comparably large number of displayed perspectives, the requirements for the hardware, mainly the memory, are relatively small and therefore relatively inexpensive. 
     This problem will be solved with a method as described in claim  1  and a device as described in claim  7  or with a multiuser visualization system as described in claim  9 . 
     One advantage of the invention described is that the number of perspectives which have to be generated can be arbitrarily by the user. 
     The sub-claims contain useful extensions of the invention. 
     Additional details, features and advantages of the invention are contained in the following description of exemplary and preferred embodiments. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic block diagram of a multiview system with a device for the creation of images according to the invention; 
         FIG. 2  is a schematic presentation of various correspondences, a right and left occultation respectively, between a left image, a right image and six in-between perspectives; 
         FIGS. 3A and 3B  are a flow chart of a first embodiment according to the invention for the generation of three dimensional images; 
         FIGS. 4A and 4B  are a flow chart of a second embodiment according to the invention for the generation of three dimensional images; 
         FIG. 5  is a schematic presentation of correspondences and a right and left occultation of  FIG. 2  for a first synthesis situation; 
         FIG. 6  is a schematic presentation of correspondences and a right and left occultation of  FIG. 2  for a second synthesis situation; 
         FIG. 7  is a schematic presentation of correspondences and a right and left occultation of  FIG. 2  for a third synthesis situation; 
         FIG. 8  is a schematic presentation of a matrix circuit for controlling every lens of an adapter screen above a pixel or sub pixel of a display; 
         FIG. 9  is a schematic presentation of a display with regions for two dimensional or three dimensional visualization; and 
         FIG. 10  is a schematic diagram of the position and viewing angle of different viewers in several viewing zones of a multiview display. 
     
    
    
     DETAILED DESCRIPTION 
     As previously mentioned, an autostereocopic multi-viewer visualization display DA (Multiview display) or autostereocopic screen is generating according to  FIG. 10  several viewing zones S 1 , . . . Sn, in which a viewer B 1 , . . . Bn can view an optimal three dimensional image. 
     For this purpose a number N (N&gt;2) of perspectives of the image which will be presented, have to be merged (from now on called “merging”) so that the autostereoscopic display based on the installed optics will split those perspectives for every viewer B 1 , . . . Bn, so that every eye of every viewer B 1 , . . . Bn can view a different perspective in every viewing zone S 1 , . . . , Sn and thus generates a three dimensional image impression for every viewer. 
     Consequently, in general a predefined number of in-between perspectives have to be created from two fed image perspectives, meaning a left and a right image, and to be merged so that the visualization system or display can correctly process and display them. 
     The number and position of the viewing zones S 1 , . . . Sn, which will be created depends on the number N of visualized and merged perspectives. The more perspectives which are available, the broader the viewing zones will be and the more the transition zones will be shifted to the left and right border of the viewing area in front of the display DA. 
     If a viewer B 1 , . . . Bn moves in front of the display DA (or the screen) from one viewing zone Sx to a neighboring viewing zone Sx+1, a stripe of fuzziness will be seen to move through the image. 
     It is therefore the aim to have the number N of perspectives as large as possible. But this will cause the problem that, with an increasing number of perspectives, the requirements for the hardware and especially the memory capacity of the underlying visualization system will increase significantly, which, in practice, will limit the ability of the system to generate or display the number of perspectives required. 
     With the invention presented here, a method and device for the creation of three dimensional images with a plurality of merged perspectives from fed images, especially only two fed perspectives, will be described. The invention generates the displayed pixels with an arbitrary number of in-between perspectives in such an efficient way that only those image pixels of an in-between image (or in-between perspective) which are displayed on the multiview display will be synthesized. 
     The image pixels will not be addressed separately, but will be created directly on the display, which means that the complete in-between perspectives are never generated, never exist at any time and therefore do not need to be stored. 
     With the method according to the invention, the viewer has the option to choose an arbitrary number N (N&gt;2) of perspectives which have to be visualized on the display or cinema screen. Furthermore, it is assumed, that only a number M of (fed) perspectives are stored in memory, so that a number N-M of in-between images or in-between perspectives have to be synthesized. 
     To simplify the remainder of the description, the commonly used case in which only two perspectives M, in particular a left and a right fed image, are available in memory (or in a dedicated memory for the left and right image). Of course, the method according to the invention can be applied to more than two fed perspectives (M&gt;2) for the creation of the required number N-M of in-between images or perspectives. In this case, the method will be used for the left-most and right-most fed perspectives, while the in-between fed perspectives will be used as supporting images. 
     The method according to the invention for the creation of the in-between images (or in-between perspectives) covers a correspondence analysis and an in-between images (or in-between perspective) synthesis phase. During the analysis phase for each pixel B(i,j) of the fed left image an attempt is made to find a corresponding right pixel B(i′,j′) (the terms “in-between images” and “in-between perspectives” will be used synonymously). 
     The index i or i′ defines the number of the row (row index) and the index j or j′ defines the column (column index) within each image. To simplify the remainder of the description, it is assumed from now on that i=i′ holds. This is feasible if the images are in normalized stereo form, which can always be achieved through a pre-processing or transformation of the relevant images. 
     If the correspondence B(i,j)→B(i,j′) is known and correct, during the synthesis phase all in-between images (in-between perspectives) can be extracted or synthesized by a virtual camera movement on the stereo basis from the left image to the right image (or vice versa). 
     If
 
 j (.alpha.):=(1−.alpha.)* j +.alpha.* j ′ for 0&lt;=.alpha.&lt;=1,
 
is set, it will be defined:
 
 B ( i,j (.alpha.)):= B ( i,j ) for 0&lt;=.alpha.&lt;=1.
 
     This means, in particular, that
 
 B ( i,j (0))= B ( i,j ) and  B ( i,j (1))= B ( i,j ′)
 
holds, because B(i,j′) is the corresponding pixel of B(i,j).
 
     If .alpha. moves from 0 to 1, then B(i,j) moves on a virtual camera path from B(i,j) to B(i,j′), its corresponding pixel. 
     Provided that N−2 in-between images have to be created (meaning M=2), .alpha.k supporting points with
 
0&lt;.alpha. k&lt; 1 for  k= 1, . . . ,  N− 2,
 
have to be used, where the pixels B(i,j(.alpha.k)) will be combined into one in-between image. Here, preferably .alpha.k:=k/(N−1) will be defined equidistantly.
 
     Now, right occultations are those pixels B(i,j), which only exist in the left image and which are invisible for the right eye. For those pixels there is no correspondence in the right image. During a virtual camera movement from the left image to the right image those pixels have to be removed successively. This will start on the right border of the right occultation. 
     In a similar manner, left occultations are those pixels B(i′,j′), which only exist in the right image and which are invisible for the left eye. For those pixels there is no correspondence in the left image. During a virtual camera movement from the left image to the right image those pixels have to be inserted successively. This will start on the right border of the left occultation. 
       FIG. 1  shows a schematic block diagram of a multiview system with a device  100  according to the invention for the creation of three dimensional images with more than two perspectives. The device  100  is connected via a first input with a left channel  1  for the feed with left (moving or still) images and via a second input with a right channel  2  for the feed with right (moving or still) images, meaning two perspectives of a three dimensional image. A controllable autostereoscopic multiview display  3  is connected via an output with the device  100 . 
     The device  100  essentially includes a first image buffer  10  for at least one left image and a second image buffer  11  for at least one right image, which are connected with the associated first or second input of the device  100 . The images stored in buffer  10  and  11  will be fed to the analysis unit  12  executing the correspondence analysis. The first output of analysis unit  12  is connected with a first buffer  13  for a generated indicator “Occultation(i,j)”, while the second output of the analysis unit  12  is connected with second buffer  14  for a pointer “Whereto(i,j)” as well generated by the analysis unit  12 . 
     The indicator Occultation(i,j) stored in the first buffer  13  will be fed to a first input of an image synthesis unit  15 , while the pointer Whereto(i,j) stored in buffer  14  will be fed to the second input of the image synthesis unit  15 . A third input of the image synthesis unit  15  receives a left image from the first image buffer  10 , while a fourth input receives a right image from a second image buffer  11 . The merged left and right images and the synthesized in-between images or in-between perspectives will be fed through the output of the image synthesis unit  15  to the autostereocopic multiview display  3  for presentation. 
     The device  100  preferably also includes a buffer  31  for a matrix R(i,jr) of perspectives, which, for each subpixel of the connected display  3  depending on its optical properties, describe which perspective (meaning fed (left or right) image or one of the synthesized in-between perspectives) has to be presented by that subpixel. The matrix R(i,j) has either to be computed before starting the display  3  with the methods according to the invention ( FIGS. 3A ,  3 B,  4 A,  4 B) and to be stored in buffer  31 , or, if it is stored in the display, to be downloaded from the display  3  to the buffer  31 , or has to be fed in any other manner to the device  100 . The matrix can be computed in well-known ways for any applicable autostereoscopic display  3 . 
     In the following description of a first embodiment according to the invention as shown in the flow chart described in  FIGS. 3A and 3B  each in-between image represents one of the in-between perspectives. 
     To improve the speed of the synthesis of the in-between images, unused pixels of each in-between perspective will not be generated. The following procedure will be applied: 
     For each pixel/subpixel P(i,l) of the display  3 , based on the previously described matrix, it can be identified from which perspective R(i,l) (0&lt;=R(i,1&lt;=N−1) the pixel to be presented has to be taken. 
     Therefore, it will be defined: 
     For all columns j of the image area and each k=1, . . . , N for which there is a correspondence in the right image, 1:=(1−.alpha.k)*j+.alpha.k*j′ compute and set P(i,l):=B(i,j), if k=R(i,l) is true. 
     For the left and right occultations, for which there is no correspondence B(i,j)→B(i,j′), the procedure is as follows: 
     A right occultation, which is present in the left image and not in the right will be faded out during the virtual camera movement from left to right. In this case, the occultation will move from the right occultation border to the left. The length of the visible occultation stripe in the row is known for each perspective. Furthermore, it is known where this stripe in perspective k will be mapped to. Therefore, a check can be made for all pixels whether k=R(i,l) is true. Only those pixels will be inserted at P(i,l). 
     This will be executed in the same way for the left occultations. 
     Therefore, for each row i of the image the method according to the invention will be executed as described in the flow chart of  FIGS. 3A and 3B : 
     After starting the method (which can be executed on a pixel or subpixel level) in a first step S 1  a pointer j indicating a pixel or subpixel respectively (column index) will be set to 0. 
     After that, with step S 2  a loop for all pixels or subpixels j respectively of a row i, for which the method has to be executed at this moment starts. If according to this check S 2  j is larger than the number of pixels or subpixels of a row respectively the method will continue with step S 3 , which will fill the right occultations. After that, left occultations will be filled in step S 4  and the method finally finished with step S 5  for the current row i and if necessary with “start” for the next row restarted. 
     But if the check in step S 2  returns “no” with step S 6  for the pixel or subpixel j respectively the perspective R(i,j) will be fetched from buffer  31 , which has to be displayed for this pixel or subpixel respectively. 
     But if the check in step S 7  shows perspective R(i,j)=0 the pixel or subpixel respectively will be fetched in step S 8  from the left image. After that, in step S 9  the column index j will be incremented by 1, it will be stepped back to S 2  to repeat this procedure. 
     But if the question according to step S 7  is answered with “no”, it will be checked according to step S 10  whether the perspective R(i,j) is equal to N−1. If this is the case the pixel or subpixel respectively will be fetched from the right image. After that, the column index j will be incremented by 1 according to step S 9 , it will be stepped back to S 2  to repeat this procedure. 
     But if the check in step S 10  is answered with “no” it will be checked in step S 12 , whether the indicator Occultation(i,j)=0 (see below) is. If this is not the case it will be stepped back with step S 9 , which increments the column index j by 1 and the procedure repeated with step S 2 . 
     If the indicator Occultation(i,j) is equal to 0 (meaning that for a pixel in the right image a corresponding pixel in the left image exists) in step S 13  k=0 will be set and with step S 14  it will be checked, if k&gt;N minus 1 is true. If this is true a step back to S 9  will be done, which again increments the column index j by 1, and the process repeated with step S 2 . 
     But if the question of step S 14  is answered with “no”, 1:=(1−αk.j+αk.j′ will be set and with step S 16  is will be checked if k=R(i,l) is. If this is not the case according to step S 18  k will be incremented by 1. 
     But if the question according to step S 16  is answered with “yes” according to step S 17  the next pixel or subpixel with P(i,l):=B(i,j) will be fetched and it will be continued with step S 18 . After step S 18  it will be stepped back to step S 14  and the process repeated with this step S 14 . 
     In a second embodiment according to the invention, again each in-between image will represent one perspective. 
     In this case, it will be computed backwards which perspective and which displacement has to be applied for each display pixel/display subpixel. 
     In detail, the procedure will be as follows: 
     Again it is assumed that the images are available in stereo normalized form, such that each row in the left image corresponds with its associated row in the right image. This again can be achieved by a pre-executed transformation. 
     Furthermore, the columns i shall be fixed. 
     For each pixel B(i,j) in the left image an indicator Occultation(i,j) and a pointer Whereto(i,j) will be generated with the analysis unit  12 . 
     The indicator Occultation(i,j) shows whether there is a corresponding pixel B(i,j′) in the right image for the pixel B(i,j) of the left image, if it is contained in a right occultation or if there is a left occultation in the right image left of this pixel. Based on this the values of Occultation(i,j) will be defined by the analysis unit  12  as follows: [0058] 1, if there is a left occultation left of the pointer Whereto(i,j), 
     Occultation(i,j)=0, if there is a correspondence in the right image, [0060]−1, if the pixel B(i,j) is part of a right occultation. 
     For the pointer Whereto(i,j) it is Whereto(i,j)=j′, if Occultation(i,j)=0 is true, otherwise Whereto(i,j) is undefined. 
     In  FIG. 2 , the values of Occultation(i,j) defined above as well as the different possibilities of a correspondence of the right occultations RV and a left occultation LV are shown for eight perspectives, namely a left image LB, first to sixth in-between images ZB 1 , . . . , ZB 6  and a right image RB. 
     This method according to the invention will be applied to each row i of the image according to the flow chart described in  FIGS. 4A and 4B  (second embodiment of the invention) and executed as follows): 
     After starting the method, in a step S 1  a pointer jr to a subpixel and a pointer jl to a pixel will be set to 0. Furthermore, the pointer jl will be incremented in a step S 1   a  by 1 until the indicator Occultation(i,j) is larger or equal to 0 (a check for this is implied as part of step S 1   a ). 
     When this is the case, a loop starts to run with step S 2  through all subpixels jr of row i (to which the method is currently applied). The pixel (i,jl) is the pixel belonging to the subpixel jr, where the pixel is usually composed of the subpixels R, G, B. 
     If the check in step S 2  indicates jr is larger than the number of subpixels per row, the method will stop for the current row i with step  7  and, if necessary, will be started with “Start” for the next row. Otherwise, according to step S 3  for jr the next perspective R(i,jr), which has to be displayed for subpixel jr will be fetched from buffer  31 . 
     If the check with step S 4  indicates perspective “R(i,j)=0” (“yes”), the subpixel will be fetched according to step S 8  from the left image. Additionally, according to step S 10 , jr will be incremented by 1 and it will then be stepped back to step S 2  to repeat this procedure. 
     But if the check returns “no” in step S 4  (meaning R(i,jr) is not 0), in step S 5  it will be tested if “R(i,jr)=N−1” (N=number of perspectives) is true. If this is the case, the subpixel will be fetched according to step S 9  from the right image. Additionally, according to step S 10 , jr will be incremented by 1 and it will then be stepped back to step S 2  to repeat this procedure. 
     But if the step S 5  returns “no” (meaning R(i,jr) not equal N−1), the core search process will start with step S 6  with defining “above=false” and “below =false”. 
     If the question of step Sll either “above=false” and “below =false” is answered with “yes”, then the subpixel is not yet encapsulated from above or below and the search process has to be continued with steps S 12  to S 17 . But if step S 11  can be answered with “no”, the subpixel is encapsulated and can be fetched according to step S 18  either from the left or right image. For this step four cases have to be distinguished:
     Case 1: j_above-j_below&lt;=1 and Whereto(i,j_above)−Whereto(i,j_below)&lt;=1:   

     In this case there is a unique correspondence and the subpixel can be fetched from the left image. This case is schematically shown in  FIG. 5 . Here, a pixel from the left image has to be selected, which is the result from j_above and j_below in in-between image (in-between perspective) ZB 2 .
     Case 2: j_above-j_below&gt;1 and Whereto(i,j_above)—Whereto(i,j_below)&lt;=1:   

     In this case there is a right occultation and the subpixel can be fetched from the left image. This case is schematically shown in  FIG. 6 .
     Case 3: j_above-j_below&lt;=1 and Whereto(i,j_above)−Whereto(i,j_below)&gt;1:   

     In this case there is a left occultation and the subpixel can be fetched from the right image. This case is schematically shown in  FIG. 7 .
     Case 4: j_above-j_below&gt;1 and Whereto(i,j_above)−Whereto(i,j_below)&gt;1:   

     This case is not feasible in reality, as a right and a left occultation cannot be in the same area at the same time. 
     After that, step S 18  according to  FIG. 4A  and step S 10  jr will be incremented by b 1, stepped back to step S 2  and the process repeated. 
     But if the question according to step S 11  is answered with “yes”, according to step S 12  a new positition jl_PositionNew” will be computed. Furthermore, depending on perspective R(i,jr) it will be computed where the pixel B(i, jl) would be mapped to. 
     If, according to the check in step S 13 , the new position is jl_PositionNew=Pixel(i,jr), then the mapped pixel is found. Then, according to step S 15 , “above=true” and “below=true”, “j_above=jl” and “j_below=jl” will be set and the subpixel will be fetched by answering the question of step S 11  with “no” according to step S 18  and the cases described above. 
     But if the check in step S 13  returns “no” and according to the question of step S 14  the new position is jl_PositionNew&gt;pixel(i,jr)” (“yes”), this pixel is located above pixel(i,jr). Now, according to step S 16 , “above=true” and “j_above=jl” will be set and jl decremented by 1. Furthermore, it will be checked (in the flow chart part of step S 16 ), whether the indicator Occultation(i,j) is larger or equal to 0. If this is not the case, jl will be decremented until it is the case. 
     If the check in step S 14  returns “no”, the new position is below pixel(i,jr). Now according to step S 17  “below=true” and “j_below=jl” will be set and jl incremented by 1. Furthermore, it will be checked (in the flow chart part of step S 17 ), if the indicator Occultation(i,j) is larger or equal to 0. If this is not the case, jl will be incremented until it is the case. 
     After steps S 15 , S 16  and S 17  respectively, a backstep to step S 11  is executed and the loop will be continued with a new check, whether it is “above=false” or “below=false”. 
     Modifications of the above described method can be found by applying a different optimization strategy, for example if the pixel jl is not to be taken from the previous subpixel jr, the pixel jl will be taken instead from the previous row. In some cases, this can eliminate a few steps in finding the optimal pixel. 
     For example, it would be possible to merge the indicator Occultation and the pointer Whereto into one array. In case of a right occultation, it could be set Whereto(i,j):=−1. This indicates that there is no correspondence. A left occultation can be identified when Whereto(i,j_above)−Whereto(i,j_below)&gt;1. 
     With a method according to the invention, a large number N of perspectives can be set, for example N=1024 or 2048, such that there will be completely new potentials for the 3D visualization of images. 
     This revealed that with an increasing number N of perspectives the images become clearer and the transition zones between the viewing zones will become smaller and smaller. 
     It could be thought that the image quality will be reduced, because fewer pixels will be available for each individual perspective. But this is not the case, because, for each eye of a viewer, the number of visible pixels depends on the size of the subpixel and the size and focal length of the lenticular lenses or parallax barriers. More perspectives are visible there. But these are more consistent, because their distance is smaller on the stereo basis. 
     A pseudo-holographic effect results, if the stereo basis between the left and right image is significantly large (for example 80-90 cm). In this case the viewer moves through the different viewing zones for a longer time and has a greater impression of “moving around” the object. 
     The methods described here are applicable for autostereoscopic displays as well as for autostereocopic adapter screens based on lenses or parallax barriers. 
     Furthermore, it is possible to execute the step of a correspondence analysis, not only where the images are presented, but also where the images are captured and to transmit it together with the stereo images using a data compression method (for example MPEG-4) to the location where it will be displayed. 
     Additionally, it is possible that the correspondence analysis will be generated by a transformation of a transmitted depth map. 
     Preferably, the method according to the invention can be executed by a computer program. 
     The implementation of the methods according to the invention is possible for example according to  FIG. 8  with a plurality of lenses L (especially nano lenses in liquid lens technology), placed in front of a pixel (RGB color) or subpixel (only R or G or B-color) of a display, where the lenses L will be controlled by a horizontal and vertical electronic matrix circuit VM and HM respectively, such that only those pixels of an underlying display which are needed for the visualization of the corresponding synthesized in-between images will be activated or created. 
     Because every pixel is individually controllable, certain areas of the display DA can be switched according to  FIG. 9  into 3D mode, while other areas are still in 2D mode. For this purpose, the on and off impulse will be fed row and column sequentially. Only those lenses which receive the horizontal and vertical impulse at the same time will be switched on or off.