Parcourir la source

Improve the median filter performance.

git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@3563 92316355-f0b4-4df1-b90c-862c8a59935f
master
sam il y a 15 ans
Parent
révision
3f6424fb1e
1 fichiers modifiés avec 7 ajouts et 1 suppressions
  1. +7
    -1
      pipi/filter/median.c

+ 7
- 1
pipi/filter/median.c Voir le fichier

@@ -28,7 +28,13 @@


static int cmpint(void const *i1, void const *i2) static int cmpint(void const *i1, void const *i2)
{ {
return *(double const *)i1 < *(double const *)i2;
/* On Linux amd64, this is 20 to 30 % faster than using a real
* comparison (which wouldn't work on Windows since it expects both
* negative and positive values), a ternary operator, or floats instead
* of doubles. */
union { int32_t i; double d; } u;
u.d = *(double const *)i1 - *(double const *)i2;
return u.i;
} }


pipi_image_t *pipi_median(pipi_image_t *src, int radius) pipi_image_t *pipi_median(pipi_image_t *src, int radius)


Chargement…
Annuler
Enregistrer