Camera RAW pipeline

by syoyo

I’ve implement my own Camera RAW decoder + debayer + color correction.

Image

(left: decoded and ACES RRT + sRGB ODT color graded RAW image. You can see filmic-look of image because of ACES RRT. right: mostly RAW value. You can see greenish image, this is correct as RAW value)

Recent custom firmware development(Magic Lantern) enables shooting 14bit DNG RAW video http://www.eoshd.com/content/10324/big-news-hands-on-with-continuous-raw-recording-on-canon-5d-mark-iii

So this will realise high-quality physical luminance video capture with mass-market DSLRs!

Physical capture of live world is very important for Live VFX and physically-based rendering as you know 😉

Unfortunately I haven’t 5D3, but have 550D. 550D also can capture 14bit DNG RAW, but limited to 0.5 ~ 1 fps shooting at this time(Magic Lantern team will improve this situation soon). Still, it is enough to test my own Camera RAW decoder implementation.

There are already good (open source) RAW decoder, called dcraw

Why I re-invented RAW decoder? The answer is for speed.

RAW decoding and (noise) filtering is very slow in general on CPU.

I am planning to accelerate RAW decoding(and filtering) on OpenGL compute shader utilizing GPU power.

I already got success to implement each component of RAW pipeline(decode, debayer, filter, ACES color grading, etc) into OpenGL compute shader.

So next phase is to implement all Camera RAW pipeline in OpenGL compute shader and performance tuning.

Stay tuned!

[References]

Advertisements