qc-usb driver algorithm comparison

Here are some images taken with VV6410 sensor at daylight conditions. Three different algorithms are used for converting Bayer data into RGB, and the last algorithm with two different sharpness settings.

First here is the original non-interpolated algorithm from the original qce-ga driver. This is very bad quality, and even the fastest algorithm (without any interpolation) in qc-usb gives much better image. Each "pixel" appears as two pixels wide, so effectively the horizontal resolution is halved.

Here is the basic interpolative algorithm, which bilinearly interpolates from neighboring pixels of the same color the pixel values. The image is fuzzy and unsharp and has color ripples, but is much better than the original algorithm. It corresponds to "best" setting in qc-usb 0.6.0 and older versions and to "bilinear" in newer versions.

Here is the first advanced algorithm, as used in qc-usb 0.6.1. It is called "gptm" for hopefully unobvious reasons. The algorithm has a tunable parameter "sharpness": when set to zero, it corresponds to bilinear interpolation. This image is taken with the default setting.

Here is again the "gptm" algorithm, but with sharper settings. It has some color rippling, but not as bad as bilinear interpolation. Unfortunately, if the original data is noisy (low lighting), the picture gets quickly poor at sharper settings. The regular "dither" pattern most visible in the lower right corner doesn't come from the algorithm, it just makes it more visible.

Todo: even better algorithms. "gptm" is very good compared to its computation requirements, but especially for still images even better methods would be nice. Something on par with Kimmel's method, at least :)