aboutsummaryrefslogtreecommitdiff
path: root/jdcolor.c
AgeCommit message (Collapse)Author
2015-01-20Introduce fast paths to speed up NULL color conversion somewhat, ↵dcommander
particularly when using 64-bit code; on the decompression side, the "slow path" also now use an approach similar to that of the compression side (with the component loop outside of the column loop rather than inside.) This is faster when using 32-bit code. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1520 632fc199-4ca6-4c93-a231-07263d6284db
2014-09-04When building libjpeg-turbo on Un*x systems, INT32 is usually typedef'ed to ↵dcommander
long, not int, so we need to specify an int pointer when doing a 4-byte write to the RGB565 output buffer. On little endian systems, this doesn't matter, but when you write a 32-bit int to a 64-bit long pointer address on a big endian system, you are writing to the upper 4 bytes, not the lower 4 bytes. NOTE: this will probably break on big endian systems that use 16-bit ints (are there any of those still around?) This patch also removes an unneeded macro from jdmerge.c. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1402 632fc199-4ca6-4c93-a231-07263d6284db
2014-08-30Fix issues with RGB565 color conversion on big endian machines. The RGB565 ↵dcommander
routines are now abstracted in a separate file, with separate little-endian and big-endian versions defined at compile time through the use of macros (this is similar to how the colorspace extension routines work.) This allows big-endian machines to take advantage of the same performance optimizations as little-endian machines, and it retains the performance on little-endian machines, since the conditional branch for endianness is at a very coarse-grained level. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1398 632fc199-4ca6-4c93-a231-07263d6284db
2014-08-23ARM NEON SIMD support for YCC-to-RGB565 conversion, and optimizations to the ↵dcommander
existing YCC-to-RGB conversion code: ----- https://github.com/ssvb/libjpeg-turbo/commit/aee36252be20054afce371a92406fc66ba6627b5.patch From aee36252be20054afce371a92406fc66ba6627b5 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka <siarhei.siamashka@gmail.com> Date: Wed, 13 Aug 2014 03:50:22 +0300 Subject: [PATCH] ARM: Faster NEON yuv->rgb conversion for Krait and Cortex-A15 The older code was developed and tested only on ARM Cortex-A8 and ARM Cortex-A9. Tuning it for newer ARM processors can introduce some speed-up (up to 20%). The performance of the inner loop (conversion of 8 pixels) improves from ~27 cycles down to ~22 cycles on Qualcomm Krait 300, and from ~20 cycles down to ~18 cycles on ARM Cortex-A15. The performance remains exactly the same on ARM Cortex-A7 (~58 cycles), ARM Cortex-A8 (~25 cycles) and ARM Cortex-A9 (~30 cycles) processors. Also use larger indentation in the source code for separating two independent instruction streams. ----- https://github.com/ssvb/libjpeg-turbo/commit/a5efdbf22ce9c1acd4b14a353cec863c2c57557e.patch From a5efdbf22ce9c1acd4b14a353cec863c2c57557e Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka <siarhei.siamashka@gmail.com> Date: Wed, 13 Aug 2014 07:23:09 +0300 Subject: [PATCH] ARM: NEON optimized yuv->rgb565 conversion The performance of the inner loop (conversion of 8 pixels): * ARM Cortex-A7: ~55 cycles * ARM Cortex-A8: ~28 cycles * ARM Cortex-A9: ~32 cycles * ARM Cortex-A15: ~20 cycles * Qualcomm Krait: ~24 cycles Based on the Linaro rgb565 patch from https://sourceforge.net/p/libjpeg-turbo/patches/24/ but implements better instructions scheduling. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1385 632fc199-4ca6-4c93-a231-07263d6284db
2014-05-18libjpeg-turbo has never supported non-ANSI compilers, so get rid of the ↵dcommander
crufty SIZEOF() macro. It was not being used consistently anyhow, so it would not have been possible to build prior releases of libjpeg-turbo using the broken compilers for which that macro was designed. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1313 632fc199-4ca6-4c93-a231-07263d6284db
2014-05-12Add support for decompressing to RGB565 (16-bit) pixelsdcommander
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1295 632fc199-4ca6-4c93-a231-07263d6284db
2014-05-09Convert tabs to spaces in the libjpeg code and the SIMD code (TurboJPEG ↵dcommander
retains the use of tabs for historical reasons. They were annoying in the libjpeg code primarily because they were not consistently used and because they were used to format as well as indent the code. In the case of TurboJPEG, tabs are used just to indent the code, so even if the editor assumes a different tab width, the code will still be readable.) git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1278 632fc199-4ca6-4c93-a231-07263d6284db
2014-04-20This patch accomplishes the following:dcommander
-- Auto-generates HAVE_LOCALE_H macro and adds it to jconfig.h (this is used by rdjpgcom.c.) -- Reconciles the description and ordering of macros between config.h.in and jconfig.h.in, so the two files can be easily diffed. -- Eliminates the use of the autoheader-generated config.h in the project and moves relevant internal-only macros into a new file, jconfigint.h. This is to avoid "already defined" warnings in files that were including both config.h (to get the internal autotools package information or the INLINE definition) and jconfig.h. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1257 632fc199-4ca6-4c93-a231-07263d6284db
2013-09-28Some of the IJG headers say "Modified by", so clarify that our ↵dcommander
"Modifications" are not referring to these. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1052 632fc199-4ca6-4c93-a231-07263d6284db
2013-01-01Port RGB-to-Grayscale color transform from jpeg-8ddcommander
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@885 632fc199-4ca6-4c93-a231-07263d6284db
2013-01-01Further changes to the copyright/attribution notices to make it clear that ↵dcommander
our modified files are not part of the IJG's software. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@875 632fc199-4ca6-4c93-a231-07263d6284db
2012-12-31Change the copyright notices to make it clear that our modified files are ↵dcommander
not part of the IJG's software. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@872 632fc199-4ca6-4c93-a231-07263d6284db
2012-03-11Allow RGB JPEG files to be created/decoded when using the LJT colorspace ↵dcommander
extensions git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@808 632fc199-4ca6-4c93-a231-07263d6284db
2012-01-26Move INLINE macro into config.h. That's really where it belongs anyhow, ↵dcommander
since it is used only internally, and putting it in jconfig.h was causing problems with DevIL. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@739 632fc199-4ca6-4c93-a231-07263d6284db
2011-12-19Added new alpha channel colorspace constants/pixel formats, so applications ↵dcommander
can specify that they need the unused byte in a 4-component RGB output buffer set to 0xFF when decompressing. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@732 632fc199-4ca6-4c93-a231-07263d6284db
2011-09-09Use 8-bit write to avoid potential pointer aliasing issues (also, at least ↵dcommander
on x86, it's faster than the previous approach.) git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@700 632fc199-4ca6-4c93-a231-07263d6284db
2011-09-07Improve performance of non-SIMD color conversion routines and use global ↵dcommander
constants to define colorspace extension parameters git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@698 632fc199-4ca6-4c93-a231-07263d6284db
2011-09-07Back out CMYK-to-RGB conversions. There is really no way to properly do ↵dcommander
CMYK-to-RGB conversion without color management, which is out of scope for libjpeg-turbo. Applications wishing to do a trivial conversion, such as was implemented in these routines, can simply request CMYK output and do the trivial conversion themselves (or, even better, use an OSS color management library.) We should not encourage the use of in-library CMYK-to-RGB conversion as a substitute for color management. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@695 632fc199-4ca6-4c93-a231-07263d6284db
2011-08-16Use integer arithmetic for CMYK-to-RGB conversionsdcommander
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@687 632fc199-4ca6-4c93-a231-07263d6284db
2011-08-11CMYK/YCCK supportdcommander
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@680 632fc199-4ca6-4c93-a231-07263d6284db
2011-02-27Improve performance a bit for the non-SIMD casedcommander
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@472 632fc199-4ca6-4c93-a231-07263d6284db
2011-02-26Fix compiler warningsdcommander
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@463 632fc199-4ca6-4c93-a231-07263d6284db
2009-09-24Significantly improve grayscale performancedcommander
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@63 632fc199-4ca6-4c93-a231-07263d6284db
2009-08-06Update copyrights to indicate files modified with colorspace extensionsdcommander
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@57 632fc199-4ca6-4c93-a231-07263d6284db
2009-04-03Implement new colorspaces to allow directly compressing from/decompressing ↵dcommander
to RGB/RGBX/BGR/BGRX/XBGR/XRGB without conversion git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@35 632fc199-4ca6-4c93-a231-07263d6284db
2009-03-09Framework for supporting SIMD accelerationossman_
Designed to impose minimal changes on the "normal" code. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@14 632fc199-4ca6-4c93-a231-07263d6284db
2006-05-25Migrating to new directory structure adopted from the RealVNC's source tree. ↵const_k
More changes will follow. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1 632fc199-4ca6-4c93-a231-07263d6284db