This is an old revision of the document!


Camera Design

Compositions: models s relationship. Owner is responsible for the creation and destruction of this data.

Aggregation: models “has a” relationship. This data can be a member elsewhere. The class including this data is not responsible for its creation/deletion.

Association: models a bi-directional association relationship. For example a patient has a doctor, and a doctor has a patient. They both know about each other.

Reflexive association: models relationship of objects of the same type. For instance, a course may have prerequisites, which are themselves courses.

Abstract Class:

A 1920 x 1080 video at 30 fps with RGB8 (24 bits total) comes out to 1.5Gbits/s.

Encoding and decoding.

White Balance

Correct the colors based on a color temperature assumption.

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.

Back Side Illumination

Final Pipeline example.

API for controlling a camera by Kari Pulli

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 is a virtual filesystem that is used to communicate information about the system to the user space.

  • camera_design.1598751387.txt.gz
  • Last modified: 2020/08/30 01:36
  • by paul