Difference between revisions of "ToDo"

From apertus wiki
Jump to: navigation, search
Line 20: Line 20:
* The current memory mapping is 32bit aligned, so the 16bit SPI registers show up as 32bit where only 16bits are significant.
* The current memory mapping is 32bit aligned, so the 16bit SPI registers show up as 32bit where only 16bits are significant.
* To extract the last 128x16bit from a raw image file use:
* To extract the last 128x16bit from a raw image file use:
  cat file.raw16 | dd bs=256 skip=98303
  cat file.raw16 | dd bs=256 skip=98304
Or if you have a raw16.xz compressed file you can do it all in one piped command (assuming the c/c++ tool is called "register_info"):
Or if you have a raw16.xz compressed file you can do it all in one piped command (assuming the c/c++ tool is called "register_info"):
  xzcat file.raw16.xz | dd bs=256 skip=98303 | register_info
  xzcat file.raw16.xz | dd bs=256 skip=98304 | register_info
* Sample files and format specifications of RAW16 can be found here: [[RAW16]]
* Sample files and format specifications of RAW16 can be found here: [[RAW16]]



Revision as of 15:51, 20 December 2013

1 Axiom Alpha Prototype

1.1 DNG Converter Software

  • Add other DNG tags such as dead pixels, register settings, black level calibration data, etc.
  • Implement the matrix as a LUT.
  • Eventually port to from python to C/C++

Code: https://github.com/apertus-open-source-cinema/CMV12000_DNG_Writer

1.2 Linux C/C++ commandline tool to interpret all image sensor registers

We require a c/c++ commandline tool that takes the 128x16bit sensor dump as stdin. Displays the registers in a hex editor like way with addresses and content in a table and next to the table the human readable interpretation of the corresponding sensor parameters (exposure time, etc.)

Sensor Datasheet: https://github.com/apertus-open-source-cinema/alpha-hardware/raw/master/Datasheets/datasheet_CMV12000%20v8.pdf

Bash script example: Axiom_Alpha_Prototype#Reading_and_Writing_Sensor_Register

1.2.1 Notes

  • The current memory mapping is 32bit aligned, so the 16bit SPI registers show up as 32bit where only 16bits are significant.
  • To extract the last 128x16bit from a raw image file use:
cat file.raw16 | dd bs=256 skip=98304

Or if you have a raw16.xz compressed file you can do it all in one piped command (assuming the c/c++ tool is called "register_info"):

xzcat file.raw16.xz | dd bs=256 skip=98304 | register_info
  • Sample files and format specifications of RAW16 can be found here: RAW16

1.3 RAW image metadata reader

All sensor registers are embedded into the raw image formats. Details about the file format: RAW16

We need code that can read/display these values in a human readable way. (Similar to the above, but not necessarily targeted at the ARM platform)

1.4 dead/hot pixel detection software

A software that is supplied with several raw images and is able to detect dead/hot pixels and output all detected pixels positions.

1.5 Flat-field correction generation software

A software that is supplied with several (around 20 is sufficient) raw images of an out of focus 30% grey wall and is able to generate the sensitivity offset of each photosite and a resulting flat-field correction matrix (https://en.wikipedia.org/wiki/Flat-field_correction). The samples images are preferably done with a fast 50mm lens stopped down to F4-F5.6 facing an evenly lit surface (white wall with area at decent distance from wall light). To further smooth results the lens should be set to out-of-focus. We need to test if these measurements work even better with a lee filter in front of the sensor instead of a lens.