GNOME Bugzilla – Bug 588180
Create Upsharp sampler for GEGL
Last modified: 2010-02-18 14:43:33 UTC
Create Upsharp sampler for GEGL. This is a name change from the original nohalo1 (formerly sharp) sampler.
Created attachment 138137 [details] Patch implementing upsharp sampler Patch implementing upsharp sampler. This is a faster replacement for the original sharp sampler.
Created attachment 138138 [details] time results of GEGL samplers This compares the execution time of each sampler in 4 test cases: 1) x scaled by factor of 1.19, y scaled by factor of 0.97 2) both x and y scaled by factor of 4.19 3) repeat first test on very large image (3600x3600) 4) 7 degree rotation
Created attachment 138139 [details] first test case: sample xml file Example file for the first test case. Note: specify your own image in the file
Created attachment 138140 [details] second test case: sample xml file Example xml file for second test case. Note: specify your own image in the xml file
Created attachment 138141 [details] fourth test case: sample xml file Sample xml file for fourth test case (rotate). Note: select your own image when using this file.
Created attachment 138356 [details] Patch implementing upsharp sampler Note: Use gfloat instead of gdouble whenever sensible.
Created attachment 138920 [details] Upsharpfast patch implementation Changes to fast_minmod and pre-computations Also made naming changes so that internally the sampler is called nohalo1 and externally it is called upsharpfast.
Created attachment 138925 [details] Replacing empty patch, this is the upsharpfast patch.
Created attachment 139258 [details] New patch fixing minmod so that the images display correctly -Fixed minmod so that it functions correctly -Changed naming convention so that it is consistent with GEGL -Added upsharpfast to list of samplers in affine.c
Created attachment 139588 [details] better minmod (consistent with forward branch likely)
Created attachment 139589 [details] better minmod (consistent with forward branch likely)
Created attachment 139877 [details] New upsharpfast (MP-quadratic method)
Created attachment 140583 [details] Upsharp sampler with code duplication removal (added mp_quadratic function) Added mp_quadratic function to reduce large code duplication as several variables were calculated using identical steps.
Created attachment 141176 [details] New patch for upsharp Cosmetic changes so that method declaration and implementation in gegl-sampler-upsharp.c are identical.
This patch is ready to commit. Timings (somewhat irrelevant given that Chantal Racette found a major algorithm simplification): Colour original is a 325x325 png (the "map") except for the downsampling tests for which the original is a 1680x1680 png (the "baby") reduce (downsample) a lot (gegl:scale with x=y=.061): bicubic: 1.455s downsharp: 1.730s downsize: 1.731s downsmooth: 2.347s linear: 1.376s upsharp: 1.412s upsize: 1.418s upsmooth: 1.417s reduce (gegl:scale with x=y=.53): bicubic: 17.672s downsharp: 17.573s downsize: 17.937s downsmooth: 17.351s linear: 17.276s upsharp: 18.263s upsize: 18.139s upsmooth: 18.284s rotate (gegl:rotate with degrees=7): bicubic: 2.054s downsharp: 2.013s downsize: 2.095s downsmooth: 2.042s linear: 1.910s upsharp: 2.081s upsize: 2.084s upsmooth: 2.123s enlarge (upsample) (gegl:scale with x=y=1.81): bicubic: 2.003s downsharp: 1.933s downsize: 1.892s downsmooth: 1.895s linear: 1.618s upsharp: 2.052s upsize: 2.028s upsmooth: 2.147s enlarge a lot (gegl:scale with x=y=5.19): bicubic: 14.526s downsharp: 13.731s downsize: 13.744s downsmooth: 13.753s linear: 11.767s upsharp: 15.117s upsize: 14.990s upsmooth: 15.892s
commit 130c793c70195cf900017f74505b863a3c29a6d5 Author: Adam Turcotte <adam.turcotte@gmail.com> Date: Fri Jan 15 17:33:13 2010 -0500 Add new samplers from gsoc