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
sam
a11f92ff95
* blur.c: support for greyscale images.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2634 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
eea9f9b829
* pixels.c: start supporting grayscale images.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2633 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
f687640a09
* codec.c: bump Imlib2 and OpenCV priorities over SDL.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2632 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
af15db52cb
* opencv.c: bring the OpenCV codec up to date.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2631 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
0d8f01566b
* pixels.c: add support for 24-bpp BGR format.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2630 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
8953c91d6b
* pipi.c: reimplement pipi_new() without relying on the underlying codec
library, so we can have several or none of them at some time.
* sdl.c imlib.c: allow to save images that weren't created using the
current codec.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2629 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
732f6b2335
* configure.ac: fix the OpenCV detection by using pkg-config.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2628 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
3d86c2f45a
* Start shipping unit tests. The first one checks that converting an
8-bit per channel picture to float32 then back again does not change
the image.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2621 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
caba836e5d
* pixels.c: clamp pixels in the float32 -> rgba32 conversion to avoid
artifacts.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2620 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
877e7b21a9
* filter/blur.c: avoid annoying side effects with very small or negative
blur radii.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2619 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
ea38654c88
* filter/blur.c: minor optimisation in the kernel generation.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2618 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
4a857277a7
* blur.c: support for variable blur radius and Gaussian offset.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2617 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
e15f20a316
* pixels.c: add Floyd-Steinberg dithering to the float32 -> rgba32
conversion.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2616 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
0105b6f3b6
* pixels.c: speed up the RGBA32 -> float32 conversion, using a simple LUT.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2609 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
42af43ad99
* blur.c: separated blur; it's now incredibly faster.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2608 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
19874f4650
* Free surfaces allocated by pipi_getpixels() in pipi_free().
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2607 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
af0c7f52fb
* blur.c: fix overflow errors.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2606 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
31328a14aa
* Big API reorganisation. Now libpipi can transparently convert between
colour spaces for a given image. For instance, if pipi_gaussian_blur is
applied to a 32-bpp image, it is automatically converted to gamma-corrected
32-bit floats beforehands, then converted back to normal.
* TODO: clipping, regions of interest, more formats, getpixel macros...
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2605 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
60dea0643d
* Add a blur example.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2604 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
7d147f3576
* Test implementation of Gaussian blurring. It's awfully slow and does not
use the separation property, but it's just for a test.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2603 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
1871465283
* pixels.c: do not return a white pixel when calling getpixel() outside
the image boundaries; instead, return the closest pixel in the image.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2602 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago