libvips/TODO

298 lines
6.5 KiB
Plaintext
Raw Normal View History

- how curious
$ vips jpegload wtc.jpg x.v --vips-progress
** DEBUG_FATAL
vips x.v: 2 threads, 128 x 128 tiles, groups of 256 scanlines
vips /tmp/vips-1-2UERGW.v: 2 threads, 128 x 128 tiles, groups of 256 scanlines
vips /tmp/vips-1-2UERGW.v: done in 2s
vips x.v: done in 3s
memory: high-water mark 77.46 MB
2012-07-09 10:03:12 +02:00
- test "rs" mode
can't see the code for "rd" mode?
2012-07-09 10:03:12 +02:00
or "rw" mode either?
2012-07-09 10:03:12 +02:00
- update "how it works" to note we are now fully-functional ... there's
vips_image_write() now to create a sink
- im_jpeg2vips() etc, currently use vips_call() and therefore have an extra
_write() ... this means that
vips im_jpeg2vips huge.jpg x.v
decompresses to disc, then vips_copy()s to x.v
2012-07-09 10:03:12 +02:00
instead, they could be built on top of VipsFormat and use the compat layer
there
check nip2: is it really only decompressing large images once?
blocking bugs
=============
2012-02-15 16:47:43 +01:00
- none!
2012-01-16 15:54:29 +01:00
mosaic
======
2012-01-16 15:54:29 +01:00
- balance should use new meta stuff
2012-01-16 15:54:29 +01:00
- histogram balance option?
2011-08-15 19:27:43 +02:00
resample
========
2012-01-02 12:06:04 +01:00
- check mosaic1, global_balance, similarity etc. use of im__affine
how can we move them to im_affinei ?
- perspective transform with a matrix ... base it on the Lenz transformer, but
partial
2011-12-31 19:22:42 +01:00
foreign
=======
2011-12-31 19:22:42 +01:00
2012-03-13 15:22:13 +01:00
- magick2vips should spot ICC profiles and attach them as meta
- interlaced jpg needs massive memory, we should have two jpg read modes, like
png
2011-12-31 19:22:42 +01:00
- add more sequential mode readers
2011-06-20 19:00:01 +02:00
$ grep -l write_line *.c
csv.c
matlab.c
openexr2vips.c
ppm.c
radiance.c
2011-12-23 16:20:54 +01:00
- foreign docs come up as "VipsForeignSave", annoying, why?
2011-12-22 18:48:50 +01:00
- add nifti support
2011-12-21 13:08:29 +01:00
http://niftilib.sourceforge.net/
2011-12-12 12:58:36 +01:00
- support planar tiff
2011-12-12 12:58:36 +01:00
- add matlab write
2011-12-12 12:58:36 +01:00
- im_exr2vips can now use c++ api
see TODO notes in openexr read (though they all need more openexr C API)
consider openexr write
- magick should set some header field for n_frames and frame_height? see also
analyze
2011-12-12 12:58:36 +01:00
- im_csv2vips() could use "-" for filename to mean stdin
2011-12-12 12:58:36 +01:00
but then we'd have to read to a malloced buffer of some sort rather than an
image, since we might need to grow it during the read, since we couldn't
then seek
2012-01-13 14:15:56 +01:00
2011-12-12 12:58:36 +01:00
packaging
=========
- test _O_TEMPORARY thing on Windows
- do we bundle "convert" in the OS X / win32 builds? if we don't we
should
convolution
===========
- revisit orc conv
use an 8.8 accumulator ... build the scale into the 8.8 coeffs ... no div at
the end, just a shift
need 8 x 8.8 -> 8.8 for each coeff though
- im_conv()/im_morph() could have more than 10 programs? try 20 and see if we
still have a speedup
make a base class for vector area operations with a matrix with three vfuncs
for init / generate code for one element / end and a gslist of programs, use
that as the base for morph and conv
wait for vipsobject for this
colour
======
- lab [100,0,0] -> srgb [255, 255, 254]? how odd
- use D65 in cmsCreateLab4Profile() ? not sure
arithmetic
==========
- avg/dev etc. should uncode images? eg. labq2lab etc.
how about ifthenelse?
2011-11-01 13:31:59 +01:00
- bandalike: consider RGB + RGBA ... we should bandup by adding a black band
2011-10-25 16:44:54 +02:00
2011-11-01 13:31:59 +01:00
(or white?? unclear)
2011-10-25 16:44:54 +02:00
2011-11-01 13:31:59 +01:00
not clear if this is a good idea ... eg. when we upband a 1 band to a 2
band, should we duplicate the 1 band or add black?
2011-10-25 16:44:54 +02:00
- HAVE_HYPOT could define a hypot() macro?
- fix a better NaN policy
should we not generate images containing NaN (eg. divide tries to avoid /0),
or should vips_max() etc. try to avoid NaN in images (eg. vips_max() takes a
lot a care to skip NaN, though vips_stats() does not)?
iofuncs
=======
2011-10-25 16:44:54 +02:00
- we have VipsArrayObject and also vips_object_local_array()
2011-10-20 12:22:49 +02:00
can we make one use the other?
2011-09-20 15:52:02 +02:00
- need vips_image_invalidate_area()
- look at libpeas for plugin support
2011-09-20 15:52:02 +02:00
http://live.gnome.org/Libpeas
- how about
2011-10-11 15:30:44 +02:00
vips max add[babe.jpg,babe2.jpg]
2011-10-11 15:30:44 +02:00
does that make any sense?
2011-10-11 15:30:44 +02:00
vips copy add[babe.jpg,add[babe2.jpg,babe3.jpg]] sum.v
2011-10-11 15:30:44 +02:00
perhaps use curly brackets for code?
2011-10-11 15:30:44 +02:00
vips max add{babe.jpg,babe2.jpg}
2011-10-11 15:30:44 +02:00
no brackets or square brackets for options
- transform_g_string_array_image() can't handle quoted strings, so filenames
with spaces will break
is there an easy fix? can we reuse code from the csv parser?
the csv parser just parses FILE* streams, we'd need to break it out
- note member free stuff in vipsobject docs
2011-11-06 12:54:52 +01:00
should boxed get freed in finalise rather than dispose?
2011-11-06 12:54:52 +01:00
vipsobject has few docs atm :(
- vips_object_set_argument_from_string() needs more arg types
must be some way to make this more automatic
2011-08-26 11:15:39 +02:00
- generate the code for vips_add() etc. automatically? it might be
nice to have them all in one place at least
2011-08-26 11:15:39 +02:00
- what does G_UNLIKELY() do? can we use it?
2011-08-26 11:15:39 +02:00
- look into G_GNUC_DEPRECATED for back compat in vips8
2011-08-26 11:15:39 +02:00
- should im_rwcheck() copy to disc?
2011-08-26 11:15:39 +02:00
maybe im_rwcheck_disc() copies to im->filename and maps that
2011-05-25 09:51:19 +02:00
rather awkward to do atm with the way check.c is structured
2011-05-25 09:51:19 +02:00
2011-05-16 18:34:00 +02:00
swig
====
2011-05-16 18:34:00 +02:00
- swig is not wrapping im_project() correctly ... returns an extra VImage via
a param
2011-05-23 22:27:33 +02:00
- doc strings would be nice, read the SWIG notes on this
new bindings
============
- new binding is still missing constants
how do boxed types work? confusing
we need to be able to make a VipsArrayDouble
- Vips.Image has members like chain, __subclasshook__ etc etc, are we
really subclassing it correctly?
2011-05-09 19:28:21 +02:00
- add __add__ etc overloads
2011-05-09 19:28:21 +02:00
freq_filt
=========
2011-05-09 19:28:21 +02:00
- fft with odd width or height is broken ... DC ends up in the wrong place
2011-05-09 19:28:21 +02:00
libvipsCC
=========
2011-05-09 19:28:21 +02:00
- need new C++ API
2011-05-09 19:28:21 +02:00
- need an im_init_world() for C++ which does cmd-line args too, so C++ progs
can get --vips-progress and stuff automatically
2011-05-09 19:28:21 +02:00
tools
=====
- could spot "copy" and turn on seq mode automatically?
perhaps there should be something on operations to indicate seq-ability
2011-02-03 13:52:14 +01:00
- need a way to make the vips.1 etc. man pages
gtk has things like docs/reference/gtk/gtk-update-icon-cache.xml and man
pages are made from that with xslt
- get rid of a lot of the command-line programs, who wants to write a man page
for batch_image_convert etc yuk
- can we make man pages for the API as well? probably not from googling a bit
2011-02-03 13:52:14 +01:00
2010-01-25 15:23:30 +01:00
- rename header, edvips as vipsheader, vipsedit
maybe have back compat links?
2008-12-19 13:32:46 +01:00
new operations
==============
2009-01-05 17:45:39 +01:00
- bilateral filtering, see:
http://en.wikipedia.org/wiki/Bilateral_filter
http://www.shellandslate.com/fastmedian.html
2010-09-28 18:20:24 +02:00
http://people.csail.mit.edu/sparis/bf_course/
2009-03-20 00:43:52 +01:00
also a mail from Martin Breidt has links to several fast free C
implementations
- http://en.wikipedia.org/wiki/Otsu%27s_method
2007-08-29 18:23:50 +02:00
- non-linear sharpen: replace each pixel by the lightest or darkest neighbour
depending on which is closer in value