Difference between revisions of "SkippingBinning"

From ElphelWiki
Jump to: navigation, search
(Binning Modes)
(Binning Modes)
 
(One intermediate revision by the same user not shown)
Line 44: Line 44:
 
  echo elphel_get_P_value(ELPHEL_SENSOR_REGS+32);
 
  echo elphel_get_P_value(ELPHEL_SENSOR_REGS+32);
  
'''Note: correct way to control binning and decimation in the camera:'''
+
'''Note: correct way to control binning and decimation in the camera'''
 +
[[Image:Bin_decim_cntrl.png|thumb|Image control panel]] You may control the binning and decimation of the camera sensor using the camera control interface (camvc). These for parameters:
 +
DCM_HOR, DCM_VERT, BIN_HOR and BIN_VERT
 +
are also available in parsedit program or from the custom PHP script running in the camera :
 +
 
 
  http://*cameraIP*/parsedit.php?embed=0.18&DCM_HOR&DCM_VERT&BIN_HOR&BIN_VERT
 
  http://*cameraIP*/parsedit.php?embed=0.18&DCM_HOR&DCM_VERT&BIN_HOR&BIN_VERT
  
Yes it is possible to change some of the camera parameters by changing values of the sensor registers, but this way is mostly used for development/experimentation, until some particular parameter is supported by the camera driver. When the decimation is modified,  camera needs to program the FPGA compressor accordingly, the JPEG headers have to be modified too. Additionally software takes care of the camera pipeline latency - compressor has to be programmed to different image size at exact frame - all that happens when the higher level parameters are modified. And of course, different sensors have different registers that control binning and decimation, different values/combinations of values are allowed for these parameters - driver validates the values using of sensor capabilities tables, no validation, pipeline synchronization happens when the sensor registers are modified directly. --[[User:Andrey.filippov|Andrey.filippov]] 22:32, 25 January 2011 (UTC)
+
Yes it is possible to change some of the camera parameters by modifying directly the values of the sensor registers, but this is designed to be used for development/testing/experimentation, until some particular parameter is supported by the camera driver. When the decimation is modified,  camera needs to program the FPGA compressor accordingly, the JPEG headers have to be modified too. Additionally software takes care of the camera pipeline latency - compressor has to be programmed to different image size at exact frame - all that happens when the higher level parameters are modified. And of course, different sensors have different registers that control binning and decimation, different values/combinations of values are allowed for these parameters - driver validates the values using of sensor capabilities tables; no validation, pipeline synchronization happens when the sensor registers are modified directly. --[[User:Andrey.filippov|Andrey.filippov]] 22:32, 25 January 2011 (UTC)

Latest revision as of 14:56, 25 January 2011

Skipping

Also called "Decimation", means that a certain amount of photosites is not read out ->skipped (horizontally, vertically or in both axis). This reduces resolution of the resulting image but introduces subsampling artifacts. This is an on-sensor-feature.


Binning

Pixel Binning refers to the method of combining (averaging or summing) charges of blocks of neighbouring same-color-photosites. This is an on-sensor-feature.

Using both skipping and binning at the same time reduces subsampling artifacts but does not eliminate them completely.

Article describing "Binning"

http://www.echenique.com/index.php/2009/05/16/phaseone-sensor-pixel-binning-and-the-future-of-digital-photography/

Pixel Binning in Elphel Cameras

Using Skipping/Binning you can:

  • lower the resolution of an image while using the same sensor area
  • achieving higher FPS for the same resulting resolution
  • decrease image noise (averaging) or increase light sensitivity (summing)

But be careful: Binning/Decimation effectively result in a certain amount of subsampling artifacts.

200% Zoom - NO Skipping/Binning
200% Zoom - with Skipping (2x2), NO Binning
200% Zoom - with Skipping (2x2), with Binning (2x2)

Binning Modes

The "normal" Binning mode averages the charges from photosites thus reducing noise in the image but not altering light sensitivity. [1]

There is an alternative mode that sums up the charges and therefore makes the binned pixel more light sensitive. [2]

In Elphel Camera (since 8.X Software) the different binning modes can be set at http://*cameraIP*/parsedit.php?embed=0.18&SENSOR_REGS32

The default value is "0x40" which means averaging binning mode.

If you set it to "0x60" you switch to summing binning mode and will get increased light sensitivity.

Using PHP you can access this register with:

echo elphel_get_P_value(ELPHEL_SENSOR_REGS+32);

Note: correct way to control binning and decimation in the camera

Image control panel
You may control the binning and decimation of the camera sensor using the camera control interface (camvc). These for parameters:
DCM_HOR, DCM_VERT, BIN_HOR and BIN_VERT

are also available in parsedit program or from the custom PHP script running in the camera :

http://*cameraIP*/parsedit.php?embed=0.18&DCM_HOR&DCM_VERT&BIN_HOR&BIN_VERT

Yes it is possible to change some of the camera parameters by modifying directly the values of the sensor registers, but this is designed to be used for development/testing/experimentation, until some particular parameter is supported by the camera driver. When the decimation is modified, camera needs to program the FPGA compressor accordingly, the JPEG headers have to be modified too. Additionally software takes care of the camera pipeline latency - compressor has to be programmed to different image size at exact frame - all that happens when the higher level parameters are modified. And of course, different sensors have different registers that control binning and decimation, different values/combinations of values are allowed for these parameters - driver validates the values using of sensor capabilities tables; no validation, pipeline synchronization happens when the sensor registers are modified directly. --Andrey.filippov 22:32, 25 January 2011 (UTC)