利用者:Sobotka/Cubic B-Spline Scaling Algorithm

提供: wiki
移動先: 案内検索

What is it?

Cubic B-Spline with prefilter is an algorithm for delivering high quality image scaling. It applies a prefilter to the image to assert high fidelity scaling.

Who contributed to this?

Matthias Fauconneau created the original proof of principle at https://gitorious.org/cubic-b-spline-interpolator. Troy James Sobotka merely pushed some numbers around and made it work within Blender.

Where is the official patch?

http://projects.blender.org/tracker/index.php?func=detail&aid=30411&group_id=9&atid=127

Why do I care? Are there any samples of the algorithm?

Cubic B-Spline with prefilter generates extremely high quality scaling. Images speak louder than words in this instance. All samples are taking from within Blender. The scale is 8x the source of a 512x512 familiar version of Lenna at various zoom levels to showcase the quality of the sampling. JPG compression was used on the samples, but zooming in should reveal sufficient quality for analysis.

What is the difference with other scaling algorithms?

Most scaling algorithms operate in the frequency domain. As a general rule, the cubic variety tend to head toward over sharpening or over blurring from the source.

This approach essentially applies a correlated series of values that compliment a basic cubic scale.

Artistically, the resulting image has a vastly more organic feel than other algorithms while maintaining the overall perceptual sharpness of the original image.

The following video offers a qualitative difference comparison between nearest, linear, cubic, and cubic with prefilter. It is full HD, so if desirable, open it in a separate window to view.

The Sample Image

A 512x512 pixel version of Lenna.

Lenna.png

Nearest

Patch-nearest.jpg

Linear

Patch-bilinear.jpg

Cubic B-Spline

Patch-bicubic.jpg

Cubic B-Spline with Prefilter

Patch-cubicbspline.jpg