Difference between revisions of "HDR images with Elphel cameras"

From ElphelWiki
Jump to: navigation, search
 
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
The purpose of this project is to get HDR images using an Elphel 353 camera. The project development is supported by [http://www.waveng.com Waveng.com].
+
The purpose of this project is to get HDR images using an Elphel camera.  
  
For informations about HDR imaging see:
+
For informations about HDR imaging see: [http://en.wikipedia.org/wiki/High_dynamic_range_imaging Wikipedia.org]. For informations about HDR imaging algorithms see: [http://www.debevec.org/ Debevec.org] and [http://www1.cs.columbia.edu/CAVE/ Columbia.edu].
[http://en.wikipedia.org/wiki/High_dynamic_range_imaging Wikipedia.org]
 
  
In order to get a HDR image, the camera executes the following steps:<br>
+
There are several ways how to increase the dynamic range and to achieve HDR images:
1.acquisition of n LDR (Low Dynamic Range) images with different exposure time;<br>
 
2.computation of the n acquired images;<br>
 
3.generation of the HDR image.
 
  
The features of the camera needed to execute this cycle are:<br>
+
=Exposure Bracketing=
1.exposure time must vary during the acquisition process;<br>
 
2.a memory to temporary save the acquired images;<br>
 
3.a quite powerful CPU for image computation.<br>
 
  
The Elphel 353 camera satisfies all these requirements.
+
==Autoexposure Daemon HDR Functions==
 +
The autoexposure daemon running in the camera can rapidly alternate between multiple exposure times, allowing a single video stream with over / under exposed sequential frames. In post, these frames can be separated into individual streams and finally combined into a single HDR sequence.
 +
This HDR-video can be recorded just like any other normal video with the harddisk-recorder, camogm or captured over the network.
 +
 
 +
Due to limitations in how fast the exposure time change can be propagated to the image sensor, HDR mode works best in [[Trigger| Triggered]] mode([http://www.mail-archive.com/support-list@support.elphel.com/msg00533.html]); And by altering the http://*CameraIP*/tuneseq.php?mode=latency- page, setting the EXPOS value to "0". ([http://www.mail-archive.com/support-list@support.elphel.com/msg00492.html]).
 +
 
 +
Below is a parsedit url that provides quick access to the required parameters for frame sequential HDR in triggered mode:
 +
(replace the IP address with that of your camera)
 +
 
 +
http://192.168.0.8/parsedit.php?embed=0.15&title=Parameters+for+groups:+autoexposure+whiteBalance+trigger+&WB_EN&AUTOEXP_ON&TRIG&TRIG_PERIOD&EXPOS&HDR_DUR&HDR_VEXPOS
 +
 
 +
[[File:HDRTrigMode.png]]
 +
# WB_EN - set to 0 to turn off automatic white balance adjustment
 +
# AUTOEXP_ON - set to 0 to turn off automatic exposure time adjustments
 +
# TRIG - Switch from free-running-mode(default) to triggered mode:TRIG_CONDITION=0x0, set the TRIG_PERIOD, TRIG=0x4
 +
# TRIG_PERIOD - defines FPS (1/frame period; FPS = 96000000 / TRIG_PERIOD); 3840000 [decimal] for 25FPS)
 +
# EXPOS - Exposure time in µseconds (10000 = 10 ms) Note that in triggered mode not the entire frame period can be used for exposing
 +
# HDR_DUR - 0 = HDR ON, 1 = HDR ON
 +
# HDR_VEXPOS - defines the exposure difference between the 2 alternating exposure times.
 +
 
 +
 
 +
Also very handy is the "Last aquired images" link on top/bottom of the parsedit table as it shows a table of the last 9 images (total number, number per row can be altered in the URL) and the matching exposure time values. Please be aware though that mismatching parameters will lead to the exposure not alternating with each frame but every second, thirds, etc. frame while the exposure time displayed in the table will seem correct but is actually wrong.
 +
 
 +
[[File:Hdr_alternating.jpg]]
 +
==Manual Bracketing==
 +
You can do exposure bracketing manually with a PHP script. Just set exposure time -> capture a single frame -> change exposure time -> capture another image, etc.
 +
This will be slower than using the daemon but you have finer control over how many brackets you want and how big the EV steps between the brackets are, etc.
 +
This is best suited for still image recording where speed is not so much of an issue.
 +
 
 +
=Gain Bracketing=
 +
[[JP4 HDR]] is a special raw color format that can capture a higher dynamic range in an image without introducing any artifacts as result from combining images captured at different times (exposure bracketing). Though the post processing code to develop the images is still experimental.

Latest revision as of 08:18, 23 January 2012

The purpose of this project is to get HDR images using an Elphel camera.

For informations about HDR imaging see: Wikipedia.org. For informations about HDR imaging algorithms see: Debevec.org and Columbia.edu.

There are several ways how to increase the dynamic range and to achieve HDR images:

Exposure Bracketing

Autoexposure Daemon HDR Functions

The autoexposure daemon running in the camera can rapidly alternate between multiple exposure times, allowing a single video stream with over / under exposed sequential frames. In post, these frames can be separated into individual streams and finally combined into a single HDR sequence. This HDR-video can be recorded just like any other normal video with the harddisk-recorder, camogm or captured over the network.

Due to limitations in how fast the exposure time change can be propagated to the image sensor, HDR mode works best in Triggered mode([1]); And by altering the http://*CameraIP*/tuneseq.php?mode=latency- page, setting the EXPOS value to "0". ([2]).

Below is a parsedit url that provides quick access to the required parameters for frame sequential HDR in triggered mode: (replace the IP address with that of your camera)

http://192.168.0.8/parsedit.php?embed=0.15&title=Parameters+for+groups:+autoexposure+whiteBalance+trigger+&WB_EN&AUTOEXP_ON&TRIG&TRIG_PERIOD&EXPOS&HDR_DUR&HDR_VEXPOS

HDRTrigMode.png

  1. WB_EN - set to 0 to turn off automatic white balance adjustment
  2. AUTOEXP_ON - set to 0 to turn off automatic exposure time adjustments
  3. TRIG - Switch from free-running-mode(default) to triggered mode:TRIG_CONDITION=0x0, set the TRIG_PERIOD, TRIG=0x4
  4. TRIG_PERIOD - defines FPS (1/frame period; FPS = 96000000 / TRIG_PERIOD); 3840000 [decimal] for 25FPS)
  5. EXPOS - Exposure time in µseconds (10000 = 10 ms) Note that in triggered mode not the entire frame period can be used for exposing
  6. HDR_DUR - 0 = HDR ON, 1 = HDR ON
  7. HDR_VEXPOS - defines the exposure difference between the 2 alternating exposure times.


Also very handy is the "Last aquired images" link on top/bottom of the parsedit table as it shows a table of the last 9 images (total number, number per row can be altered in the URL) and the matching exposure time values. Please be aware though that mismatching parameters will lead to the exposure not alternating with each frame but every second, thirds, etc. frame while the exposure time displayed in the table will seem correct but is actually wrong.

Hdr alternating.jpg

Manual Bracketing

You can do exposure bracketing manually with a PHP script. Just set exposure time -> capture a single frame -> change exposure time -> capture another image, etc. This will be slower than using the daemon but you have finer control over how many brackets you want and how big the EV steps between the brackets are, etc. This is best suited for still image recording where speed is not so much of an issue.

Gain Bracketing

JP4 HDR is a special raw color format that can capture a higher dynamic range in an image without introducing any artifacts as result from combining images captured at different times (exposure bracketing). Though the post processing code to develop the images is still experimental.