Please complete this task as part of your GSoC 2019 application when applying for matching tasks/ideas.
This challenge is mandatory if you apply for T725, T734, T1122 or T1126.
1. Write a C program which memory maps a RAW12 image ([portrait-gainx2-offset2047-20ms-02.raw12](http://files.apertus.org/AXIOM-Beta/snapshots/portraits/portrait-gainx2-offset2047-20ms-02.raw12)).
2. Calculate a 4 channel histogram with 32 buckets per channel in an memory access efficient way.
3. Write a simple timing framework to evaluate the performance of your code.
Make sure (double and triple check :) to adhere to C Coding Style and Indentation (either K&R or Linux Kernel).
Add comments where they make sense but in general write your code to be self explanatory.
Write a Makefile which can build and clean your tool on any Linux System.
Optimize your algorithm and code to reduce memory access.
We will build, run and time your code on the AXIOM Beta so make sure to optimize it for this kind of hardware.
The output should be a 5 column, 32 rows ASCII table with the bucket number in the first column and the counted values in the remaining four.
- RAW12: https://wiki.apertus.org/index.php/RAW12
**Note:** Using or improving upon existing code is permitted but make sure to credit the original author(s).
To get in touch with any mentor check the [[ https://www.apertus.org/GSoC-2019-Mentor-Contact-List | Mentor Contact List]].