C++ Challenge
Open, HighPublic

Description

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 T763 or T1121.


  1. Write a C/CPP program for loading a RAW12 image (portrait-gainx2-offset2047-20ms-02.raw12) into the memory - separate the 4 channels (in memory - 8 bits). Output the intensity values of the first 5x5 pixels (square tile) R, G, G, B channels.
  2. Save the channels (separately) as valid image files (8 bits per pixel) named appropriately without use of any external libraries (e.g. openJPG/lodePNG). (Hint: PPM file format).
  3. Debayer the CFA (color filter array) data (in memory using nearest neighbour / bilinear) - output the image as a valid image file (8-bit, without use of any external library).

Additional task (for T763):

  1. Save the debayered RGB image as a BMP file (without use of any external libraries) - expected that you create the BMP file from scratch. As an alternative, you can save the image as a single frame in an AVI file without use of external libraries (bonus points).

Additional points (if you do one / some / all of the following):

  1. Use cmake for building the C/CPP program
  2. Abide by the C/CPP coding guidelines (https://gist.github.com/lefticus/10191322) and project structuring (create appropriate directories, header files, c/cpp files to modularize the code in meaningful ways). See collected information below.
  3. If you can load part of your program as a dynamic library (.so file)
  4. If you use a nonlinear curve for the 12 to 8 bit conversion, without ignoring the bottom 4 bits (lots of different solutions possible) and explain your choice (why did you choose that curve)

Collected information:

Note: Using or improving upon existing code is permitted but, in the event that code authored by someone else is used, the code's original author must be credited.

To get in touch with any mentor check the Mentor Contact List.

There are a very large number of changes, so older changes are hidden. Show Older Changes
BAndiT1983 updated the task description. (Show Details)Jan 21 2018, 9:42 PM
BAndiT1983 updated the task description. (Show Details)Jan 21 2018, 9:47 PM
BAndiT1983 updated the task description. (Show Details)Jan 21 2018, 10:01 PM
BAndiT1983 updated the task description. (Show Details)
BAndiT1983 updated the task description. (Show Details)Jan 21 2018, 10:12 PM
BAndiT1983 updated the task description. (Show Details)Jan 21 2018, 10:37 PM
sebastian updated the task description. (Show Details)Jan 21 2018, 11:22 PM
BAndiT1983 updated the task description. (Show Details)Jan 21 2018, 11:27 PM
BAndiT1983 updated the task description. (Show Details)Jan 21 2018, 11:30 PM
BAndiT1983 updated the task description. (Show Details)
alex updated the task description. (Show Details)Jan 21 2018, 11:42 PM
alex updated the task description. (Show Details)Jan 21 2018, 11:48 PM
alex updated the task description. (Show Details)Jan 21 2018, 11:51 PM
alex updated the task description. (Show Details)Jan 21 2018, 11:54 PM
alex updated the task description. (Show Details)
alex updated the task description. (Show Details)
alex renamed this task from Coding Qualification Task to Coding Challenge.Jan 21 2018, 11:57 PM
alex updated the task description. (Show Details)Jan 22 2018, 12:01 AM
sebastian updated the task description. (Show Details)Jan 22 2018, 8:56 AM
sebastian updated the task description. (Show Details)
sebastian updated the task description. (Show Details)
sebastian updated the task description. (Show Details)Jan 22 2018, 9:09 AM
sebastian updated the task description. (Show Details)Jan 22 2018, 9:22 AM
sebastian updated the task description. (Show Details)
Bertl renamed this task from Coding Challenge to C/C++ Challenge.Jan 23 2018, 11:30 AM
Bertl updated the task description. (Show Details)
sebastian updated the task description. (Show Details)Jan 25 2018, 8:06 PM
BAndiT1983 updated the task description. (Show Details)Feb 21 2018, 10:27 PM
BAndiT1983 added a subscriber: TofuLynx.
BAndiT1983 updated the task description. (Show Details)Feb 26 2018, 4:53 PM
BAndiT1983 updated the task description. (Show Details)Feb 27 2018, 1:40 PM
BAndiT1983 added a subscriber: supragyaraj.
BAndiT1983 updated the task description. (Show Details)Mar 1 2018, 9:41 AM
g3gg0 updated the task description. (Show Details)Mar 4 2018, 11:36 PM
sebastian updated the task description. (Show Details)Mar 8 2018, 8:25 PM
Bertl updated the task description. (Show Details)Mar 13 2018, 5:41 PM
sebastian updated the task description. (Show Details)Mar 17 2018, 11:56 AM
BAndiT1983 updated the task description. (Show Details)Mar 17 2018, 12:49 PM
sebastian updated the task description. (Show Details)Mar 17 2018, 8:22 PM
RexOr updated the task description. (Show Details)Mar 17 2018, 10:29 PM
RexOr updated the task description. (Show Details)Mar 17 2018, 10:32 PM
RexOr updated the task description. (Show Details)
supragyaraj updated the task description. (Show Details)Mar 22 2018, 7:26 PM
simon updated the task description. (Show Details)Mar 22 2018, 7:30 PM
simon added a subscriber: simon.
BAndiT1983 updated the task description. (Show Details)Mar 28 2018, 8:27 PM
BAndiT1983 added a subscriber: pv.anirudh.
BAndiT1983 updated the task description. (Show Details)Feb 5 2019, 8:19 AM
supragyaraj updated the task description. (Show Details)Feb 5 2019, 4:14 PM
supragyaraj removed subscribers: nmdis1999, TofuLynx.
supragyaraj updated the task description. (Show Details)Feb 5 2019, 4:17 PM
supragyaraj updated the task description. (Show Details)
supragyaraj updated the task description. (Show Details)Feb 5 2019, 4:23 PM
supragyaraj updated the task description. (Show Details)Feb 5 2019, 4:34 PM
supragyaraj updated the task description. (Show Details)Feb 5 2019, 4:47 PM
supragyaraj updated the task description. (Show Details)
sebastian updated the task description. (Show Details)Feb 6 2019, 9:32 AM
sebastian updated the task description. (Show Details)
sebastian updated the task description. (Show Details)
sebastian updated the task description. (Show Details)Feb 6 2019, 9:41 AM
mr.ohit added a subscriber: mr.ohit.Feb 6 2019, 7:06 PM
alex updated the task description. (Show Details)Feb 16 2019, 8:39 AM
supragyaraj updated the task description. (Show Details)Feb 18 2019, 5:45 AM
Bertl renamed this task from C/C++ Challenge to C++ Challenge.Feb 28 2019, 12:01 PM
Bertl updated the task description. (Show Details)
Bertl updated the task description. (Show Details)Feb 28 2019, 2:14 PM
sebastian updated the task description. (Show Details)Mar 7 2019, 6:33 PM