Hello Alexandre Prokoudine:
Here is a suggested project for the possible "investment in gimp"
(which includes gegl, if I understand correctly).
(Note: I do not want to highjack the investment. If the following is
not appropriate, just let me know, and I will back off.)
It turns out that I recently discovered what should be a very good
method for resampling tailored for transformations in which
downsampling is a more representative occurence than upsampling.
I already have experience programming within GEGL so I am comfortable
with this environment (to wit, the YAFR "scale" method, which is meant
for transformations in which upsampling is more typical of the local
situation than downsampling).
I do not need the money myself (I am a prof). However, if some,
possibly even token, amount could be sent in the way of one particular
bright student I have in mind, I suspect that he could take on the
project in the framework of a Summer project in May 2009 or a masters
thesis starting in September 2009---although the work could start
earlier.
(This student and I programmed two, fairly different, gimp image
enlargment plugins, which we will put in the repository when we have
merged them (currently, he's busy with courses, and I'm busy with a
newborn).)
What the entire project could be:
1) Program a novel resampling method. This resampling method will be
at least 7 times faster than (exact area) box filtering when the
downscaling ratios are high and the aspect ratio is approximately
preserved, and will boil down to bilinear when locally the
transformation is "upsampling." In terms of blur and aliasing, it
will be about halfway between nearest neighbour and (exact areaa) box
filtering.
2) Program specialized, even faster, versions for for image resizing
(knowing that one resizes, as opposed to performing an arbitrary
transformation, affine or not, allows one to access the data
efficiently and fix things so that coefficients are computed only
once).
3) Explore various speed-up methods for, esp., smaller integer data
types, including fixed point arithmetic and compile time basis
function sampling and storage (the vips image processing package makes
smart use of this).
4) Slightly different project: Program a new method tailored for
"typically upsampling" transformations. Unlike the current YAFR, this
method would be co-monotone, co-convex and continuously
differentiable. In particular, unlike the current gegl YAFR, it would
not add any halo to images. Downside: More expensive than the current
gegl YAFR, and less "sharpening."
5) Yet another possible add-on: Program a novel image sharpening
method based on discrete Hodge star operators.
Let me know what you think,
Nicolas Robidoux
Universite Laurentienne/Laurentian University