babl.git
5 years agopost release version bump
Øyvind Kolås [Wed, 27 May 2020 03:19:08 +0000 (05:19 +0200)]
post release version bump

5 years agorelease babl-0.1.76
Øyvind Kolås [Wed, 27 May 2020 02:46:49 +0000 (04:46 +0200)]
release babl-0.1.76

5 years agoNEWS: update
Øyvind Kolås [Wed, 27 May 2020 01:58:39 +0000 (03:58 +0200)]
NEWS: update

5 years agotests: add test that creates the base fishes expected by GIMP
Øyvind Kolås [Thu, 14 May 2020 15:55:05 +0000 (17:55 +0200)]
tests: add test that creates the base fishes expected by GIMP

5 years agobabl: extend BABL_DEBUG_MISSING output
Øyvind Kolås [Sun, 24 May 2020 18:01:54 +0000 (20:01 +0200)]
babl: extend BABL_DEBUG_MISSING output

Report lengths of all searched for fishes.

5 years agobabl: improve debug output for BABL_DEBUG_MISSING
Øyvind Kolås [Sun, 24 May 2020 02:53:23 +0000 (04:53 +0200)]
babl: improve debug output for BABL_DEBUG_MISSING

Report both missing fishes and fishes that occur at the maximum search
depth.

5 years agobabl: increase precision of error included in babl-fishes cache
Øyvind Kolås [Sun, 24 May 2020 02:04:15 +0000 (04:04 +0200)]
babl: increase precision of error included in babl-fishes cache

5 years agobabl: progressively increase search depth from 2 to 4
Øyvind Kolås [Sun, 24 May 2020 01:15:07 +0000 (03:15 +0200)]
babl: progressively increase search depth from 2 to 4

Follow-on from previous commit, the specific paths looked for
that are longer than 2 involving formats with spaces are 3
steps long. Doing a 4 step deep search in these common cases
still introduces noticable "warm-up" jankiness in GIMP.

To additionally ensure we're not missing used valid and faster
than reference conversions in GIMP-2.10 we do an additional
search at depth 5 when no converison had been found *and* the
destination format has a space differing from sRGB.

asdf

5 years agobabl: search depth of 2 and 4, instead of 2 and 5
Øyvind Kolås [Sat, 23 May 2020 16:53:36 +0000 (18:53 +0200)]
babl: search depth of 2 and 4, instead of 2 and 5

Conversions needed for color management in GIMP are not feasible in 2
steps, searching 5 deep for commonly used conversions causes severe UI
stalls, lowering the max search depth to 4 avoids this regression
introduced in 51437f216dbbef80f9bf661dd152452083119349, while keeping
the speed-up for other cases.

5 years agopalette: clean trailing whitespace
Ell [Mon, 18 May 2020 17:58:57 +0000 (20:58 +0300)]
palette: clean trailing whitespace

5 years agopalette: delay sorted radius vectors construction until needed
Ell [Mon, 18 May 2020 17:47:49 +0000 (20:47 +0300)]
palette: delay sorted radius vectors construction until needed

In babl-palette, when C11 atomic operations are available, don't
construct the sorted radius vectors on palette setup, but rather
when first converting from RGB to the palette format.  This avoids
the costly vector-construction step for palettes that are never
used as the destination format of a conversion.

5 years agoHSV, HSL, HCY: wrap hue around during conversion to RGB
Ell [Mon, 18 May 2020 06:53:58 +0000 (09:53 +0300)]
HSV, HSL, HCY: wrap hue around during conversion to RGB

In the conversions from HSV, HSL, and HCY to RGB, wrap the hue
value around to the [0,1) range, instead of producing unspecified
results outside this range.  In particular, hue=1.0 may arise when
going through lower precision, such as when decomposing/recomposing
an 8-bit image in GIMP (see gimp#5097).

5 years agobabl: adjust search depth for fishes in first pass
Øyvind Kolås [Fri, 15 May 2020 00:56:46 +0000 (02:56 +0200)]
babl: adjust search depth for fishes in first pass

Search first only to a depth of 2, and accept the fastest found if any
faster than reference is found, if not search to depth 5. We lose out in
the unlikely to be frequent cases where 2-step babl fishes exist and a 3
step fish is faster. And gain the fishes where 4 step is faster than 3
(which was the old first pass search depth).

5 years agobabl: slightly pad source buffers for creating conversions
Øyvind Kolås [Thu, 14 May 2020 15:53:50 +0000 (17:53 +0200)]
babl: slightly pad source buffers for creating conversions

This is done because many babls conversions get optimized by C compilers
to read 16bytes of data at a time. Causing valgrind to report
"Invalid read of size 16" as a false positive. By padding the data at
least when creating conversions we mask the false positives.

5 years agomeson: Generate VAPI file
Niels De Graef [Mon, 12 Aug 2019 04:58:56 +0000 (06:58 +0200)]
meson: Generate VAPI file

This can be used to call Babl from Vala. This is also very useful when
we want to do the same thing (calling from vala) for GIMP 3.x

5 years agogitlab-ci: Manage pacman cache
Jan Vesely [Wed, 29 Apr 2020 05:08:15 +0000 (01:08 -0400)]
gitlab-ci: Manage pacman cache

Drop unused packages from download cache.
Signed-off-by: Jan Vesely <jano.vesely@gmail.com>
5 years agogitlab-ci: Cleanup
Jan Vesely [Tue, 25 Feb 2020 18:15:39 +0000 (13:15 -0500)]
gitlab-ci: Cleanup

We only use meson now
Signed-off-by: Jan Vesely <jano.vesely@gmail.com>
5 years agotests: add a test for naive CMYK conversion
Øyvind Kolås [Sun, 3 May 2020 10:13:14 +0000 (12:13 +0200)]
tests: add a test for naive CMYK conversion

5 years agobabl: fix naive CMYK reference to do 100% pullout
Øyvind Kolås [Sun, 3 May 2020 10:12:52 +0000 (12:12 +0200)]
babl: fix naive CMYK reference to do 100% pullout

5 years agoavx2-int8: slightly improve accuracy of linear -> gamma tables
Ell [Sun, 12 Apr 2020 14:39:04 +0000 (17:39 +0300)]
avx2-int8: slightly improve accuracy of linear -> gamma tables

5 years agoavx2-int8: add gamma u8 -> linear float conversions
Ell [Sun, 12 Apr 2020 14:42:16 +0000 (17:42 +0300)]
avx2-int8: add gamma u8 -> linear float conversions

Add AVX2 conversions from u8 Y', Y'A, R'G'B, and R'G'B'A to float
Y, YA, RGB, and RGBA, respectively.  The conversions use an LUT
together with the AVX2 gather instructions to process 8 values a
 once.  Depending on the formats and cache utilization, the new
conversions are between 1.25x to 2.2x faster than the existing
conversions.

5 years agobabl: improve indentation in babl-fish-path.c
Øyvind Kolås [Sat, 15 Feb 2020 06:29:27 +0000 (07:29 +0100)]
babl: improve indentation in babl-fish-path.c

5 years agobabl: babl-fish-path improve portability for ppc
Øyvind Kolås [Sat, 15 Feb 2020 06:22:25 +0000 (07:22 +0100)]
babl: babl-fish-path improve portability for ppc

Quoting his explaination for why this fixes things (the other half of
the same function was already portable.)

"This breaks on PowerPC 32-bit, because the calling convention for
passing a union is to pass a pointer to a temporary copy of the union.
This pointer isn't as a function pointer.  On some other platforms, the
call would just copy the union, which is like copying the function
pointer.  On all platforms, the compiler doesn't check the type, because
babl_conversion_new() has a va_arg(3) prototype."

Portabilitiy issue figured out by George Koehler, This fixes issue #24.

5 years agopost release version bump
Øyvind Kolås [Sun, 12 Jan 2020 23:25:15 +0000 (00:25 +0100)]
post release version bump

5 years agorelease 0.1.74
Øyvind Kolås [Sun, 12 Jan 2020 23:01:05 +0000 (00:01 +0100)]
release 0.1.74

5 years agodocs/tools/xml_insert: fix awk warning
Øyvind Kolås [Sun, 12 Jan 2020 22:59:13 +0000 (23:59 +0100)]
docs/tools/xml_insert: fix awk warning

5 years agoRevert "babl: adjust default BABL_TOLERANCE"
Øyvind Kolås [Sun, 12 Jan 2020 22:56:02 +0000 (23:56 +0100)]
Revert "babl: adjust default BABL_TOLERANCE"

This reverts commit e41da81b67128a8d29d8fd106e5b1ac53da16ecb.

5 years agomeson: globally opt out of unsafe math optimizations
Øyvind Kolås [Sun, 12 Jan 2020 22:47:08 +0000 (23:47 +0100)]
meson: globally opt out of unsafe math optimizations

Thus closing issue #49, with a decision to opt for fully predictable
math, and increasing the ability to extend the use of hashes in result
image tests in GEGL.

5 years agoRevert "build: opt out of unsafe math optimizations in reference and base"
Øyvind Kolås [Sun, 12 Jan 2020 22:31:33 +0000 (23:31 +0100)]
Revert "build: opt out of unsafe math optimizations in reference and base"

This reverts commit 84128d538aa4f189c31d296d04084762ce062107.
after having set global cflags opting out of unsafe math see issue #49.

6 years agotests: squelch clang warnings of using fabs on integer
Øyvind Kolås [Thu, 28 Nov 2019 17:13:09 +0000 (18:13 +0100)]
tests: squelch clang warnings of using fabs on integer

6 years agoCIE: comment out self assignments
Øyvind Kolås [Thu, 28 Nov 2019 17:09:35 +0000 (18:09 +0100)]
CIE: comment out self assignments

This squelches warnings when using clang as the compiler.

6 years agobuild: opt out of unsafe math optimizations in reference and base
Øyvind Kolås [Fri, 8 Nov 2019 18:07:47 +0000 (19:07 +0100)]
build: opt out of unsafe math optimizations in reference and base

This makes the reference code paths used for verifying conversions in
extensions not involve for instance fast reciprocal approximations, see issue
 #49. The extensions are still compiled with full optimizations.

6 years agobabl: adjust default BABL_TOLERANCE
Øyvind Kolås [Fri, 8 Nov 2019 12:54:15 +0000 (13:54 +0100)]
babl: adjust default BABL_TOLERANCE

This as a start of fixing issue #49, lower precision code gets generated
on AMD EPYC, due to use of rcpps to get a reciprocal - which has lower
precision on AMD EPYC. The conversions with AMD EPYC gets included with
a small margin - so we should not be shedding many other fast conversions
due to this.

6 years agomeson: replace tabs with spaces
Øyvind Kolås [Thu, 31 Oct 2019 09:03:56 +0000 (10:03 +0100)]
meson: replace tabs with spaces

6 years agoFix darwin/clang map
Alex Samorukov [Thu, 31 Oct 2019 07:14:49 +0000 (08:14 +0100)]
Fix darwin/clang map

6 years agoAdd dylib extension for macOS build
Alex Samorukov [Thu, 31 Oct 2019 07:13:07 +0000 (08:13 +0100)]
Add dylib extension for macOS build

6 years agomeson: improve host cpu detection
Ell [Mon, 28 Oct 2019 05:59:34 +0000 (07:59 +0200)]
meson: improve host cpu detection

See gegl@6bcf95fd0f32cf5e8b1ddbe17b14d9ad049bded8.

6 years agomeson: use "debugoptimized" as the default build type
Ell [Fri, 25 Oct 2019 14:08:45 +0000 (17:08 +0300)]
meson: use "debugoptimized" as the default build type

... to match the default autotools behavior.

6 years agomeson: only use "-Ofast" for optimized builds
Ell [Fri, 25 Oct 2019 14:03:38 +0000 (17:03 +0300)]
meson: only use "-Ofast" for optimized builds

Only use "-Ofast" when the build type is either "debugoptimized"
or "release", so that unoptimized builds are possible.

6 years agopost release version bump
Øyvind Kolås [Thu, 22 Aug 2019 20:18:34 +0000 (22:18 +0200)]
post release version bump

6 years agorelease 0.1.72
Øyvind Kolås [Thu, 22 Aug 2019 20:11:33 +0000 (22:11 +0200)]
release 0.1.72

6 years agocairo: add code path from Y'A float
Øyvind Kolås [Thu, 22 Aug 2019 20:11:20 +0000 (22:11 +0200)]
cairo: add code path from Y'A float

6 years agobabl: register gray and gray alpha shortcuts between spaces
Øyvind Kolås [Tue, 20 Aug 2019 00:54:51 +0000 (02:54 +0200)]
babl: register gray and gray alpha shortcuts between spaces

The formats "Y float", "YA float" and "YaA float" between different RGB
and gray spaces are all exactly the same. This registers memcpy shortcuts
for these combinations for all spaces. This avoids temporarily expand
into RGBA for many babl path fishes.

6 years agohalf/sse-half: register conversions for YaA as well
Øyvind Kolås [Tue, 20 Aug 2019 00:45:24 +0000 (02:45 +0200)]
half/sse-half: register conversions for YaA as well

6 years agofloat: add conversions to/from associated alpha for grayscale
Øyvind Kolås [Mon, 19 Aug 2019 23:46:08 +0000 (01:46 +0200)]
float: add conversions to/from associated alpha for grayscale

Further speeds up rotations/scales etc in all grayscale precisions.

6 years agofloat: add grayscale alpha and trc converters
Øyvind Kolås [Mon, 19 Aug 2019 23:07:42 +0000 (01:07 +0200)]
float: add grayscale alpha and trc converters

6 years agogray: add graya to rgba expanders
Øyvind Kolås [Mon, 19 Aug 2019 22:19:32 +0000 (00:19 +0200)]
gray: add graya to rgba expanders

6 years agocairo: remove on of the conversaions added in last commit
Øyvind Kolås [Mon, 19 Aug 2019 18:44:33 +0000 (20:44 +0200)]
cairo: remove on of the conversaions added in last commit

6 years agocairo: add more little endian conversions
Øyvind Kolås [Mon, 19 Aug 2019 15:40:17 +0000 (17:40 +0200)]
cairo: add more little endian conversions

6 years agoavx2, two-table: don't segfault for NaN input
Ell [Mon, 19 Aug 2019 14:33:29 +0000 (17:33 +0300)]
avx2, two-table: don't segfault for NaN input

In the AVX2 and two-table linear-float => gamma-int8 conversions,
tweak the input bounds-check to handle NaN values.  NaN would
previously lead to an out-of-bounds table lookup, and a segfault
(see issue #43).

6 years agobabl: add a lock around creation of new fishes
Øyvind Kolås [Mon, 19 Aug 2019 10:44:19 +0000 (12:44 +0200)]
babl: add a lock around creation of new fishes

This prevents multiple threads from racing in creation of a missing fish.

6 years agoextensions: add a Y' u8 to RGBA float conversion
Øyvind Kolås [Mon, 19 Aug 2019 01:19:39 +0000 (03:19 +0200)]
extensions: add a Y' u8 to RGBA float conversion

6 years agoextensions: add some u8 and u16 conversions for grayscale
Øyvind Kolås [Mon, 19 Aug 2019 00:57:47 +0000 (02:57 +0200)]
extensions: add some u8 and u16 conversions for grayscale

This adds some missing end pieces for building much better than reference
conversions for many useful u8 and u16 code paths.

6 years agobabl: reduce default max path length to 3 (5)
Øyvind Kolås [Sun, 18 Aug 2019 23:00:11 +0000 (01:00 +0200)]
babl: reduce default max path length to 3 (5)

With the space invasion progressing, we're starting to have
many more conversions to search through - in some cases
looking for conversions - when there are no conversions
become too expensive with an exhaustive search of all
conversions up to 7 steps. (it is likely possible to reduce
the amount of conversions tried).

As well re-enable handling of grayscale ICC profiles - since
the formerly patological tests on gimp now pass.

6 years agobabl: add support for grayscale spaces
Øyvind Kolås [Sun, 18 Aug 2019 22:01:13 +0000 (00:01 +0200)]
babl: add support for grayscale spaces

A grayscale space is just like an RGB space, but has a default set
of chromaticities for R,G,B. When ICC profiles are loaded only the TRC
is considered is considered (we could also include the whitepoint),
blackpoint tag is ignored (and should be baked into the used ICC
profile instead.)

This works with GIMP-2.10 but master of GIMP currently hangs when
trying to load a grayscale jpeg with attached grayscale ICC profile,
The if #0 on line 999 of babl/babl-icc.c needs to be turned into a
1 to enable grayscale icc profiles for further testing.

6 years agobabl: use an enum to internally differentiate rgb, cmyk or gray type spaces
Øyvind Kolås [Sun, 18 Aug 2019 19:06:33 +0000 (21:06 +0200)]
babl: use an enum to internally differentiate rgb, cmyk or gray type spaces

6 years agodocs: update alpha docs
Øyvind Kolås [Sun, 18 Aug 2019 13:28:52 +0000 (15:28 +0200)]
docs: update alpha docs

6 years agobabl: simplify logic in babl_epsilon_for_zero
Øyvind Kolås [Fri, 16 Aug 2019 21:45:18 +0000 (23:45 +0200)]
babl: simplify logic in babl_epsilon_for_zero

We do not need to treate positive/negative avoided infinities differently,
the result is the same as long as we are consistent, and only using the
positive epsilon value leads to slightly simpler per-pixel conversion code
in both directions.

6 years agoextensions: add sse2_cflags to CIE
Michael Schumacher [Sun, 4 Aug 2019 17:24:59 +0000 (19:24 +0200)]
extensions: add sse2_cflags to CIE

Fixes #42

6 years agogir: set nsversion to 0.1
Øyvind Kolås [Thu, 8 Aug 2019 08:55:11 +0000 (10:55 +0200)]
gir: set nsversion to 0.1

6 years agomeson: depend on meson 0.50.0
Øyvind Kolås [Thu, 8 Aug 2019 08:54:54 +0000 (10:54 +0200)]
meson: depend on meson 0.50.0

6 years agoci: Add GObject introspection packages
Niels De Graef [Mon, 5 Aug 2019 20:09:21 +0000 (22:09 +0200)]
ci: Add GObject introspection packages

We added GObject introspection in the previous commits, so we need to
make sure the correct binaries are installed for this.

6 years agoAdd some GIR annotations
Niels De Graef [Mon, 5 Aug 2019 19:52:27 +0000 (21:52 +0200)]
Add some GIR annotations

6 years agoFix several GObject Introspection warnings
Niels De Graef [Mon, 5 Aug 2019 17:07:54 +0000 (19:07 +0200)]
Fix several GObject Introspection warnings

6 years agoRemove "Rename to" annotation
Niels De Graef [Mon, 5 Aug 2019 16:56:21 +0000 (18:56 +0200)]
Remove "Rename to" annotation

This is a deprecated gtk-doc construct, so remove it (to rename structs,
we have the identity filter now).

6 years agoAdd GObject Introspection support to babl
Niels De Graef [Mon, 5 Aug 2019 16:55:38 +0000 (18:55 +0200)]
Add GObject Introspection support to babl

This is needed for GIMP to also have proper GIR support for its plugins.

Extra thanks go to Emmanuele Bassi for the identity filter.

6 years agobabl.h: declared BablModelFlag so gobject introspection understands it
Øyvind Kolås [Tue, 6 Aug 2019 18:13:55 +0000 (20:13 +0200)]
babl.h: declared BablModelFlag so gobject introspection understands it

6 years agochange project description to be a bit less cryptic
Øyvind Kolås [Tue, 6 Aug 2019 12:40:28 +0000 (14:40 +0200)]
change project description to be a bit less cryptic

6 years agomeson: move pkgconfig after subdir defining babl
Øyvind Kolås [Tue, 6 Aug 2019 12:35:01 +0000 (14:35 +0200)]
meson: move pkgconfig after subdir defining babl

Use the meson pkgconfig generator after the babl library object has
been defined.

6 years agomeson/pkgconfig: drop remnants of libdir customizations
Øyvind Kolås [Tue, 6 Aug 2019 12:06:02 +0000 (14:06 +0200)]
meson/pkgconfig: drop remnants of libdir customizations

6 years agomeson: stop overriding libdir
Øyvind Kolås [Tue, 6 Aug 2019 11:46:35 +0000 (13:46 +0200)]
meson: stop overriding libdir

Let meson do it's defaults, this mean we get installed in
prefix/lib/x86_64-linux-gnu/ instead of prefix/lib/
apparently which apparently is better - but different from
what autotools used to do; and leads to other paths also
needing potential adjustment.

6 years agopost-release version bump
Øyvind Kolås [Fri, 2 Aug 2019 16:17:49 +0000 (18:17 +0200)]
post-release version bump

6 years agorelase babl 0.1.70
Øyvind Kolås [Fri, 2 Aug 2019 16:16:25 +0000 (18:16 +0200)]
relase babl 0.1.70

6 years agomeson: for issue #41 clean up cflags varials
Øyvind Kolås [Fri, 2 Aug 2019 14:34:28 +0000 (16:34 +0200)]
meson: for issue #41 clean up cflags varials

6 years agobuild: fix typo in previous attempt at fixing issue #41
Øyvind Kolås [Fri, 2 Aug 2019 14:29:20 +0000 (16:29 +0200)]
build: fix typo in previous attempt at fixing issue #41

6 years agobuild: issue #41 set all cflags variables to empty at start
Øyvind Kolås [Fri, 2 Aug 2019 13:49:23 +0000 (15:49 +0200)]
build: issue #41 set all cflags variables to empty at start

Cleaner than previous attempt, possibly fixing builds on non-x86

6 years agobuild: set more of the simd_cflags when not found
Øyvind Kolås [Fri, 2 Aug 2019 13:26:00 +0000 (15:26 +0200)]
build: set more of the simd_cflags when not found

Further attempt at mitigating issue #41.

6 years agobuild: issue #41 builds without mmx/sse etc extensions do not work
Øyvind Kolås [Fri, 2 Aug 2019 11:53:44 +0000 (13:53 +0200)]
build: issue #41 builds without mmx/sse etc extensions do not work

The warnings about the SIMD flags specific variables not being set goes
away with this commit. Setting empty strings do not work since then gcc
ends up looking for input files that are the empty string, thus this patch
re-adds -Wall instead of setting an empty string.

6 years agobuild: don't fail on unknown architecture
Abderrahim Kitouni [Fri, 2 Aug 2019 04:54:26 +0000 (05:54 +0100)]
build: don't fail on unknown architecture

The autotools build ignored unknown architectures silently while the meson
build errors out. This turns the error into a warning.

Fixes #41

6 years agobuild: use meson to find system python instead of assuming it's called python
Abderrahim Kitouni [Fri, 2 Aug 2019 04:51:47 +0000 (05:51 +0100)]
build: use meson to find system python instead of assuming it's called python

some systems only have python3

6 years agomeson: fix AVX2 detection on x86
Ell [Tue, 30 Jul 2019 17:37:18 +0000 (20:37 +0300)]
meson: fix AVX2 detection on x86

s/rax/eax/

6 years agobuild: remove autogen.sh, remnants of autotools
Øyvind Kolås [Tue, 30 Jul 2019 08:03:04 +0000 (10:03 +0200)]
build: remove autogen.sh, remnants of autotools

6 years agobabl: initialize buffer pointers
Øyvind Kolås [Mon, 29 Jul 2019 22:24:17 +0000 (00:24 +0200)]
babl: initialize buffer pointers

This silences a false warning from gcc, where it doesn't recognize the type
of control flow occuring with the pre/post switches in the reference
conversion.

6 years agobuild: remove autotools
Øyvind Kolås [Mon, 29 Jul 2019 20:31:51 +0000 (22:31 +0200)]
build: remove autotools

6 years agoNEWS: formatting :)
Alexandre Prokoudine [Fri, 26 Jul 2019 13:47:02 +0000 (13:47 +0000)]
NEWS: formatting :)

6 years agodocs: fix html tag typo
Øyvind Kolås [Thu, 25 Jul 2019 13:30:47 +0000 (15:30 +0200)]
docs: fix html tag typo

6 years agopost-release version bump
Øyvind Kolås [Wed, 24 Jul 2019 16:36:26 +0000 (18:36 +0200)]
post-release version bump

6 years agorelease 0.1.68
Øyvind Kolås [Wed, 24 Jul 2019 16:35:58 +0000 (18:35 +0200)]
release 0.1.68

6 years agoNEWS: update
Øyvind Kolås [Thu, 25 Jul 2019 12:54:49 +0000 (14:54 +0200)]
NEWS: update

6 years agoINSTALL.in: document meson build instead of autotools build
Øyvind Kolås [Thu, 25 Jul 2019 12:58:17 +0000 (14:58 +0200)]
INSTALL.in: document meson build instead of autotools build

6 years agodocs: remove duplicate files
Øyvind Kolås [Thu, 25 Jul 2019 10:29:39 +0000 (12:29 +0200)]
docs: remove duplicate files

6 years agoextensions: distribute avx2-int8-tables.h
Ell [Wed, 24 Jul 2019 20:52:08 +0000 (23:52 +0300)]
extensions: distribute avx2-int8-tables.h

6 years agoextensions: add AVX2 linear-float -> gamma-u8 conversions
Ell [Wed, 24 Jul 2019 20:24:29 +0000 (23:24 +0300)]
extensions: add AVX2 linear-float -> gamma-u8 conversions

Add AVX2 conversions from Y float, YA float, RGB float, and RGBA
float, to Y' u8, Y'A u8, R'G'B' u8, and R'G'B'A u8, respectively.
The conversions use a lookup table, similarly to the two-table
conversions, indexed using AVX2's 256-bit gather instruction, which
allow us to process 8 floats at once.  Over here, this conversion
is ~5x faster than the SSE conversions.

Note, however, that unlike two-table, we don't use a second
"feedback" table to correct the result, leading to an off-by-one
conversion error with a probability of ~0.1%, using a 2^16-element
table.  This error rate is low enough for babl to use the
conversion, but might still be a bit too high regardless; it can be
further reduced with a bigger table.

6 years agoconfigure.ac, meson, cpu-accel: add AVX2 detection
Ell [Wed, 24 Jul 2019 20:21:01 +0000 (23:21 +0300)]
configure.ac, meson, cpu-accel: add AVX2 detection

Detect AVX2 support during configuration and runtime, in
preperation for next commit.

6 years agodocs: remove wrong refernces to old versions
Øyvind Kolås [Wed, 24 Jul 2019 16:44:47 +0000 (18:44 +0200)]
docs: remove wrong refernces to old versions

6 years agodocs: add a couple of entries to glossary
Øyvind Kolås [Wed, 24 Jul 2019 16:00:56 +0000 (18:00 +0200)]
docs: add a couple of entries to glossary

6 years agomeson: fix mistake in add_dist_script
Øyvind Kolås [Wed, 24 Jul 2019 15:44:06 +0000 (17:44 +0200)]
meson: fix mistake in add_dist_script

6 years agoAUTHORS: update
Øyvind Kolås [Wed, 24 Jul 2019 14:23:23 +0000 (16:23 +0200)]
AUTHORS: update

6 years agoupdate NEWS
Øyvind Kolås [Wed, 24 Jul 2019 14:09:48 +0000 (16:09 +0200)]
update NEWS

6 years agoHCY: convert luminance relative to RGB chromaticities
Øyvind Kolås [Wed, 24 Jul 2019 14:09:01 +0000 (16:09 +0200)]
HCY: convert luminance relative to RGB chromaticities