SHOODAK is a debayering algorithm developed by Stephan Schuh (http://www.imdb.com/name/nm0775939/).
The goal of the SHOODAK debayering method is to avoid the typical "digital sharpness" that we know too well from digital cameras nowadays. SHOODAK is meant to create a more natural looking image that is perceived closer to 35mm film negative as there are no sharpening effects that create contrast lines around edges. Also SHOODAK is meant to preserve the original grain/noise pattern from image sensors as much as possible. The SHOODAK process is meant to be very lightweight in terms of required processing resources.
For color reconstruction a bi-linear method plus a weighted (25% - 50% seems a reasonable range) random (or pseudo random) influence of neighboring pixels is used.
For blue pixels this creates following 8 random read out patterns (each pattern contains 1x red, 1x blue, 1x green pixel):
For red pixels this creates following 8 random read out patterns (each pattern contains 1x red, 1x blue, 1x green pixel):
For green pixels this creates following 4 random read out patterns (each pattern contains 1x red, 1x blue, 1x green pixel):
A frequent problem with bi-linear debayering are so-called zipper artifacts. Visually this causes edges and lines with a zipper or chessboard look:
To counter these zipper artifacts a small percentage of the average of same-color neighboring pixels is added. Percentages below 10% have shown good results.
Neighbors for Blue, Red and Green pixels:
One random selection could look like this (parameters: 75% bi-linear, 25% random, 0% zipper reduction):
Red = (R1+R2+R3+R4) : 4 x 0.75 + R1 x 0.25
Green = (G1+G2+G3+G4): 4 x 0.75 + G1 x 0.25
Blue = O
So far SHOODAK V1 was only tested with raw footage recorded with cameras without Opticak Low Pass Filter (OLPF).
The big questions are:
Preliminary conclusions (from footage without OLPF) so far are:
Stephan took a complete different approach with Version 2. This is currently untested and up for evaluation.
Instead of the original pixel position this approach uses pixel centers shifted by half a pixel in vertical and horizontal direction. This means the resolution of the debayered image will be one pixel smaller than the raw pixel resolution vertically and horizontally. Instead of averaging the two green values in a 2x2 pixel block one of the green values is selected by random. The red and blue values are directly used without any averaging with neighboring pixels.