Shoodak

From apertus wiki
Jump to: navigation, search

SHOODAK is a debayering algorithm developed by Stephan Schuh (http://www.imdb.com/name/nm0775939/).

1 Scope

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.

2 SHOODAK Version 1

2.1 Technical Details

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):

Shoodak01.png

For red pixels this creates following 8 random read out patterns (each pattern contains 1x red, 1x blue, 1x green pixel):

Shoodak02.png

For green pixels this creates following 4 random read out patterns (each pattern contains 1x red, 1x blue, 1x green pixel):

Shoodak03.png

2.2 Preventing Zipper Artifacts

A frequent problem with bi-linear debayering are so-called zipper artifacts. Visually this causes edges and lines with a zipper or chessboard look:

DeBayering2.jpg

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:

Shoodak04.png

2.3 Example: Math for 1 Pixel

One random selection could look like this (parameters: 75% bi-linear, 25% random, 0% zipper reduction):

Shoodak05.png

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

2.4 Open / Answered Questions (Preliminary)

So far SHOODAK V1 was only tested with raw footage recorded with cameras without Opticak Low Pass Filter (OLPF).

The big questions are:

  • Does it provide any noticeable difference to bilinear debayering (with/without OLPF)?
  • if there is a noticeable difference, is it an improvement?

Preliminary conclusions (from footage without OLPF) so far are:

  1. SHOODAK V1 debayering is on purpose rather primitive but even with fine details creates a better grain than algorithmns that are known to do a lot of edge sharpening (eg. AHD)
  2. SHOODAK V1 creates less artifacts than some of the known but not too great debayering algorithms.
  3. Moire is a problem with fine structure (due to missing OLPF) but SHOODAK V1 does not help improve the situation. Davinci Resolves internal debayering does a better job with getting rid of moire.

3 SHOODAK Version 2

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.

Shoodak07.png

4 References