This is an old revision of the document!
Camera Design
Video Compression
Camera Pipeline
White Balance
Color Correction Matrix
Sensor based color correction matrix that is generated at the factory using a color chart that solves for the error between actual and produced color charts.
Gamma Correction
Color space is not linear in reality, but the sensor perceives it as such. This will lead to images that have colors compressed other side of the range, and make it harder for us to distinguish between them. Gamma correcection corrects for the exponent of the non linear nature of light and color.
Denoising
Camera sensors will exhibit noise over the pixel array.
There are multiple de-noising techniques, such as temporal denoising that uses a burst of frames to average out the random noise pattern.
This can also be done on a single frame use a spatial denoising technique, that looks at the values of neighboring pixels.
Final Pipeline example.
FCam
API for controlling a camera by Kari Pulli
Shared Memory
You can share memory between forked processes using mmap
. This gives you a pointer to shared memory.
kmalloc
Physically contiguous memory allocated in the kernal space.
kzalloc
Physically contiguous memory allocated in the kernal space. Initialized to zero.
calloc
Like malloc
but initializes data requested to zeros.
sysfs
sysfs is a virtual filesystem that is used to communicate information about the system to the user space.