# Patent

## Title
Method for generating an HDR image of a scene based on a tradeoff between brightness distribution and motion

## Abstract

The present invention relates in general to a method of high dynamic range (HDR) digital imaging and determining and setting exposure parameters for detection of image data by an imaging device, such as a digital camera, to produce a high dynamic range (HDR) image of a scene. The method includes setting an exposure (Ei+1) for a next frame (fi+1) as a function of the current exposure (Ei), of a first brightness distribution (Hfulli) of colors of pixels of the current frame (fi) and of a second brightness distribution (Hmotioni) of colors of those pixels weighted by the motion of those pixels, such that motion is evaluated for those pixels in comparison with a previous frame (fi), capturing the next frame (fi+1) under the set exposure (Ei+1) and merging the next frame (fi+1) with at least the current frame (fi) into an HDR image.

## Background
This application claims the benefit, under 35 U.S.C. §119 of European Patent Application No. 15305054.7, filed Jan. 19, 2015.
TECHNICAL FIELD
The present invention relates in general to high dynamic range (HDR) digital imaging and in particular to determining and setting exposure parameters for detection of image data by an imaging device, such as a digital camera, to produce a high dynamic range (HDR) image of a scene.
BACKGROUND ART
Dynamic range is the ratio between the largest and smallest possible signals a sensor or an actuator can generate. As used herein, the term “dynamic range” refers to the dynamic range of an image capture device, such as a digital camera.
To capture HDR images of a scene, multiple frames of this scene are generally captured by a HDR image capture device under varying exposures. In a traditional setup of this device, the exposures are generally spaced such as to cover the full distribution of illumination in the scene. Such a process is known as “exposure bracketing”. Modern cameras allow the capture of 3 to 9 exposure brackets, which may be spaced 1⁄3 f-stop to 3 f-stops apart, where 1 f-stop is one logarithmic unit. F-stop is the ratio of the focal length of the camera lens to the diameter of the entrance pupil of this lens. To create an HDR image from these frames having different exposures, the sequence of exposures is merged by combining in a manner known per se the well exposed parts of each exposure. In general, exposures are scaled according to their exposure time and each pixel of each frame receives a weight factor depending on its light intensity—pixels closer to the middle of the range receive higher weight as they are more likely to depict useful information. See for instance: Pradeep Sen, Nima Khademi Kalantari, Maziar Yaesoubi, Soheil Darabi, Dan B. Goldman, and Eli Shechtman. Robust patch-based HDR reconstruction of dynamic scenes. ACM Transactions on Graphics, 31(6): 203:1-203:11, 2012.
Typically, exposures of the different frames used to build an HDR image are evenly spaced. Because of the even spacing of the exposures, these solutions have a number of weaknesses. First, too many exposures may be captured, each replicating a lot of the content of adjacent exposures. Second, if exposures are spaced further away, the resulting HDR image may suffer from too much noise in dark areas.
In the article entitled “Metering for exposure stacks”, published in 2012 by Orazio Gallo et al. in Computer Graphics Forum, volume 31, pages 479-488 (Wiley Online Library), before capturing the set of exposures used to build an HDR image, an algorithm estimates the HDR histogram of the scene using low resolution exposures. Based on this histogram, all combinations of exposures are tested to decide which is optimal for the scene to HDR capture. To guide the selection and placement of exposures, noise characteristics are also taken into account so that the final selection minimizes noise. Then the series of exposures is captured with these settings. Since this approach is designed for capturing a single HDR image it has the following disadvantages:
No motion is considered;
It is not practical for video as it requires the full HDR histogram to be built. This would cause too many lost frames and therefore the final result would be low frame rate.
The same conclusions apply to the document U.S. Pat. No. 7,382,931 and U.S. Pat. No. 8,582,001.
When applying such a HDR process to video capture, alternating frames are captured successively using different exposure settings: such a process is called “temporal bracketing”. But, as some objects in the scene may move during the capture of the successive exposures used to build each HDR image of the video (or the camera may move) and as these different exposures capture the scene at different times, the merging of these exposures may create motion artefacts. Moreover, as the frequency of HDR images is a division of the frame frequency allowed by the video image capture device, this HDR frequency may be too low to avoid motion blurring.
Therefore, there is a need for a tradeoff between high dynamic range and sharp motion capture.
SUMMARY OF INVENTION
An object of the invention is such a tradeoff.
A subject of the invention is a method for generating an HDR image of a scene, wherein a current frame imaging said scene has been captured under a current exposure and a previous frame imaging said scene has been captured before said current frame, said method comprising:
setting an exposure for a next frame as a function of said current exposure, of a first brightness distribution of colors of pixels of said current frame and of a second brightness distribution of colors of these pixels weighted by the motion of these pixels, wherein said motion is evaluated for these pixels in comparison with said previous frame,
capturing said next frame under said set exposure,
merging said next frame with at least said current frame into an HDR image.
Each of said frames, i.e. previous, current and next frames, images said scene at different instants. These previous, current and next frames may be frames that are captured successively, i.e. with no other frame(s) between them, or may be frames that are not captured successively, i.e. with other frame(s) between them.
Said motion region may concern different parts of said current frame that are not joined together. The evaluation of this motion for these pixels may also take into account other parameters in complement to the comparison with the previous frame.
In order to determine on the fly the optimal exposure settings of the different frames to be merged to get HDR images of a scene, the proposed image/frame capture method considers advantageously both the dynamic range of this scene and motion in this scene. The method dynamically changes the exposure from frame to frame, not only in function of the distribution of brightness values in the scene as in the prior art, but also in function of motion detected in this scene. This method makes advantageously use of local and global motion data together with the luminance histogram information to decide how many exposures are possible for a given scene without creating motion artefacts.
Instead of using predefined parameters to define exposures of successive frames used to generate an HDR image, the method defines an exposure for a next frame immediately after capturing a current frame.
As a secondary benefit, the method does not reduce the frame rate since the number of HDR images generated in a sequence will be almost the same as the number of frames used for the generation of these HDR images. For instance, if the scene has two distinct areas with very different brightness levels, the method will align exposures with the each of these levels but will space out exposures further so that overlap between them is minimized or removed, depending also on which merging algorithm is applied for the post-processing. Likewise, if a shaded object is moving in front of a bright background (or vice versa), the exposures will be spaced around the intensity level of the moving object so that its motion can be adequately captured. In the bright background areas (or vice versa), the method will rely on the more spatially distant frames, where the motion in dark (bright) areas was not strong and allowed to capture the dynamic range of the full scene. Thus while giving the priority to the region with motion, the method may advantageously reconstruct for each generated LDR image the full scene range if in one of neighboring frames the motion decreased. If not, the method still expands the range in comparison with a single LDR image.
Preferably, said motion is null for at least one pixel of the current frame. It means that this frame comprises actually a non-motion region. More generally, it means that the evaluation of motion for pixels of the current frame in comparison with corresponding pixels in the previous frame leads to different values of motion, notably of motion amplitude, including notably zero.
Preferably, said exposure for the next frame is set as a function also of a preferred direction of exposure change for said current frame.
Preferably, said method comprises the determination of a preferred direction of exposure change for a frame following the next frame.
Preferably, said setting of an exposure for the next frame comprises an estimation of an initial exposure based on said first brightness distribution but not based on said second brightness distribution, an estimation of an adjusted exposure based on said second brightness distribution, and a final estimation of said exposure for the next frame adapted to choose between said initial exposure and said adjusted exposure as a value for said exposure for the next frame.
A subject of the invention is also an HDR image capture device comprising a frame sensor configured to capture successive frames imaging a scene, notably to capture a current frame under a current exposure and a previous frame, and a processor configured to:
set an exposure for a next frame as a function of said current exposure, of a first brightness distribution of colors of pixels of said current frame and of a second brightness distribution of colors of those pixels weighted by the motion of those pixels, wherein said motion is evaluated for those pixels in comparison with said previous frame,
trigger the capture of said next frame under said set exposure by said frame sensor,
merge said next frame with at least said current frame into an HDR image.



BRIEF DESCRIPTION OF DRAWINGS
The invention will be more clearly understood on reading the description which follows, given by way of non-limiting example and with reference to the appended figures in which:
FIG. 1 is a simplified block diagram of a video image capture device according to a main embodiment of the invention;
FIG. 2 is a diagram illustrating a method for generating an HDR image of a scene using the video image capture device of FIG. 1, according to a main embodiment of the invention;
FIG. 3 is a decision tree used in this main embodiment, when the direction of exposure change for the next frame is “up”, to implement the step of final estimation of exposure for this next frame and the step of determination of direction of exposure change for the following frame;
FIG. 4 is a decision tree used in this main embodiment, when the direction of exposure change for the next frame is “down”, to implement the step of final estimation of exposure for this next frame and the step of determination of direction of exposure change for the following frame;
FIG. 5 illustrates an histogram of brightness values Z in a current frame fi, of an iteration of the method illustrated on FIG. 2 according to a main embodiment;
FIG. 6 illustrates the same histogram of brightness values Z as FIG. 5, with a cumulative histogram in dotted line.



DESCRIPTION OF EMBODIMENTS
It will be appreciated by those skilled in the art that flow charts, diagrams, and the like presented herein represent conceptual views of illustrative circuitry embodying the invention. They may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
According to a main embodiment of the invention, FIG. 1 depicts a simplified block diagram of a video image capture device, and more particularly a digital video camera. Digital video camera 100 includes a frame sensor 110. Frame sensor 110 may relate to a combination of an optical lens and light detection circuitry (e.g., CMOS integrated circuit, etc.) configured to capture an image or a frame of a scene. This frame sensor 110 is characterized in a manner known per se by a camera response function (“CRF”), which takes brightness value and returns brightness value. This CRF can be thought of as an inverse gamma. Its role is to linearize the image against the non-linearity of the sensor.
Image data detected by frame sensor 110 may be provided to processor 120 as captured frame data via a bus. Captured frame data includes color data related to the different pixels of a frame.
Processor 120 may be implemented using one of an integrated circuit microprocessor, microcontroller, digital signal processor and processor in general. Processor 120 may be configured to process received frame data based on, for example, specific image processing algorithms stored in memory 130 in the form of processor-executable instructions. Processor 120 is further configured to provide exposure values to frame sensor 110 by way of a bus, such as to allow this frame sensor 110 to capture frames under such exposure values.
Processed data such as HDR image data generated by processor 120 may be stored in memory 130 and/or provided to display 140 for viewing. It should be appreciated that memory 130 may relate to any combination of different memory storage devices, such as a hard drive, random access memory (RAM), read only memory (ROM), flash memory, or any other type of volatile and/or nonvolatile memory. It should further be appreciated that memory 130 may be implemented as multiple or discrete memories for storing processed image data, as well as the processor-executable instructions for processing the captured image data. Further, memory 130 may include to removable memory, such as flash memory, for storage of image data.
Display 140 may relate to a liquid crystal display (LCD) incorporated into digital camera 100 for display of captured image data, and HDR image data. Alternatively, it should be appreciated that an external display device may be coupled to digital camera 100 for display and/or output of HDR image data. Although FIG. 1 has been described above with respect to a digital camera, it should be appreciated that the device may relate to other devices, such as imaging devices in general.
Although the video image capture device of FIG. 1 has been described as a digital video camera, it should also be appreciated that this device may relate to, or be included in, other devices, such as a mobile communication device and portable communication devices in general.
Referring now to FIG. 2, a non-limiting embodiment of a method is depicted to generate at least one HDR image of a scene in a video sequence generated by the video image capture device of FIG. 1. As used herein, a “scene” may relate the area a user of this device desires to capture and may include one or more objects illuminated under various levels of illumination, wherein one or more of these objects may move during the capture of successive frames by the device. As will be discussed in more detail below, determination of the illumination range and of movements of these objects can provide one or more exposure parameters for capturing the successive frames.
In the description below, the term “over-exposed pixels” concern pixels of a captured frame for which the color data associated with those pixels correspond to a value superior to a predetermined over-exposed color data threshold thigh. When this over-exposed threshold is the maximum for the color data, the color is considered as saturated. Generally, this maximum over-exposed color data threshold is inferior to this maximum limit. Such an over-exposed threshold can be defined in each color channel R, G and B used to represent a color and R, G, and B are then considered as color data. In another example, this over-exposed color data threshold is defined as an over-exposed luminance threshold and the luminance L is computed as a weighted sum of the values of R, G and B. Still in another example that is more performance sensitive (e.g. mobile phone), we would use the green color channel as a ‘proxy’ for luminance. Similarly, the term “under-exposed pixels” concern pixels of a captured frame for which the color data associated with those pixels correspond to a value inferior to a predetermined under-exposed color data threshold tlow. Generally, this under-exposed color data threshold is superior to zero, although it may be equal to zero.
To initiate the method according to this non limiting embodiment, using the frame sensor 110, a first frame f0 is captured under the exposure E0 and a second frame f1 is captured under the exposure E1. The exposures E0 and E1 are set to different values using any known auto-exposure algorithm adapted to generate a first HDR image of the scene from the merging of these two initiating frames. As over-exposure is visually worse than under-exposure, the direction in which the exposure time for the second frame diri+1=1 is preferably going to change is preferably set to “down” (i.e. E1<E0), although it could be set to “up” (i.e. E1>E0) as well. This direction determines if the frame fi+1=1 is captured with a longer (“up”) or shorter (“down”) exposure than the current frame. We compute the direction diri+2=2 in which the exposure time for the third frame fi+2=2 is preferably going to change based on the characteristics of the first and second frames f0 and f1, using notably the decision trees shown on FIGS. 3 and 4. Captured first and second frames f0, f1 with their color data and values of their exposures E1, E2 and of the preferred direction of exposure change diri+2 for the third frame f2 are then transferred for storage to the memory 130 and for processing as described below to the processor 120.
For the first iteration of the processing of the two frames below in which i=1, the second frame fi=1 is named “current frame”, the first frame fi−1=0 “previous frame”, the third frame fi+1=2 “next frame”, and a fourth frame fi+2=3 following the “next” frame is named “following frame”. Steps 1 to 6 are implemented by the processor 120. Then step 6 is implemented by the sensor 110 to capture the “next frame” fi+1 under exposure Ei+1 computed from steps 1 to 6.
After this first iteration, a second iteration is launched with i=2. The frame fi=2 becomes the “current frame”, fi−1=1 the “previous frame”, fi+1=3 the “next frame” and fi+2=4 the “following frame”, for another iteration of steps 1 to 6, allowing the capture of another “next frame” under exposure computed again from steps 1 to 6. And so on with increased values of i up to the end of the capture of a sequence of frames from which HDR images of the scene can then be generated as described below.
We will now describe the different steps of each of these iterations. The order of presentation does not necessarily represent of the order of performing these steps.
Step 1—Brightness Histogram Computation for the Current Frame fi, not-Taking into Account the Motion:
The brightness histogram Hfulli is computed in a manner known per se from the brightness values of the colors of all pixels of the current frame fi, i.e. of the last frame which has been captured. This computation does not take into account the motion of pixels.
Step 2—Computation of the Motion Field Mi for the Current Frame fi and, According to a First Variant, Determination of the Motion Region MRi of the Current Frame fi:
From a motion field computed in manner known per se from a movement comparison between the current frame fi and the previous frame fi−1, a motion amplitude map Mi is provided having the same size as the current frame fi, where each pixel of this map Mi has a motion amplitude value. The motion amplitude of a pixel denotes the distance that this pixel travels from the previous frame fi−1 to the current frame fi. The motion amplitude values are preferably normalized between 0 (no motion) and 1 (maximum motion for the current frame). This motion field is computed for instance using the motion estimation method disclosed in the article entitled “a real-time multi-dsp motion estimator for mpeg-4 h. 264 avc high definition video encoding”, by Fabrice Urban et al., published in 2009 in the Journal of Real-Time Image Processing, 4(1), pages 23-31.
In a first variant, having fixed a motion amplitude threshold superior to zero, all pixels of this motion amplitude map Mi having a motion amplitude value superior to this threshold form a motion region MRi in the current frame fi. A second variant without motion amplitude threshold is presented in step 3 below.
Step 3—Brightness Histogram Computation Taking into Account the Motion for the Current Frame fi:
Using preferably but not necessarily the same method as for step 1 above, a brightness histogram of the colors of pixels belonging to the motion region MRi determined in step 1 is computed, referred as Hmotioni. It means that only pixels belonging to the motion region MRi are taken into account for this brightness histogram Hmotioni,
In the second variant in which no motion amplitude threshold is defined in step 1, brightness values of each pixel of the current frame fi are weighted by the motion amplitude of this pixel obtained from the motion amplitude map Mi determined in step 1 above. After such a weighting of brightness values, a computation of brightness-weighted histogram is performed also referred as Hmotioni for this second variant.
In both variants above, the brightness distribution Hmotioni which is obtained by this computation is based on color data which are weighted by the motion of the corresponding pixels, wherein this motion is evaluated in comparison with the previous frame fi−1. In the first variant, pixels belonging to the motion region are given a weight value of 1 as the other pixels are given a weight value of 0.
At this stage, we have two brightness histograms:
Hfulli for all pixels in the image.
Hmotioni which considers only pixels having a motion weight non null which are then considered as part of a motion region MRi.
This means that pixels that are counted in Hmotioni are also counted in Hfulli.
In a further variant of this embodiment, we can avoid this double counting of pixels by computing a separate histogram of all the pixels in the image that are not part of the motion region MRi. This histogram will be referred to as Hglobali.
We assume that histogram Hfulli consists of Nfull bins, histogram Hmotioni consists of Nmotion bins and histogram Hglobali consists of Nglobal bins.
From each of the three histograms above Hfulli, H motioni and Hglobali, we also calculate three other cumulative histograms as follows:



  
    
      
        Cfull
        i
      
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        ∑
        
          k
          =
          0
        
        m
      
      ⁢
      
        
          Hfull
          i
        
        ⁡
        
          (
          k
          )
        
      
    
  




  
    
      
        Cmotion
        i
      
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        ∑
        
          k
          =
          0
        
        m
      
      ⁢
      
        
          Hmotion
          i
        
        ⁡
        
          (
          k
          )
        
      
    
  




  
    
      
        Cglobal
        i
      
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        ∑
        
          k
          =
          0
        
        m
      
      ⁢
      
        
          Hglobal
          i
        
        ⁡
        
          (
          k
          )
        
      
    
  



From each of the three histograms above Hfulli, H motioni and Hglobali, we also calculate three reverse cumulative histograms as follows:



  
    
      
        Cfull
        i
        r
      
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        ∑
        
          k
          =
          
            
              N
              full
            
            -
            1
          
        
        
          
            N
            full
          
          -
          m
          -
          1
        
      
      ⁢
      
        
          Hfull
          i
        
        ⁡
        
          (
          k
          )
        
      
    
  




  
    
      
        Cmotion
        i
        r
      
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        ∑
        
          k
          =
          
            
              N
              motion
            
            -
            1
          
        
        
          
            N
            motion
          
          -
          m
          -
          1
        
      
      ⁢
      
        
          Hmotion
          i
        
        ⁡
        
          (
          k
          )
        
      
    
  




  
    
      
        Cglobal
        i
        r
      
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        ∑
        
          k
          =
          
            
              N
              global
            
            -
            1
          
        
        
          
            N
            global
          
          -
          m
          -
          1
        
      
      ⁢
      
        
          Hglobal
          i
        
        ⁡
        
          (
          k
          )
        
      
    
  



These cumulative histograms will be used in substeps 4.2 and 4.3 below.
Step 4—Estimation of Exposure Ei+1 for the Next Frame fi+1:
To estimate this exposure Ei+1 for the next frame fi+1, we need notably the value of the exposure for the current frame fi and the value of the preferred direction of exposure change diri+1 provided by the previous iteration (or by the initialization step).
Globally, there are three possible cases:

    
    
        a. The exposure Ei of the current frame fi has already captured the whole scene exposure range, in which case, Ei+1←Ei and diri+2=down (since we are effectively reverting to the initialization conditions). To test whether the current exposure Ei sufficiently captures the scene's dynamic range, the first and last bins of the Nfull bins of the full image histogram Hfulli are taken. For a histogram with a total number of bins Nfull, the bin values Hfulli (0) and Hfulli (Nfull−1) are tested against a bin threshold h. The value of this threshold, which is generally common to all frames, is typically a small percentage of the total number of pixels in the frame, for instance 1%, but could also be chosen to be zero. The current frame is considered as capturing the scene's dynamic range if the following condition is fulfilled:

Hfulli(0)<h AND Hfulli(Nfull−1)<h 

        b. We can find an exposure setting Ei+1 that fulfils two conditions:
        
            fi+1 has sufficient overlap with fi 
            fi+1 is capturing enough useful pixels
        
        
        c. There is no such exposure Ei+1, e.g because the scene irradiance distribution is bimodal and exposure Ei is in the middle of the two modes, in which case we choose the biggest exposure step that we can in the given direction of exposure change while preserving sufficient exposure overlap in one of the two possible directions of exposure change.
    
    


The main blocks of the decisions trees shown on FIG. 3 and FIG. 4 that lead to the estimation of an exposure Ei+1 for the next frame fi+1 involve two previous estimations, namely an estimation of an initial exposure Einiti+1 for the next frame fi+1 and an estimation of an adjusted exposure Eadji+1 for the next frame fi+1. These estimations are described in the substeps below.
Sub-Step 4.1—Estimation of the Initial Exposure Einiti+1 for next Frame fi+1:
We compute an initial exposure setting Einiti+1 for the next frame using only Hfulli provided in step 1, and changing the exposure in direction diri+1, which has been computed from a previous iteration (or initialization step) according to the same process described in step 5 below for the computation of diri+2.
We compute a default low-threshold brightness value Zlow,i corresponding to an under-exposed color data threshold tlow for the current frame fi, and we compute a default high-threshold brightness value Zhigh,i corresponding to an over-exposed color data threshold thigh. The thresholds tlow and thigh define, in relative scale, which range of brightness is useful in a frame. The values of tlow and thigh are generally common to all frames of a sequence to capture. If the frame sensor 110 is configured to capture 8 bit frames, we have for instance tlow=0.2 and thigh=0.9. Therefore, for such a computing, if we have tlow=0.2, then Zlow,i=tlow×255=51, and if we have thigh=0.9, then Zhigh,i=thigh×255=230.
As shown below, to compute Einiti+1 we consider under-exposed color data threshold tlow if diri+1=up and over-exposed color data threshold thigh if diri+1=down.
Knowing the camera response function CRF of the frame sensor 110 (see above) and the exposure time Ei of the current frame fi, we now compute scene irradiance values of this frame corresponding to default threshold brightness values Zlow,i or Zhigh,i of this frame as follows:




  
    
      
        
          I
          ⁡
          
            (
            
              Z
              
                low
                ,
                i
              
            
            )
          
        
        =
        
          
            
              CRF
              
                -
                1
              
            
            ⁡
            
              (
              
                Z
                
                  low
                  ,
                  i
                
              
              )
            
          
          
            E
            i
          
        
      
    
    
      
        (
        3
        )
      
    
  
  
    
      
        
          I
          ⁡
          
            (
            
              Z
              
                high
                ,
                i
              
            
            )
          
        
        =
        
          
            
              CRF
              
                -
                1
              
            
            ⁡
            
              (
              
                Z
                
                  high
                  ,
                  i
                
              
              )
            
          
          
            E
            i
          
        
      
    
    
      
        (
        
          3
          ′
        
        )
      
    
  




where CRF−1 is the inverse of the camera response function CRF.

FIG. 5 illustrates the distribution of brightness values Z (i.e. 0 to 255 in a 8 bit coding) in the current frame fi. This distribution corresponds to only Hfulli. Y-axis corresponds to pixel counts and X-axis corresponds to color data Z of pixel values. I(Z) represents a scene irradiance value captured as Z.
To compute Einiti+1 when diri+1=up, the following equation illustrated on FIG. 5 should be preferably satisfied:

I(Zlow,i)=I(Zhigh,i+1)  (4)

Given equations (3) and (4), it follows that




  
    
      
        
          I
          ⁡
          
            (
            
              Z
              
                high
                ,
                
                  i
                  +
                  1
                
              
            
            )
          
        
        =
        
          
            
              
                CRF
                
                  -
                  1
                
              
              ⁡
              
                (
                
                  Z
                  
                    low
                    ,
                    i
                  
                
                )
              
            
            
              E
              i
            
          
          .
        
      
    
    
      
        (
        5
        )
      
    
  




Considering the camera response function CRF again we can reformulate equation (5) based on the values corresponding to the next frame fi+1:




  
    
      
        
          I
          ⁡
          
            (
            
              Z
              
                high
                ,
                
                  i
                  +
                  1
                
              
            
            )
          
        
        =
        
          
            
              CRF
              
                -
                1
              
            
            ⁡
            
              (
              
                Z
                
                  high
                  ,
                  
                    i
                    +
                    1
                  
                
              
              )
            
          
          
            Einit
            
              i
              +
              1
            
          
        
      
    
    
      
        (
        6
        )
      
    
  




Combining (5) and (6) gives us




  
    
      
        
          
            
              CRF
              
                -
                1
              
            
            ⁡
            
              (
              
                Z
                
                  low
                  ,
                  i
                
              
              )
            
          
          
            E
            i
          
        
        =
        
          
            
              CRF
              
                -
                1
              
            
            ⁡
            
              (
              
                Z
                
                  high
                  ,
                  
                    i
                    +
                    1
                  
                
              
              )
            
          
          
            Einit
            
              i
              +
              1
            
          
        
      
    
    
      
        (
        7
        )
      
    
  




The only unknown in equation (7) is Einiti+1 so we can solve for it, obtaining the initial exposure setting for the next frame fi+1 according to:




  
    
      
        
          Einit
          
            i
            +
            1
          
        
        =
        
          
            
              
                CRF
                
                  -
                  1
                
              
              ⁡
              
                (
                
                  Z
                  
                    high
                    ,
                    
                      i
                      +
                      1
                    
                  
                
                )
              
            
            
              
                CRF
                
                  -
                  1
                
              
              ⁡
              
                (
                
                  Z
                  
                    low
                    ,
                    i
                  
                
                )
              
            
          
          ⁢
          
            E
            i
          
        
      
    
    
      
        (
        8
        )
      
    
  




In simple terms, we can compute an estimation for the exposure Einiti+1 of the next frame fi+1 so that for specific color values in the current and next frames fi, fi+1, we have the same scene irradiance captured. This choice of Einiti+1 ensures that there is sufficient exposure overlap between the exposure range in the current frame fi and the next frame fi+1, and that the next frame captures a sufficient number of pixels that were either under-exposed or over-exposed in the current frame (i.e., case 4b, above).
Similarly, still referring to the distribution of brightness values shown on FIG. 5, to compute Einiti+1 when diri+1=down, the Initial Exposure Einiti+1 for next Frame fi+1 is estimated according to equation 8′ below:




  
    
      
        
          Einit
          
            i
            +
            1
          
        
        =
        
          
            
              
                CRF
                
                  -
                  1
                
              
              ⁡
              
                (
                
                  Z
                  
                    low
                    ,
                    
                      i
                      +
                      1
                    
                  
                
                )
              
            
            
              
                CRF
                
                  -
                  1
                
              
              ⁡
              
                (
                
                  Z
                  
                    high
                    ,
                    i
                  
                
                )
              
            
          
          ⁢
          
            E
            i
          
        
      
    
    
      
        (
        
          8
          ′
        
        )
      
    
  




The invention is not limited to the computation of Einiti+1 as described above. Other known methods of building HDR images without taking into account the motion may be used, notably methods using not only the thresholds Zlow and Zhigh positioned on the brightness histogram only H fulli as described above, but also methods using the shape of this histogram. See for instance U.S. Pat. No. 7,382,931.
Sub-Step 4.2—Estimation of the Adjusted Exposure Eadji+1 for the Next Frame fi+1:
For such an estimation, we will preferably consider how many pixels of the current frame fi have colors that are over or under exposed in different situations and adjust an exposure for the next frame fi+1 accordingly.
To determine the number of over/under exposed pixels that is acceptable for the next frame fi+1, we preferably consider how many pixels are affected by local or global motion in the current frame fi and also whether we are measuring over or under exposure in the current frame fi. Each of these cases leads to different values for a threshold of percentage of over/under exposed pixels thrmotion within the motion region MRi, and for a threshold of percentage of over/under exposed pixels thrfull in the full frame fi (or a threshold of percentage of over/under exposed pixels thrglobal for pixels that are not in the motion region MRi). These two thresholds thrmotion and thrfull (or hrglobal) will be used below to determine how much the next frame fi+1 should preferably brightness-overlap with the current frame fi.
We will now detail the estimation of pixels thrmotion for the current frame fi.
From the motion amplitude map Mi provided in step 2 above, for each pixel location x we set a local motion index LMi as follows:




  
    
      
        
          
            LM
            i
          
          ⁡
          
            (
            x
            )
          
        
        =
        
          {
          
            
              
                
                  0
                  ,
                
              
              
                
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  no
                  ⁢
                  
                    
                  
                  ⁢
                  local
                  ⁢
                  
                    
                  
                  ⁢
                  motion
                  ⁢
                  
                    
                  
                  ⁢
                  at
                  ⁢
                  
                    
                  
                  ⁢
                  x
                  ⁢
                  
                    
                  
                  ⁢
                  in
                  ⁢
                  
                    
                  
                  ⁢
                  
                    f
                    i
                  
                
              
            
            
              
                
                  
                    motion
                    ⁢
                    
                      
                    
                    ⁢
                    amplitude
                  
                  ,
                
              
              
                
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  local
                  ⁢
                  
                    
                  
                  ⁢
                  motion
                  ⁢
                  
                    
                  
                  ⁢
                  at
                  ⁢
                  
                    
                  
                  ⁢
                  x
                  ⁢
                  
                    
                  
                  ⁢
                  in
                  ⁢
                  
                    
                  
                  ⁢
                  
                    f
                    i
                  
                
              
            
          
        
      
    
    
      
        (
        1
        )
      
    
  




A local motion map is then obtained for the current frame fi.
In addition, we compute the percentage of pixels that have local motion in current frame fi as follows:




  
    
      
        
          A
          i
        
        =
        
          
            
              
                no
                .
                
                  
                
                ⁢
                of
              
              ⁢
              
                
              
              ⁢
              pixels
              ⁢
              
                
              
              ⁢
              in
              ⁢
              
                
              
              ⁢
              
                MR
                i
              
            
            >
            0
          
          
            
              no
              .
              
                
              
              ⁢
              of
            
            ⁢
            
              
            
            ⁢
            pixels
            ⁢
            
              
            
            ⁢
            in
            ⁢
            
              
            
            ⁢
            
              f
              i
            
          
        
      
    
    
      
        (
        2
        )
      
    
  




A value of a minimum percentage of pixels that have local motion Amin and a value of a minimum percentage of pixels that have local motion Amax are set experimentally to, for instance, Amin=0.1% and Amax=1%. Those values are generally common to all frames of a sequence. To determine how the motion area MRi relates to Amin and Amax, we simply count pixels with motion as follows.
Referring to table 1 below, if the percentage of pixels with local motion Ai is below Amin, then:
for over exposure when diri+1=up, we set thrmotion=throver,min and,
for under exposure when diri+1=down, we set thrmotion=thrunder,min. Values for throver,min and thrunder,min are proposed on the first row of table 1.
If the percentage of pixels with local motion Ai is above Amax, then:
for over exposure when diri+1=up, we set thrmotion=throver,max and,
for under exposure when diri+1=down, we set thrmotion=thrunder,max. Values for throver,max and thrunder,max are proposed on the last row of table 1.
In the third possible situation in which Amin<Ai<Amax, we interpolate (see middle row of table 1) the value of threshold of percentage of over/under exposed pixels thrmotion as shown follows:




  
    
      
        
          dA
          =
          
            
              A
              -
              
                A
                min
              
            
            
              
                A
                max
              
              -
              
                A
                min
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            If
            ⁢
            
              
            
            ⁢
            
              dir
              
                i
                +
                1
              
            
          
          =
          up
        
      
    
    
      
        (
        8
        )
      
    
  
  
    
      
        
          
            thr
            motion
          
          =
          
            
              
                (
                
                  
                    thr
                    
                      under
                      ,
                      max
                    
                  
                  -
                  
                    thr
                    
                      under
                      ,
                      min
                    
                  
                
                )
              
              ⁢
              dA
            
            +
            
              thr
              
                under
                ,
                min
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            If
            ⁢
            
              
            
            ⁢
            
              dir
              
                i
                +
                1
              
            
          
          =
          down
        
      
    
    
      
        (
        9
        )
      
    
  
  
    
      
        
          thr
          motion
        
        =
        
          
            
              (
              
                
                  thr
                  
                    over
                    ,
                    max
                  
                
                -
                
                  thr
                  
                    over
                    ,
                    min
                  
                
              
              )
            
            ⁢
            dA
          
          +
          
            thr
            
              over
              ,
              min
            
          
        
      
    
    
      
        (
        10
        )
      
    
  












TABLE 1





Percentage of image pixels
Motion case-


with local motion
over/under exposure thresholds


















Amin > Ai
Amin = 0.1%
thrunder, min = 100%
throver, min = 90%








Amin < Ai < Amax
Interpolation based on Eq. 8-10










Amax < Ai
Amax = 1%
thrunder, max = 85%
throver, max = 5%









We will now detail the estimation of pixels thrfull (or thrglobal according to the second embodiment) for the current frame fi.
We set the threshold thrfull (or hrglobal) to the threshold thrunder given in Table 2 if the direction diri+1=up, or to the threshold throver given in Table 2 if the direction diri+1=down.







TABLE 2







Full case-over/under exposure thresholds










thrunder
throver







92%
20%










This process is repeated for both cumulative histograms.
The value of the threshold thrmotion for the percentage of over/under exposed pixels within the motion region MRi is variable from frame to frame, notably as it may be computed according to eq. 10, and therefore evaluated specifically for each frame. This value will change depending on how much motion is in the frame.
After we obtain as explained above the values of the thresholds of percentage of over/under exposed pixels thrmotion for the motion region MRi of the current frame fi, and thrfull for all pixels of the current frame fi, (or thrglobal for pixels not belonging to the motion region), we select two cumulative histograms among the above described for subsequent calculations. If an increase of the exposure time is preferred for the next frame (i.e. diri+1=up), then we select preferably Cfullir and Cmotionir. In an alternative embodiment, we could choose Cglobalir and Cmotionir, to avoid counting pixels double (as outlined above).
If a decrease of the exposure time is preferred, i.e. diri+1=down, then we select preferably Cfulli and Cmotioni. In an alternative embodiment, we could choose Cglobali and Cmotioni, to avoid counting pixels double (as outlined above).
This process preferably selects two cumulative histograms, one for the motion region, and one for either the full image, or the full image minus the motion region MRi. We have also determined above the values for two corresponding thresholds: thrmotion calculated according to equations 9 and 10 above is implicated in the following calculation on Cmotioni (resp. Cmotionir), and thrfull set according to table 2 in dependence to diri+1 is implicated in the following calculation on either Cfulli (resp. Cfullir) or Cglobali (resp. Cglobalir), dependent on choice of embodiment.
FIG. 6 illustrates the same distribution of brightness/intensity values Z (i.e. 0 to 255 in a 8 bit coding) in the current frame fi, as FIG. 5. On a curve in dotted line, FIG. 6 also illustrates selected reverse cumulative distributions. I(Z) represents a scene irradiance value captured as Z. Referring to this FIG. 6, we determine the value of an adjusted threshold brightness Zthr,full,i corresponding to the above threshold thrfull as follows: on the cumulative histogram Cfulli (resp. Cfullir) in dotted line, we find the point where the y-axis (i.e. the pixel count) is equal to thrfull and the projection of this point on the x-axis gives the value of Zthr,full,i.
When this process is applied to the cumulative histogram Cfulli (resp. Cfullir (or Cglobali (resp. Cglobalir)), the value of Zthr,full,i is obtained. This process is repeated for the cumulative histogram Cmotioni (resp. Cmotionir) to obtain Zthr,motion,i.
Then, a final adjusted threshold brightness value Zthr,i is set to Zthr,motion,i if and only if:

Cmotion,i(Zthr,motion,i)≦thrmotion 

Cfull,i(Zthr,motion,i)≦thrfull 

Alternatively, the final adjusted threshold brightness value Zthr,i is set to Zthr,full,i if and only if:

Cmotion,i(Zthr,full,i)≦thrmotion 

Cthr,full,i(Zthr,full,i)≦thrfull 

Once we have this adjusted threshold brightness value Zthr,i, we estimate the adjusted exposure Eadji+1 for the next frame fi+1 in the same way we have estimated above Einiti+1 in Equations 3 to 7, in which we replace Zlow,i by Zthr,i and Einiti+1 by Eadji+1.
Sub-Step 4.3—Final Estimation of the Exposure Ei+1 for the Next Frame fi+1:
If diri+1=up, we follow the decision tree shown on FIG. 3 to obtain a final estimation of the exposure Ei+1 for the next frame fi+1. If diri+1=down, we follow the decision tree shown on FIG. 4 to obtain a final estimation of the exposure Ei+1 for the next frame fi+1. According to these decision trees, the conclusion, is either Ei+1=Einiti+1, or Ei+1=Eadji+1. Note that these decision trees take into account the exposure Ei of the current frame fi.
Step 5—Determination of the Preferred Direction of Exposure Change for the Following Frame fi+2:
This direction diri+2 determines if the “following” frame fi+2 should be captured with a longer (“up”) or shorter (“down”) exposure time than the exposure Ei+1 for the “next” frame fi+1. The direction diri+2 in which the exposure for the following frame fi+2 should be preferably changed (up or down) at the next iteration is determined according to the same decision trees as those used for sub-step 4.3. See again FIGS. 3 and 4.
Step 6—Capture of the Next Frame fi+1:
The sensor 110 receives data related to the exposure Ei+1 as adjusted by the processor 120 in step 4 above. Then, the sensor captures the next frame fi+1 under this exposure Ei+1. The image data related to this captured frame fi+1 are then transferred to the memory 130 to be stored.
Successive Iterations of Steps 1 to 6
After the first iteration of steps 1 to 6 above, other successive iterations of steps 1 to 6 are similarly performed, up to the end of the captures.
From iteration to iteration, successive frames f0, f1, f2, . . . , fi−1, fi, fi+1, . . . , fQ−1 imaging the same scene under respective exposures E0, E1, E2, . . . , Ei−1, Ei, Ei+1, . . . , EQ−1 are stored in the memory 130, where Q is the total number of frames of a sequence.
Post-Processing: Generating a Sequence of HDR Images of the Scene
After the capture of Q frames as described above, a post-processing step is applied by the processor 120 such as to group those frames into series of successive frames having different exposures, and to merge in a manner known per se the frames of each series into an HDR image of the scene. Preferably, each series comprises two successive frames and each frame belongs to two series, such that the second frame of a first series is the first frame of a second series following the first series.
The generation of each HDR image from the merging of the frames of a series is preferably performed using the method described in the article entitled “Patch-based high dynamic range video” by Nima Khademi Kalantari et al., published in 2013 in ACM Trans. Graph., 32(6), page 202.
A video sequence of HDR images of the scene is then obtained.
In a variant, the generation of HDR images from successive frames as described above can be performed as soon as image data concerning these frames are available in the memory 130.
ADVANTAGE OF THE INVENTION
The method according to the invention has the following advantages:
motion artifacts are minimized in generated HDR video sequences while the dynamic range of these sequence is maximized;
almost every frame captured in the online part of the method, i.e. in the iterations of steps 1 to 6 above, lead to an HDR frame after post-processing, removing the need for high frame rate cameras as in other methods of generating HDR video sequences;
capture of the minimal necessary number of exposures for a given HDR image, so that if a scene does not need many exposures, they will not be captured;
the method is particularly designed for mobile devices with their limited processing capabilities.
It is to be understood that the invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or combinations thereof. The invention may be notably implemented as a combination of hardware and software. Moreover, the software may be implemented as an application program tangibly embodied on a program storage unit. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPU”), a random access memory (“RAM”), and input/output (“I/O”) interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit.
While the present invention is described with respect to particular examples and preferred embodiments, it is understood that the present invention is not limited to these examples and embodiments. The present invention as claimed therefore includes variations from the particular examples and preferred embodiments described herein, as will be apparent to one of skill in the art. While some of the specific embodiments may be described and claimed separately, it is understood that the various features of embodiments described and claimed herein may be used in combination. Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.

## Claims

1. A method for generating an HDR image of a scene, wherein a current frame (fi) imaging said scene has been captured under a current exposure (Ei) and a previous frame (fi+1) imaging said scene has been captured before said current frame (fi), said method comprising:
setting an exposure (Ei+1) for a next frame (fi+1) as a function of said current exposure (Ei), of a first brightness distribution (Hfulli) of colors of pixels of said current frame (fi) and of a second brightness distribution (Hmotioni) of colors of these pixels weighted by motion of these pixels, wherein said motion is evaluated for these pixels in comparison with said previous frame (fi),
capturing said next frame (fi+1) under said set exposure (Ei+1),
merging said next frame (fi+1) with at least said current frame (fi) into an HDR image.

2. Method for generating an HDR image according to claim 1, wherein said exposure (Ei+1) for the next frame (fi+1) is set as a function also of a preferred direction (diri+1) of exposure change for said current frame (fi+1).

3. Method for generating an HDR image according to claim 2 comprising the determination of a preferred direction (diri+2) of exposure change for a frame (fi+2) following the next frame (fi+1).

4. Method for generating an HDR image according to claim 1, wherein said setting of an exposure (Ei+1) for the next frame (fi+1) comprises an estimation of an initial exposure (Einiti+1) based on said first brightness distribution (Hfulli) but not based on said second brightness distribution (Hmotioni), an estimation of an adjusted exposure (Eadji+1) based on said second brightness distribution (Hmotioni), and a final estimation of said exposure (Ei+1) for the next frame (fi+1) adapted to choose between said initial exposure (Einiti+1) and said adjusted exposure (Eadji+1) as a value for said exposure (Ei+1) for the next frame (fi+1).

5. A HDR image capture device comprising a frame sensor configured to capture successive frames imaging a scene, notably to capture a current frame (fi) under a current exposure (Ei) and a previous frame (fi+1), and a processor configured to:
set an exposure (Ei+1) for a next frame (fi+1) as a function of said current exposure (Ei), of a first brightness distribution (Hfulli) of colors of pixels of said current frame (fi) and of a second brightness distribution (Hmotioni) of colors of these pixels weighted by motion of these pixels, wherein said motion is evaluated for these pixels in comparison with said previous frame (fi+1),
trigger the capture of said next frame (fi+1) under said set exposure (Ei+1) by said frame sensor,
merge said next frame (fi+1) with at least said current frame (fi) into an HDR image.

6. HDR image capture device according to claim 5, wherein said processor is also configured to set said exposure (Ei+1) for the next frame (fi+1) as a function also of a preferred direction (diri+1) of exposure change for said current frame (fi+1).

7. HDR image capture device according to claim 6, wherein said processor is also configured to determine a preferred direction (diri+2) of exposure change for a frame (fi+2) following the next frame (fi+1).

8. HDR image capture device according to claim 5, wherein said processor is also configured such that said setting of an exposure (Ei+1) for the next frame (fi+1) comprises an estimation of an initial exposure (Einiti+1) based on said first brightness distribution (Hfulli) but not based on said second brightness distribution (Hmotioni), an estimation of an adjusted exposure (Eadji+1) based on said second brightness distribution (Hmotioni), and a final estimation of said exposure (Ei+1) for the next frame (fi+1) adapted to choose between said initial exposure (Einiti+1) and said adjusted exposure (Eadji+1) as a value for said exposure (Ei+1) for the next frame (fi+1).