sam
6fb5354eff
* minmax.c: add pipi_min() and pipi_max() as another way to combine two
images.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2706 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
9bd6b555f9
* mean.c: implement pipi_mean() to compute a mean image.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2705 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
31fd250bd2
* Support --autocontrast in pipi.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2704 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
7f3e08d021
* convolution.c: support for wrap-around in convolutions.
* pipi.c: add the "--wrap" flag to tell libpipi that a given image wraps
around.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2703 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
103e0629a2
* pipi.c: implement the "--gray" flag for grayscale conversion.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2702 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
ec187df115
* convolution_template.h: split convolution routines into separate functions
for each pixel format.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2701 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
25cdf35a86
* jajuni.c: add Jarvis-Judice-Ninke dithering. It's a Floyd-Steinberg-like
error diffusion method that has fewer high resolution structural artifacts
at the expense of resolution.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2700 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
b5500986b2
* floydsteinberg.c: minor optimisation in the FStein error propagation.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2699 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
b658564a1f
* context.c: fix an old bug that was incorrectly rounding down blur values.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2698 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
ee6e43cf81
* stock.c: generate images with random noise.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2697 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
eb9a270380
* pipi_dither_ordered() now takes two arguments; any image can be used as
the ordered dithering matrix. To get the old behaviour, use:
pipi image.png pipi:bayer8 --dither ordered out.png
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2696 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
3014994c61
* codec.c: support for stock images in pipi_load().
* stock.c: start working on stock image generation; for instance:
pipi pipi:bayer64 -o image.png
will generate a 64x64 Bayer dithering pattern and save it to image.png.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2695 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
d6b8cca4ec
* context.c: implement various dithering commands and Gaussian blur.
* pipi.c: add "--blur" and "--dither" commandline options.
* blur.c dither.c: remove these examples, pipi.c works a lot better:
pipi src.png --blur 10 dest.png
pipi src.png --dither dbs dest.png
(and of course combinations are possible)
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2694 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
0549f43287
* Start working on "pipi", a command-line libpipi tool. It will be similar
to convert, display, mogrify, animate etc. It can already convert between
image formats (eg. "pipi src.png -o dest.jpeg").
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2693 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
0f3943d0fe
* Add functions that handle a stack-based processing queue.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2692 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
1ff729fd7b
* convolution.c: fix a small memory leak in the convolution filter.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2684 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
77ec441434
* blur.c: implement box blur; currently runs in O(n) but we could make it
O(1) trivially.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2681 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
b7c2d1f847
* autocontrast.c: simple autocontrast filter; does not work very well.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2680 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
c269c219b2
* Get rid of test.c, it was no longer useful anyway.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2679 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
jylam
baa61a9f6d
* Handle alpha layer in floodfill (but don't make it conditionnal to the algorithm)
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2678 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
jylam
290e151913
* First shot of a floodfiller (both u32 and float, 4 neighbours)
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2676 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
53268650a7
* dbs.c: generate the initial halftone using random dithering instead of
Floyd-Steinberg in order to avoid the energy level getting locally stuck
around error diffusion structure artifacts.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2672 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
0eda956bfc
* random.c: implement random dithering using a deterministic pseudo-RNG.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2671 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
18dd51e1a5
* Dithering algorithms no longer modify the original image.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2670 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
2dc8bb35dd
* pipi.c: fix a memory leak caused by empty picture having codec_format
set to zero (and clashing with a real image format).
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2669 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
66f9ce5ea4
* pipi.c: implement pipi_copy().
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2668 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
a17c6753e3
* pixels.c: store byte length and bits-per-pixel value in the pipi_pixels_t
structure.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2667 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
41efcdecc0
* Prefix dithering functions with _dither_ to avoid namespace cluttering.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2666 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
6a3309663e
* ordered.c: implement Bayer dithering (pretty trivial).
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2665 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
a6dcd80490
* dbs.c: optimise DBS by ignoring 16x16 cells that had no pixel changes for
the last two iterations.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2664 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
2a3c7ca990
* dbs.c: improve the DBS human visual system kernel by adding two Gaussian
kernels.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2663 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
bf31390d1e
* sharpen.c: add a sharpen filter example, using our generic convolution
routine. Note that it is not the "real" sharpen which should be built
on top of a gaussian kernel.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2662 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
8c4591f1d9
* blur.c: remove the blurring code and use our generic convolution
routine, which correctly recognises the Gaussian kernel as a separable
filter. As a result, it is now 50% faster because the normalisation
occurs at kernel build time.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2661 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
03ca8dc76d
* convolution.c: automatically detect when a convolution filter is separable
and switch algorithms to speed up processing.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2660 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
c587c29021
* blur.c: fix the blur example’s argument checking.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2659 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
89f35cb8fd
* convolution.c: generic convolution method. Does not take advantage of
separable kernels yet.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2658 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
870828bc87
* edd.c: output MSD instead of RMSD in the displacement computation.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2657 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
87f8e922ab
* Error diffusion methods now support either raster or serpentine scan.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2656 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
99d8af784e
* pixels.c: support more conversion combinations.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2655 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
302ce37f8e
* ostromoukhov.c: Ostromoukhov's simple error diffusion algorithm.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2654 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
2182fdfdbf
* floydsteinberg.c: perform Floyd-Steinberg dithering on a serpentine path.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2653 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
3e575ba28a
* dither.c: add an example program for dithering methods.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2652 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
628c2618da
* dbs.c: new dithering function: Direct Binary Search. One of the best
dithering methods as of today, though extremely slow.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2651 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
eaad4db6f9
* measure.c: there is now pipi_measure_msd in addition to pipi_measure_rmsd.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2650 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
18fd8276bd
* edd.c: output E_fast as well.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2647 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
5974ab95c5
* edd.c: example program that computes the Floyd-Steinberg displacement,
about twice as fast as the original code in research/2008-displacement.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2644 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
4a278923ff
* blur.c: adapt the kernel size to large values of dx and/or dy.
* blur.c: fix the dx/dy sign meaning.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2643 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
1408cff41d
* Add Floyd-Steinberg grayscale dithering.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2637 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
36da8b05dd
* pixels.c: fix a typo in the dithering method that could cause crashes.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2636 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
9a536afd4f
* measure.c: started writing error/measure functions. First one is RMSD.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2635 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago