Abstract:
A method and apparatus for reducing convergence accommodation conflict. The method includes estimating disparities between images for different lens, analyzing the estimated disparities, selecting a point of convergence, determining the amount of shift relating to the convergence point selected, and performing adjustment to the disparity to maintain a disparity value below a threshold.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims benefit of U.S. provisional patent application Ser. No. 61/507,930, filed Jul. 14, 2011, which is herein incorporated by reference. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    Embodiments of the present invention generally relate to a method and apparatus for auto-convergence for stereoscopic images and video. 
         [0004]    2. Description of the Related Art 
         [0005]    The commercial success of three dimensional movies is generating great interest in stereoscopic three dimensional capture and display technologies. Three dimensional capable TVs, digital cameras, and mobile devices are entering the consumer electronics market, which enable consumers capture and display their own three dimensional content. However, a major challenge to the success of these three dimensional capable devices is the viewing comfort. Consumer three dimensional cameras have fixed camera separation and orientation, and the three dimensional display viewing distance is typically short. Such devices, usually use stereo cameras. Since stereo cameras include more than one lens, usually two, lens separation causes a horizontal offset. The horizontal offset is utilized to create a depth perception. 
         [0006]    The convergence point of human visual system is the point of intersection of the two eye axes. Similarly, the convergence point of a stereoscopic camera system is the intersection of the two axes of the lenses of the cameras. Since there is a distance between the lenses of the two cameras, the same object usually project onto different locations on the camera sensors. The distance in coordinates along the epipolar line is called disparity. At the distance of the convergence point, disparity is zero. Objects closer than the convergence distance have negative disparities, while objects farther than the convergence distance have positive disparities. 
         [0007]    When stereo content is shown on a stereoscopic display, objects with zero disparity will appear to be on the screen. Objects with negative disparity will be popped out from the screen. Object with positive disparity will be pushed behind the screen. Therefore, the convergence point is very important in determining the perceived depth of the different objects in the stereo content. Large negative disparity and large positive disparity, both, cause our brain to experience difficulty in fusing the left and the right views to render a three dimensional scene. Such difficulty creates eye strain and headaches. Unfortunately, stereoscopic cameras and displays, by themselves, have no sense of the amount of disparity for eye comfort. Therefore, an auto convergence algorithm is needed by these devices to help adjust the disparities in the three dimensional content. 
         [0008]    Without auto convergence, three dimensional contents, which are captured from stereo cameras with fixed separation, are usually difficult for our eyes to look at because of the pronounced vergence-accommodation conflict, i.e., when displayed on a hand-held device. It is also undesirable and impractical for consumers to manually adjust convergence for all their three dimensional videos and images. 
         [0009]    Hence, a bottleneck for the success of consumer three dimensional cameras is the viewing comfort. Consumer three dimensional cameras have fixed camera separation, and the three dimensional display viewing distance is typically short. For these reasons, the vergence-accommodation conflict is particularly pronounced, which causes discomfort and eye fatigue. Therefore, a Stereo Auto Convergence (SAC) algorithm is needed to reduce the vergence-accommodation conflict on the three dimensional display by adjusting the depth of the three dimensional scene automatically. 
       SUMMARY OF THE INVENTION 
       [0010]    Embodiments of the present invention relate to a method and apparatus for reducing convergence accommodation conflict. The method includes estimating disparities between images for different lens, analyzing the estimated disparities, selecting a point of convergence, determining the amount of shift relating to the convergence point selected, and performing adjustment to the disparity to maintain a disparity value below a threshold. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]    So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments. 
           [0012]      FIG. 1  is an embodiment depicting disparities estimation blocks; 
           [0013]      FIG. 2  is an embodiment depicting effects of the median filtering followed by the temporal filtering; 
           [0014]      FIG. 3  is an embodiment depicting auto convergence center mode; 
           [0015]      FIG. 4  is an embodiment depicting auto convergence frame mode; and 
           [0016]      FIG. 5  is a flow diagram depicting an embodiment of a method for reducing the vergence-accommodation conflict. 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    Described herein are a method and an apparatus that remedy the effects caused by the disparity of the images/videos of a stereoscopic device. The method and the apparatus automatically determine the amount of horizontal shift needed for adjusting stereoscopic image/video pairs in order to achieve comfortable three dimensional viewing experience. 
         [0018]    The disparities are estimated between the left and the right views available from a stereo camera. Based on the disparities, the different strategies are utilized to shift the two views horizontally. Such a shift allows the objects in the scene to achieve desirable depth when viewed by observers. As a result, the automatic determination of the horizontal shift provides for a stability method and a quick reaction to changes in a scene. 
         [0019]    Such a method/apparatus produces pleasant stereo three dimensional effects. It is fast in response to scene change, while stable to small disturbances from unwanted movement, such as, hand jittering. It is efficient and easily implemented in real-time. 
         [0020]    In one embodiment, the goal is to provide a high quality three dimensional viewing experience. In one embodiment, scene changes are responded to quickly and method/apparatus is stable and robust to unwanted movement and disturbances, such as, hand jittering. The maximal and minimal disparities of a scene are checked and the depth is reduced as needed to make sure our eyes can comfortable fuse the amount of depth in the content. Ideally, such a solution is efficient. 
         [0021]    The left and the right images/videos captured by a stereo camera may be utilized as input. The amount of disparity change is computed and needed to adjust the multiple views, i.e., two, in order to render desired a three dimensional effect. The module, after the auto convergence module, will then apply the amount of disparity change to the views by shifting them horizontally, either towards each other, or farther away from each other. In one embodiment, the method includes: disparity estimation, disparity filtering, determining convergence point, disparity safety check, and stabilization of disparity change. 
         [0022]    After estimating the disparities between the left and right views, we apply temporal median filtering is applied utilizing equation (1) to clean up and stabilize the estimated disparities for blocks in a frame, i.e. all blocks, as shown in  FIG. 1 .  FIG. 1  is an embodiment depicting disparities estimation blocks. In  FIG. 1 , Each frame is divided into K×L number of blocks. Disparities between the left and the right view are estimated for these blocks only to save computation. In our implementation, K=3 and L=3. 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       Disp 
                       MF 
                     
                     = 
                     
                       
                         
                           Disp 
                           _ 
                         
                         
                           i 
                            
                           
                               
                           
                            
                           n 
                         
                       
                        
                       
                         ( 
                         
                           ⌊ 
                           
                             N 
                             2 
                           
                           ⌋ 
                         
                         ) 
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where  Disp   in  is the sorted disparity in ascending order from the past N frames, └•┘ is a floor operator or ceiling operation, and N is the length of the disparity history buffer, i.e. N may be around 15. 
         [0023]    Hence, if convergence point keeps shifting, it can be very uncomfortable to the eye. Therefore, an N frame observation time is imposed on large disparity change, i.e., if ΔDisp is greater than a threshold DisparityUpdateThreshold, we only update ΔDisp_out when N consecutive frames with ΔDisp greater than DisparityUpdateThreshold are observed. When ΔDisp is smaller than DisparityUpdateThreshold, we only continue to update ΔDisp_out for K frames, and stop updating ΔDisp_out afterwards until the next time ΔDisp is greater than DisparityUpdateThreshold AND that the N frame observation time is satisfied. In one embodiment, N is set to 3 and K is set to 10. 
         [0024]    Median filtering is applied to the blocks, which maybe applied to all blocks independently in the temporal direction. After median filtering, temporal smoothing is applied to the disparities to make the disparity change smoother, as shown in equation (2). 
         [0000]      Disp TF ( n )=(1−α)·Disp TF ( n− 1)+α·Disp MF ( n ),   (2)
 
         [0000]    where Disp TF  is the temporal filtered disparity, α is the strength of the filter which controls how fast the result converges to Disp MF , and n is frame index. 
         [0025]      FIG. 2  is an embodiment depicting the effect of the median filtering followed by the temporal filtering. In  FIG. 2 , a comparison of the original disparity estimates (top), the original disparities after medium filtering (middle), and the medium filtered disparities after further temporal smoothing (bottom). In  FIG. 2 , the top plot in  FIG. 2  shows the original disparity values from the center block (block  5 ) for the past 240 frames. The spikes are erroneous disparity estimates. The center plot in  FIG. 2  shows the disparity for the center block after rank order filtering, where the incorrect outliners are eliminated. The bottom plot shows the disparity after further temporal smoothing. The resultant disparity is much more stable and smooth compared to the original disparity values. 
         [0026]    The convergence point is usually the location in the frame whose disparity will be set to zero after auto convergence. The disparity of the convergence point tells the amount of disparity change needed in order to converge at this point. There are several modes of convergence in determining the convergence point: center mode, frame mode, and touch mode. These different modes can be selected by the user through the camera/display manual. 
         [0027]      FIG. 3  is an embodiment depicting auto convergence center mode. In Center Mode, the auto convergence algorithm converges at the center block, as shown in  FIG. 3 . Assuming the disparity values of the 9 blocks are Disp i , i=1, 2, . . . , 9, disparity of the center block is Disp 5 , the amount of disparity change that would put center block on the screen (i.e., zero disparity) is given in equation (3). If the center block disparity is invalid, disparity change is set to zero. 
         [0000]    
       
         
           
             
               
                 
                   
                     Δ 
                      
                     
                         
                     
                      
                     Disp 
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               
                                 - 
                                 
                                   Disp 
                                   5 
                                 
                               
                               , 
                             
                           
                           
                             
                               
                                 I 
                                  
                                 
                                   ( 
                                   5 
                                   ) 
                                 
                               
                               = 
                               1 
                             
                           
                         
                         
                           
                             
                               0 
                               , 
                             
                           
                           
                             
                               
                                 I 
                                  
                                 
                                   ( 
                                   5 
                                   ) 
                                 
                               
                               = 
                               0 
                             
                           
                         
                       
                       , 
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where I/(k) is validity indicator function. I(k) is 1 if the disparity of block k is valid, and 0 if invalid, k=1,2, . . . 9. 
         [0028]      FIG. 4  is an embodiment depicting auto convergence frame mode. In frame mode, the auto convergence algorithm converges on the surrounding blocks, i.e., excluding the center block, shown in  FIG. 4 . To make the disparity change stable, the largest disparity and the smallest disparity are excluded from determining the target disparity. Moreover, the disparities of the rest of the non-center blocks are averaged to get final target disparity value. The amount of disparity change is computed according to equations (4)-(5). 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         Disp 
                         target 
                       
                       = 
                       
                         
                           
                             ∑ 
                             
                               i 
                               ∈ 
                               Φ 
                             
                           
                            
                           
                             Disp 
                             i 
                           
                         
                         
                           
                             ∑ 
                             
                               i 
                               ∈ 
                               Φ 
                             
                           
                            
                           
                             I 
                              
                             
                               ( 
                               
                                 Disp 
                                 i 
                               
                               ) 
                             
                           
                         
                       
                     
                     , 
                     where 
                   
                    
                   
                     
 
                   
                    
                   
                     Φ 
                     = 
                     
                       { 
                       
                         
                           i 
                           | 
                           
                             i 
                             ≠ 
                             5 
                           
                         
                         , 
                         
                           i 
                           ≠ 
                           
                             
                               
                                 arg 
                                  
                                 
                                     
                                 
                                  
                                 max 
                               
                               k 
                             
                              
                             
                               ( 
                               
                                 Disp 
                                 k 
                               
                               ) 
                             
                           
                         
                         , 
                         
                           
                             and 
                              
                             
                                 
                             
                              
                             i 
                           
                           ≠ 
                           
                             
                               
                                 arg 
                                  
                                 
                                     
                                 
                                  
                                 min 
                               
                               k 
                             
                              
                             
                               ( 
                               
                                 Disp 
                                 k 
                               
                               ) 
                             
                           
                         
                       
                       } 
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
             
               
                 
                   
                     Δ 
                      
                     
                         
                     
                      
                     Disp 
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               
                                 - 
                                 
                                   Disp 
                                   targe 
                                 
                               
                               , 
                             
                           
                           
                             
                               
                                 ∑ 
                                 
                                   I 
                                    
                                   
                                     ( 
                                     Φ 
                                     ) 
                                   
                                 
                               
                               ≥ 
                               2 
                             
                           
                         
                         
                           
                             
                               0 
                               , 
                             
                           
                           
                             otherwise 
                           
                         
                       
                       , 
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
         [0029]    In this mode, the user selects the region for convergence by touch selecting a position on the display. The coordinates of the selected convergence point is then converted into the corresponding coordinates in which the auto convergence algorithm is running Next, the location is mapped to one of the 9 blocks. Finally, disparity change is determined by (6): 
         [0000]    
       
         
           
             
               
                 
                   
                     Δ 
                      
                     
                         
                     
                      
                     Disp 
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               
                                 - 
                                 
                                   Disp 
                                   T 
                                 
                               
                               , 
                             
                           
                           
                             
                               
                                 I 
                                  
                                 
                                   ( 
                                   T 
                                   ) 
                                 
                               
                               = 
                               1 
                             
                           
                         
                         
                           
                             
                               0 
                               , 
                             
                           
                           
                             otherwise 
                           
                         
                       
                       , 
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where Disp T  is the disparity of the block touch selected by the user. 
         [0030]    To ensure a comfortable three dimensional viewing experience for the user, we check what would be the maximal disparity and the minimal disparity in the frame after applying the amount of disparity change determined in Sec. II. Disparity change ΔDisp is then adjusted according to equations (7) and (8): 
         [0000]      If: 
         [0000]      (ΔDisp+min{Disp i })&lt;minNegDisparity, ΔDisp←minPosDisparity−min{Disp i }, i=1,2, . . . ,9   (7)
 
         [0000]      If 
         [0000]      (ΔDisp+max{Disp i })&gt;maxPosDisparity, ΔDisp←maxPosDisparity−max{Disp i   }, i= 1,2, . . . ,9   (8),
 
         [0000]    where minNegDisparity and maxPosDisparity are the respective minimal and maximal disparities allowed to ensure a comfortable three dimensional viewing experience. These values should be adjusted according to the display resolution and viewing distance. min{•} is the operation of finding minimum and max {•} is the operation of finding maximum values, respectively. 
         [0031]    An IIR filter is used to smooth out the final output disparity change ΔDisp_out, as follows: 
         [0000]      ΔDisp_out( n )=β·ΔDisp_out( n− 1)+(1−β)·ΔDisp( n ),   (9)
 
         [0000]    where n is the temporal frame index and (1−β) is the disparity change update rate. 
         [0032]    To make the auto convergence algorithm responsive to scene change which is usually associated with large ΔDisp, we make β adaptable to ΔDisp as shown in (10)-(11). The smaller β is, the faster ΔDisp_out(n) converges to ΔDisp(n). 
         [0000]    
       
         
           
             
               
                 
                   β 
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               
                                 
                                   θ 
                                   - 
                                   
                                     λ 
                                     * 
                                     Δ 
                                      
                                     
                                         
                                     
                                      
                                     Disp 
                                   
                                 
                                 256 
                               
                               , 
                             
                           
                           
                             
                               
                                 if 
                                  
                                 
                                     
                                 
                                  
                                 
                                   ( 
                                   
                                     θ 
                                     - 
                                     
                                       λ 
                                       * 
                                       Δ 
                                        
                                       
                                           
                                       
                                        
                                       Disp 
                                     
                                   
                                   ) 
                                 
                               
                               ≥ 
                               128 
                             
                           
                         
                         
                           
                             
                               0.5 
                               , 
                             
                           
                           
                             otherwise 
                           
                         
                       
                       , 
                     
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
             
               
                 
                   λ 
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               2 
                               , 
                             
                           
                           
                             
                               
                                 if 
                                  
                                 
                                     
                                 
                                  
                                 
                                   ( 
                                   
                                     1500 
                                     M 
                                   
                                   ) 
                                 
                               
                               &lt; 
                               2 
                             
                           
                         
                         
                           
                             
                               4 
                               , 
                             
                           
                           
                             
                               
                                 if 
                                  
                                 
                                     
                                 
                                  
                                 
                                   ( 
                                   
                                     1500 
                                     M 
                                   
                                   ) 
                                 
                               
                               &gt; 
                               4 
                             
                           
                         
                         
                           
                             
                               
                                 ( 
                                 
                                   1500 
                                   M 
                                 
                                 ) 
                               
                               , 
                             
                           
                           
                             otherwise 
                           
                         
                       
                       , 
                     
                   
                 
               
               
                 
                   ( 
                   11 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where θ=203 and M is the width of the frame size 
         [0033]    Hence, by adjusting the depth of the three dimensional scene automatically, Stereo Auto Convergence (SAC) maybe utilized for three dimensional devices for reducing the vergence-accommodation conflict on the three dimensional display. Such a method and apparatus processes stereo video/images in real-time and shifts each stereo frame horizontally by an appropriate amount in order to converge on a chosen object in that frame. 
         [0034]      FIG. 5  is a flow diagram depicting an embodiment of a method  500  for reducing the vergence-accommodation conflict. The method starts at step  502  and proceeds to step  504 . At step  504 , the method  500  estimates disparities between images from different lens/cameras using correlations of the horizontal projections of the frame, i.e. the left and right image pairs using correlations of the horizontal projections of the frame. At step  506 , the method  500  analyzes the estimated disparities. At step  508 , the method  500  selects a point of convergence according to a center-convergence or surround-convergence strategy. 
         [0035]    At step  510 , the method  500  determines the amount of shift, i.e. the current and the target disparities of the chosen convergence point determine how much horizontal shift is needed. At step  512 , the method  500  performs disparity safety check to determine whether or not the maximum and minimum disparity limits have been exceeded after auto convergence. At step  514 , the method  500  determines if the limits have been exceeded. At step  514 , if the limits have been exceeded, further adjustments are made to satisfy the safety limits. Otherwise, the method proceeds to step  516 , wherein the limits are not exceeded. At step  516 , the method  500  performs convergence by shifting the frames accordingly. The method ends at step  518 . 
         [0036]    In one embodiment, the method and apparatus utilizing Stereo Auto Convergence (SAC) algorithm are utilized for consumer three dimensional mobile cameras for reducing the vergence-accommodation conflict on the three dimensional display. The reduction is done by adjusting the depth of the three dimensional scene, in some cases automatically. The algorithm may process stereo video in real-time and may shift video frame, i.e. horizontally, by an appropriate amount to converge on a chosen object in that frame. After auto-convergence, stereo video is much more pleasant to view on a three dimensional display. 
         [0037]    While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.