Steve Snyder
0ed3ad35a2
Bug 512865. qcms: Improve SSE2 performance, add SSE support. r=jrmuizel
...
This patch greatly improves the performance of QCMS transformations on x86 &
x86_64 systems. Some notes:
0. On 32-bit x86 systems it does runtime selection between non-SIMD, SSE, and
SSE2 code paths.
1. On x86_64 systems the SSE2 code path is always taken. The non-SIMD and SSE
code paths are left intact, but contemporary versions of the GCC and MSVC
compilers will see that they cannot be reached and optimize them away.
2. The execution of the SSE2 code path is reduced by 67%, relative to the
original Intel/Microsoft formatted ASM code. The relative performance is seen
on a Pentium4 (Northwood) 2.4GHz CPU with DDR1 RAM.
3. The SSE code path provides a 80% reduction in execution time, relative to
the non-SIMD code path. The relative performance is seen on a Pentium3
(Coppermine) 1.26GHz CPU with SDRAM.
4. The code has been split out into separate files so that it can be built
with different cflags (-msse, and -msse2) when using gcc.
2009-09-24 11:58:24 -04:00
Vladimir Vukicevic
56304c7aa1
Bug 504766. qcms: Fix unaligned reads in qcms. r=jrmuizel
...
Offsets are not guaranteed to be aligned, so don't assume that they are.
memcpy instead of just casting and dereferencing.
2009-09-08 11:36:28 -04:00
timeless@mozdev.org
86ae0b7a12
Bug 491195 fix warnings in qcms
...
mostly comparisons between unsigned and signed
also an incomplete initializer
and a warning about using C++ style variables
r=jrmuizel
2009-07-22 17:31:03 -05:00
Jeff Muizelaar
f1000364be
Bug 504888. qcms: Avoid integer overflow when checking buffer bounds. r=bobbyholley
...
Found by Chris Evans
2009-07-21 23:32:27 -04:00
Jeff Muizelaar
329795d916
Bug 498245. Check that the profile is an RGB profile before checking if it's bogus. r=bholley
...
This avoids unitialized reads on non-RGB profiles.
2009-07-02 11:34:08 -04:00
Jeff Muizelaar
a3a14052d6
Bug 498245. Profiles with negative colorant tristiumlus values are bogus. r=bholley
...
Make sure we reject these profiles.
2009-07-02 11:34:06 -04:00
Jeff Muizelaar
5eda3d1bd5
Bug 497363. qcms: Fix a memory leak when fread() fails. r=joedrew
...
Fixes a possible leak in qcms_profile_from_file() when fread()
can't read the entire profile.
2009-06-12 14:38:34 -04:00
Jeff Muizelaar
90b12fddfa
Bug 497363. qcms: Add reference to the rationale for not correcting alpha. r=joedrew
2009-06-12 14:38:32 -04:00
Jeff Muizelaar
abe9f75963
Bug 497363. qcms: Use a minimum of 256 entries when calling invert_lut. r=joedrew
...
Makes the number of output entries produced by invert_lut() a parameter and
changes all callers to use a minimum of 256 entries when computing the inverse.
2009-06-12 14:38:30 -04:00
Jeff Muizelaar
e6dc27ba8c
Color profile reading is broken on windows. b=492962 r=joe
...
The fix is to properly fopen() with "rb" instead of just "r", so that windows knows to treat it as a binary
2009-05-15 18:07:34 -04:00
Peter Weilbacher
ad01d91539
Bug 488468: qcms build break with pre-4 GCCs (#if 0 commented text should be C/C++ commented), r=jmuizelaar
2009-04-23 19:38:11 +02:00
Jeff Muizelaar
dcd83451a6
Bug 488955 - Fix linear gamma input tables, used in iCCP PNG testsuite images. r=joe
2009-04-22 13:49:09 -04:00
Jeff Muizelaar
c0df7d0be6
Bug 488747 - Fix endian handling in qcms. r=joe
2009-04-21 22:22:29 -04:00
Jeff Muizelaar
eafab45f5f
Bug 489133 - Handle bad cHRM chunks in PNGs. r=joe
2009-04-21 22:21:48 -04:00
Jeff Muizelaar
ee1d6829e8
Bug 489133 - Fix handling of bad whitepoints in PNGs. r=joe
2009-04-21 22:21:13 -04:00
Makoto Kato
88bf4b3164
Bug 487900 - Enable SSE2 code for x86_64 in qcms. r=jmuizelaar
2009-04-15 22:14:03 +09:00
Ginn Chen
d5d68e26e8
Bug 487765 - Fix qcms build problems on Solaris. r=jrmuizel
2009-04-14 11:25:31 -04:00
Marco Perez
89b61ac4ab
Bug 487754 - Problems building qcms on FreeBSD. r=jrmuizel
2009-04-14 11:08:23 -04:00
Jeff Muizelaar
09f5d6e3c0
Bug 487566 - OS/2 problems to build qcms; r=mozilla@Weilbacher.org
2009-04-11 09:53:40 +02:00
Jeff Muizelaar
9980cb2188
Bug 481926 - Rewrite color management component sr=vlad, r=ted, r=joedrew (\o/)
...
Replaces lcms with qcms
2009-04-07 12:02:11 -04:00
Joe Drew
fc5c15825a
Backed out changeset 6f3c2171bbb2:
...
Bug 481926 - Rewrite color management component. r=joe,ted sr=vlad
2009-04-03 16:27:27 -04:00
Jeff Muizelaar
eaef2088cb
Bug 481926 - Rewrite color management component. r=joe,ted sr=vlad
2009-04-03 15:09:56 -04:00