added Chantal and Adam to AUTHORS and switched to faster version of lbb and nohalo resamplers
This commit is contained in:
parent
7b8f0f7324
commit
e4008d3f84
4
AUTHORS
4
AUTHORS
@ -18,6 +18,6 @@ system. Dennis Lubert cleaned up the C++ API.
|
||||
Jose Manuel Menendez Garcia, Javier Alejandre Arenas, and Juan Torres Arjona
|
||||
contributed the tmake VIPS.DLL build system and the MSVC project files.
|
||||
|
||||
Nicolas Robidoux helped design the VipsInterpolate class and, with
|
||||
John Cupitt, Chantal Racette and Adam Turcotte, contributed the novel
|
||||
Nicolas Robidoux helped John Cupitt design the VipsInterpolate class
|
||||
and, with Chantal Racette and Adam Turcotte, contributed the novel
|
||||
LBB, Nohalo and VSQBS interpolators.
|
||||
|
@ -52,20 +52,22 @@
|
||||
* compute. We recommend this as the default.
|
||||
*
|
||||
* A "sharp" version, which shows a little more staircasing and a
|
||||
* little less haloing, and which is a little cheaper (it uses 6
|
||||
* less comparisons and 12 less "? :").
|
||||
* little less haloing, which is a little cheaper (it uses 6 less
|
||||
* comparisons and 12 less "? :"), and which appears to lead to less
|
||||
* "zebra striping" when two diagonal interfaces are close to each
|
||||
* other.
|
||||
*
|
||||
* The only difference between the two is that the "soft" versions
|
||||
* uses local minima and maxima computed over 3x3 square blocks, and
|
||||
* the "sharp" version uses local minima and maxima computed over 3x3
|
||||
* crosses.
|
||||
*
|
||||
* If you want to use the "sharp" (cheaper) version, uncomment the
|
||||
* following three pre-processor code lines:
|
||||
* If you want to use the "soft" (more expensive) version, comment out
|
||||
* the following three pre-processor code lines:
|
||||
*/
|
||||
// #ifndef __LBB_CHEAP_H__
|
||||
// #define __LBB_CHEAP_H__
|
||||
// #endif
|
||||
#ifndef __LBB_CHEAP_H__
|
||||
#define __LBB_CHEAP_H__
|
||||
#endif
|
||||
|
||||
/*
|
||||
* LBB (Locally Bounded Bicubic) is a high quality nonlinear variant
|
||||
@ -326,80 +328,6 @@ lbbicubic( const double c00,
|
||||
const double max01 = LBB_MAX( M9, M11 );
|
||||
const double min11 = LBB_MIN( m9, m13 );
|
||||
const double max11 = LBB_MAX( M9, M13 );
|
||||
/*
|
||||
* Another version of the same computation:
|
||||
*/
|
||||
// const double m1 = (dos_two <= dos_thr) ? dos_two : dos_thr ;
|
||||
// const double M1 = (dos_two <= dos_thr) ? dos_thr : dos_two ;
|
||||
// const double m2 = (tre_two <= tre_thr) ? tre_two : tre_thr ;
|
||||
// const double M2 = (tre_two <= tre_thr) ? tre_thr : tre_two ;
|
||||
// const double m4 = (qua_two <= qua_thr) ? qua_two : qua_thr ;
|
||||
// const double M4 = (qua_two <= qua_thr) ? qua_thr : qua_two ;
|
||||
// const double m3 = (uno_two <= uno_thr) ? uno_two : uno_thr ;
|
||||
// const double M3 = (uno_two <= uno_thr) ? uno_thr : uno_two ;
|
||||
// const double m5 = LBB_MIN( m1, m2 );
|
||||
// const double M5 = LBB_MAX( M1, M2 );
|
||||
// const double m6 = (dos_one <= tre_one) ? dos_one : tre_one ;
|
||||
// const double M6 = (dos_one <= tre_one) ? tre_one : dos_one ;
|
||||
// const double m7 = (dos_fou <= tre_fou) ? dos_fou : tre_fou ;
|
||||
// const double M7 = (dos_fou <= tre_fou) ? tre_fou : dos_fou ;
|
||||
// const double m8 = LBB_MIN( m5, m3 );
|
||||
// const double M8 = LBB_MAX( M5, M3 );
|
||||
// const double m9 = LBB_MIN( m5, m4 );
|
||||
// const double M9 = LBB_MAX( M5, M4 );
|
||||
// const double m11 = LBB_MIN( m6, qua_one );
|
||||
// const double M11 = LBB_MAX( M6, qua_one );
|
||||
// const double m10 = LBB_MIN( m6, uno_one );
|
||||
// const double M10 = LBB_MAX( M6, uno_one );
|
||||
// const double m12 = LBB_MIN( m7, uno_fou );
|
||||
// const double M12 = LBB_MAX( M7, uno_fou );
|
||||
// const double m13 = LBB_MIN( m7, qua_fou );
|
||||
// const double M13 = LBB_MAX( M7, qua_fou );
|
||||
// const double min00 = LBB_MIN( m8, m10 );
|
||||
// const double max00 = LBB_MAX( M8, M10 );
|
||||
// const double min10 = LBB_MIN( m8, m12 );
|
||||
// const double max10 = LBB_MAX( M8, M12 );
|
||||
// const double min01 = LBB_MIN( m9, m11 );
|
||||
// const double max01 = LBB_MAX( M9, M11 );
|
||||
// const double min11 = LBB_MIN( m9, m13 );
|
||||
// const double max11 = LBB_MAX( M9, M13 );
|
||||
/*
|
||||
* Yet another version:
|
||||
*/
|
||||
// const double m1 = (dos_two <= dos_thr) ? dos_two : dos_thr ;
|
||||
// const double M1 = (dos_two <= dos_thr) ? dos_thr : dos_two ;
|
||||
// const double m2 = (tre_two <= tre_thr) ? tre_two : tre_thr ;
|
||||
// const double M2 = (tre_two <= tre_thr) ? tre_thr : tre_two ;
|
||||
// const double m3 = (uno_two <= uno_thr) ? uno_two : uno_thr ;
|
||||
// const double M3 = (uno_two <= uno_thr) ? uno_thr : uno_two ;
|
||||
// const double m4 = (qua_two <= qua_thr) ? qua_two : qua_thr ;
|
||||
// const double M4 = (qua_two <= qua_thr) ? qua_thr : qua_two ;
|
||||
// const double m5 = LBB_MIN( m1, m2 );
|
||||
// const double M5 = LBB_MAX( M1, M2 );
|
||||
// const double m6 = (dos_one <= tre_one) ? dos_one : tre_one ;
|
||||
// const double M6 = (dos_one <= tre_one) ? tre_one : dos_one ;
|
||||
// const double m7 = (dos_fou <= tre_fou) ? dos_fou : tre_fou ;
|
||||
// const double M7 = (dos_fou <= tre_fou) ? tre_fou : dos_fou ;
|
||||
// const double m8 = LBB_MIN( m5, m3 );
|
||||
// const double M8 = LBB_MAX( M5, M3 );
|
||||
// const double m9 = LBB_MIN( m5, m4 );
|
||||
// const double M9 = LBB_MAX( M5, M4 );
|
||||
// const double m10 = LBB_MIN( m6, uno_one );
|
||||
// const double M10 = LBB_MAX( M6, uno_one );
|
||||
// const double m11 = LBB_MIN( m6, qua_one );
|
||||
// const double M11 = LBB_MAX( M6, qua_one );
|
||||
// const double m12 = LBB_MIN( m7, uno_fou );
|
||||
// const double M12 = LBB_MAX( M7, uno_fou );
|
||||
// const double m13 = LBB_MIN( m7, qua_fou );
|
||||
// const double M13 = LBB_MAX( M7, qua_fou );
|
||||
// const double min00 = LBB_MIN( m8, m10 );
|
||||
// const double max00 = LBB_MAX( M8, M10 );
|
||||
// const double min01 = LBB_MIN( m9, m11 );
|
||||
// const double max01 = LBB_MAX( M9, M11 );
|
||||
// const double min10 = LBB_MIN( m8, m12 );
|
||||
// const double max10 = LBB_MAX( M8, M12 );
|
||||
// const double min11 = LBB_MIN( m9, m13 );
|
||||
// const double max11 = LBB_MAX( M9, M13 );
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -98,9 +98,9 @@
|
||||
* If you want to use the "sharp" (cheaper) version, uncomment the
|
||||
* following three pre-processor code lines:
|
||||
*/
|
||||
// #ifndef __NOHALO_CHEAP_H__
|
||||
// #define __NOHALO_CHEAP_H__
|
||||
// #endif
|
||||
#ifndef __NOHALO_CHEAP_H__
|
||||
#define __NOHALO_CHEAP_H__
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ================
|
||||
|
Loading…
Reference in New Issue
Block a user