]> granicus.if.org Git - libjpeg-turbo/log
libjpeg-turbo
10 years agoAltiVec SIMD implementation of slow integer inverse DCT
DRC [Sat, 20 Dec 2014 01:17:39 +0000 (01:17 +0000)]
AltiVec SIMD implementation of slow integer inverse DCT

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1461 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoUse macros to allocate constants statically, rather than reading them from a table...
DRC [Sat, 20 Dec 2014 01:16:26 +0000 (01:16 +0000)]
Use macros to allocate constants statically, rather than reading them from a table using vec_splat*().  This improves code readability and probably improves performance a bit as well.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1460 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoSwap the order of the IFAST and ISLOW FDCT functions so that it matches the order...
DRC [Sat, 20 Dec 2014 01:14:38 +0000 (01:14 +0000)]
Swap the order of the IFAST and ISLOW FDCT functions so that it matches the order of the prototypes in jsimd.h and the stubs in jsimd_powerpc.c.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1459 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoInclude ARMv8 binaries when generating a combined OS X/iOS package using 'make iosdmg'
DRC [Fri, 19 Dec 2014 18:28:00 +0000 (18:28 +0000)]
Include ARMv8 binaries when generating a combined OS X/iOS package using 'make iosdmg'

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1458 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoDocument that the ARMv8/iOS issues are now fixed
DRC [Fri, 19 Dec 2014 18:18:46 +0000 (18:18 +0000)]
Document that the ARMv8/iOS issues are now fixed

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1454 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRemove reference to install.txt, which we do not include from the IJG distribution
DRC [Fri, 19 Dec 2014 18:07:04 +0000 (18:07 +0000)]
Remove reference to install.txt, which we do not include from the IJG distribution

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1453 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoInclude ARMv8 binaries when generating a combined OS X/iOS package using 'make iosdmg'
DRC [Fri, 19 Dec 2014 17:34:30 +0000 (17:34 +0000)]
Include ARMv8 binaries when generating a combined OS X/iOS package using 'make iosdmg'

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1452 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoIn the output of the configure script, indicate whether gas-preprocessor.pl is being...
DRC [Fri, 19 Dec 2014 15:40:21 +0000 (15:40 +0000)]
In the output of the configure script, indicate whether gas-preprocessor.pl is being used along with the assembler.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1451 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoModify the ARM64 assembly file so that it uses only syntax that the clang assembler...
DRC [Fri, 19 Dec 2014 15:36:39 +0000 (15:36 +0000)]
Modify the ARM64 assembly file so that it uses only syntax that the clang assembler in XCode 5.x can understand.  These changes should all be cosmetic in nature-- they do not change the meaning or readability of the code nor the ability to build it for Linux.  Actually, the code is now more in compliance with the ARM64 programming manual.  In addition to these changes, there were a couple of instructions that clang simply doesn't support, so gas-preprocessor.pl was modified so that it now converts those into equivalent instructions that clang can handle.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1450 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAdd iOS architectures to the shared libraries generated by the Mac/iOS packaging...
DRC [Fri, 19 Dec 2014 10:44:09 +0000 (10:44 +0000)]
Add iOS architectures to the shared libraries generated by the Mac/iOS packaging system.  I have no idea how useful this is for "standard" iOS application development, but it is useful in a jailbreak environment, and iOS 8 supposedly allows shared libs in "official" apps as well.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1447 632fc199-4ca6-4c93-a231-07263d6284db

10 years ago1.4.0
DRC [Fri, 19 Dec 2014 09:35:11 +0000 (09:35 +0000)]
1.4.0

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1446 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAltiVec SIMD implementation of fast integer inverse DCT
DRC [Thu, 18 Dec 2014 10:12:29 +0000 (10:12 +0000)]
AltiVec SIMD implementation of fast integer inverse DCT

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1445 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFurther cleanup of the AltiVec forward DCT code:
DRC [Thu, 18 Dec 2014 09:49:39 +0000 (09:49 +0000)]
Further cleanup of the AltiVec forward DCT code:
-- Use macros to represent the fast FDCT constants, to facilitate comparing the AltiVec implementation of the algorithm with the SSE2 implementation.
-- Rename slow FDCT constants for consistency.
-- Use vec_sra() in all cases in the slow FDCT code.  The SSE2 implementation uses psraw, which is an arithmetic shift, so we need to do likewise with AltiVec.  Using vec_sr() hasn't caused any problems yet, but it is conceivable that it might cause different behavior in certain corner cases.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1444 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAltiVec SIMD implementation of slow integer forward DCT; Clean up fast integer forwa...
DRC [Wed, 17 Dec 2014 08:04:39 +0000 (08:04 +0000)]
AltiVec SIMD implementation of slow integer forward DCT;  Clean up fast integer forward DCT code so that it is easier to see how it derives from the SSE2 code and to make it play more nicely with the slow FDCT code.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1443 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix cosmetic issues in AltiVec comments
DRC [Wed, 17 Dec 2014 08:00:29 +0000 (08:00 +0000)]
Fix cosmetic issues in AltiVec comments

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1442 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix 'make dist'
DRC [Sun, 14 Dec 2014 11:47:49 +0000 (11:47 +0000)]
Fix 'make dist'

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1441 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix 'make dist'
DRC [Sun, 14 Dec 2014 11:47:08 +0000 (11:47 +0000)]
Fix 'make dist'

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1440 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix typos in test names
DRC [Mon, 8 Dec 2014 23:23:41 +0000 (23:23 +0000)]
Fix typos in test names

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1439 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRemove unused code
DRC [Mon, 1 Dec 2014 20:13:12 +0000 (20:13 +0000)]
Remove unused code

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1437 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix build when INPUT_SMOOTHING_SUPPORTED is undefined
DRC [Mon, 1 Dec 2014 19:54:15 +0000 (19:54 +0000)]
Fix build when INPUT_SMOOTHING_SUPPORTED is undefined

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1435 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoSome software also needs the FAR macro. Ugh. Also wordsmithing.
DRC [Tue, 25 Nov 2014 10:07:43 +0000 (10:07 +0000)]
Some software also needs the FAR macro.  Ugh.  Also wordsmithing.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1432 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRestore the JPP() and JMETHOD() macros. Even though libjpeg-turbo doesn't use them...
DRC [Tue, 25 Nov 2014 09:48:15 +0000 (09:48 +0000)]
Restore the JPP() and JMETHOD() macros.  Even though libjpeg-turbo doesn't use them anymore, other software apparently does:
https://bugzilla.redhat.com/show_bug.cgi?id=1164815
https://bugs.kde.org/show_bug.cgi?id=340944
https://bugzilla.mozilla.org/show_bug.cgi?id=1093615

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1430 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoOops. Include the tjPlane*() functions in the mapfile so that they are exposed in...
DRC [Sat, 22 Nov 2014 23:56:26 +0000 (23:56 +0000)]
Oops.  Include the tjPlane*() functions in the mapfile so that they are exposed in the shared library on ELF systems.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1429 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix Huffman local buffer overrun discovered by Debian developers when attempting...
DRC [Sat, 22 Nov 2014 22:09:30 +0000 (22:09 +0000)]
Fix Huffman local buffer overrun discovered by Debian developers when attempting to transform a junk image using ImageMagick:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768369

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1426 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix whitespace issues introduced with previous commit.
DRC [Sat, 22 Nov 2014 04:25:04 +0000 (04:25 +0000)]
Fix whitespace issues introduced with previous commit.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1423 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoPrint the library version and exit whenever -version is passed to cjpeg, djpeg, or...
DRC [Sat, 22 Nov 2014 04:04:38 +0000 (04:04 +0000)]
Print the library version and exit whenever -version is passed to cjpeg, djpeg, or jpegtran.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1422 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoSometimes the sampling factors in grayscale images can be > 1 (for instance, if compr...
DRC [Wed, 19 Nov 2014 00:55:28 +0000 (00:55 +0000)]
Sometimes the sampling factors in grayscale images can be > 1 (for instance, if compressing using 'cjpeg -sample 2x2 -grayscale'.)  Technically, sampling factors have no meaning with grayscale JPEGs, and the libjpeg decompressor ignores them in that case.  Thus, the TurboJPEG decompressor should ignore them as well.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1418 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoMake TJCompressor.close() and TJDecompressor.close() idempotent
DRC [Tue, 18 Nov 2014 21:45:34 +0000 (21:45 +0000)]
Make TJCompressor.close() and TJDecompressor.close() idempotent

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1416 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoUses clz and bsr instructions for bit counting on ARM64 platforms as well.
DRC [Tue, 18 Nov 2014 15:56:43 +0000 (15:56 +0000)]
Uses clz and bsr instructions for bit counting on ARM64 platforms as well.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1414 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRemove trailing spaces
DRC [Thu, 6 Nov 2014 09:32:38 +0000 (09:32 +0000)]
Remove trailing spaces

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1412 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAnother oops. tjBufSizeYUV2() should return -1 if width < 1.
DRC [Thu, 23 Oct 2014 19:08:14 +0000 (19:08 +0000)]
Another oops.  tjBufSizeYUV2() should return -1 if width < 1.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1410 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoOops. tjPlaneSizeYUV() should return -1 if componentID > 0 and subsamp==TJSAMP_GRAY.
DRC [Thu, 23 Oct 2014 18:54:42 +0000 (18:54 +0000)]
Oops.  tjPlaneSizeYUV() should return -1 if componentID > 0 and subsamp==TJSAMP_GRAY.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1408 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoThe AltiVec code actually works on 32-bit PowerPC platforms as well, so change the...
DRC [Fri, 5 Sep 2014 07:23:12 +0000 (07:23 +0000)]
The AltiVec code actually works on 32-bit PowerPC platforms as well, so change the "powerpc64" token to "powerpc".  Also clean up the shift code, which wasn't building properly on OS X.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1406 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAltiVec SIMD implementation of fast forward DCT
DRC [Fri, 5 Sep 2014 06:33:42 +0000 (06:33 +0000)]
AltiVec SIMD implementation of fast forward DCT

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1405 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoBump version to 1.5 alpha1 to prepare for new features
DRC [Thu, 4 Sep 2014 18:51:31 +0000 (18:51 +0000)]
Bump version to 1.5 alpha1 to prepare for new features

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1404 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoWhen building libjpeg-turbo on Un*x systems, INT32 is usually typedef'ed to long...
DRC [Thu, 4 Sep 2014 17:35:22 +0000 (17:35 +0000)]
When building libjpeg-turbo on Un*x systems, INT32 is usually typedef'ed to 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+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1403 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoWhen building libjpeg-turbo on Un*x systems, INT32 is usually typedef'ed to long...
DRC [Thu, 4 Sep 2014 17:28:28 +0000 (17:28 +0000)]
When building libjpeg-turbo on Un*x systems, INT32 is usually typedef'ed to 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+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1402 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix Windows build
DRC [Sat, 30 Aug 2014 22:01:05 +0000 (22:01 +0000)]
Fix Windows build

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1401 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix issues with RGB565 color conversion on big endian machines. The RGB565 routines...
DRC [Sat, 30 Aug 2014 20:37:50 +0000 (20:37 +0000)]
Fix issues with RGB565 color conversion on big endian machines.  The RGB565 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+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1399 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix build on OS X PowerPC platforms
DRC [Sat, 30 Aug 2014 13:52:09 +0000 (13:52 +0000)]
Fix build on OS X PowerPC platforms

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1396 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix build on OS X PowerPC platforms
DRC [Sat, 30 Aug 2014 13:55:08 +0000 (13:55 +0000)]
Fix build on OS X PowerPC platforms

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1397 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoOops. Forgot to alter the version header in the change log to indicate the release...
DRC [Sat, 30 Aug 2014 13:48:45 +0000 (13:48 +0000)]
Oops.  Forgot to alter the version header in the change log to indicate the release of 1.4 beta.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1394 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoCreate 1.4.x branch
DRC [Fri, 29 Aug 2014 02:39:35 +0000 (02:39 +0000)]
Create 1.4.x branch

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1391 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRename the ARM64 assembly file to match the C file 1.3.90
DRC [Fri, 29 Aug 2014 01:53:17 +0000 (01:53 +0000)]
Rename the ARM64 assembly file to match the C file

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1390 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix several mathematical issues discovered in the ARM64 NEON code while running the...
DRC [Fri, 29 Aug 2014 01:49:59 +0000 (01:49 +0000)]
Fix several mathematical issues discovered in the ARM64 NEON code while running the extended regression tests introduced in r1267.  Specific comments can be found in the original patches:
https://sourceforge.net/p/libjpeg-turbo/patches/64/

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1389 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoReformat code per Siarhei's original patch (to clearly indicate that the offset instr...
DRC [Mon, 25 Aug 2014 15:26:09 +0000 (15:26 +0000)]
Reformat code per Siarhei's original patch (to clearly indicate that the offset instructions are completely independent) and add Siarhei as an individual author (he no longer works for Nokia.)

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1388 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoClarify forward compatibility of iOS/ARM builds
DRC [Sat, 23 Aug 2014 17:48:17 +0000 (17:48 +0000)]
Clarify forward compatibility of iOS/ARM builds

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1387 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoARM64 NEON SIMD support for YCC-to-RGB565 conversion
DRC [Sat, 23 Aug 2014 15:57:38 +0000 (15:57 +0000)]
ARM64 NEON SIMD support for YCC-to-RGB565 conversion

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1386 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoARM NEON SIMD support for YCC-to-RGB565 conversion, and optimizations to the existing...
DRC [Sat, 23 Aug 2014 15:47:51 +0000 (15:47 +0000)]
ARM NEON SIMD support for YCC-to-RGB565 conversion, and optimizations to the 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+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1385 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoEnsure that tjFree() is used for any JPEG buffers that might have been dynamically...
DRC [Fri, 22 Aug 2014 19:59:51 +0000 (19:59 +0000)]
Ensure that tjFree() is used for any JPEG buffers that might have been dynamically allocated by the compress/transform functions.  To keep things simple, we use tjAlloc() for the statically-allocated buffer as well, so that tjFree() can always be used to free the buffer, regardless of whether it was allocated by tjbench or by the TurboJPEG library.  This fixes crashes that occurred on Windows when running tjunittest or tjbench with the -alloc flag.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1384 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoEnsure that tjFree() is used for any JPEG buffers that might have been dynamically...
DRC [Fri, 22 Aug 2014 19:27:28 +0000 (19:27 +0000)]
Ensure that tjFree() is used for any JPEG buffers that might have been dynamically allocated by the compress/transform functions.  To keep things simple, we use tjAlloc() for the statically-allocated buffer as well, so that tjFree() can always be used to free the buffer, regardless of whether it was allocated by tjbench or by the TurboJPEG library.  This fixes crashes that occurred on Windows when running tjunittest or tjbench with the -alloc flag.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1383 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRevert r1335 and r1336. It was a valiant effort, but on Windows, xmm8-xmm15 are...
DRC [Fri, 22 Aug 2014 18:30:44 +0000 (18:30 +0000)]
Revert r1335 and r1336.  It was a valiant effort, but on Windows, xmm8-xmm15 are non-volatile, and the overhead of pushing them onto the stack at the beginning of each function and popping them at the end was causing worse performance (in the neighborhood of 3-5%) than just using the work areas and limiting the register usage to xmm0-xmm7.  Best to leave the SSE2 code alone.  We can optimize the register usage for AVX2, once that port takes place.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1382 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoDon't use sudo when building a Debian package unless the user is non-root
DRC [Fri, 22 Aug 2014 17:21:09 +0000 (17:21 +0000)]
Don't use sudo when building a Debian package unless the user is non-root

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1381 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoWindows doesn't have setenv(). Go, go Gadget Macros.
DRC [Fri, 22 Aug 2014 15:39:32 +0000 (15:39 +0000)]
Windows doesn't have setenv().  Go, go Gadget Macros.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1380 632fc199-4ca6-4c93-a231-07263d6284db

10 years ago1.4 beta1
DRC [Fri, 22 Aug 2014 14:22:00 +0000 (14:22 +0000)]
1.4 beta1

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1379 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix 'make dist'
DRC [Fri, 22 Aug 2014 14:19:12 +0000 (14:19 +0000)]
Fix 'make dist'

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1378 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoDon't use sudo when building a Debian package unless the user is non-root
DRC [Fri, 22 Aug 2014 14:15:08 +0000 (14:15 +0000)]
Don't use sudo when building a Debian package unless the user is non-root

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1377 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAdd a set of undocumented environment variables and Java system properties that allow...
DRC [Fri, 22 Aug 2014 13:43:33 +0000 (13:43 +0000)]
Add a set of undocumented environment variables and Java system properties that allow compression features of libjpeg that are not normally exposed in the TurboJPEG API to be enabled.  These features are not normally exposed because, for the most part, they aren't "turbo" features, but it is still useful to be able to benchmark them without modifying the code.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1376 632fc199-4ca6-4c93-a231-07263d6284db

10 years ago.func/.endfunc are only necessary when generating STABS debug info, which basically...
DRC [Fri, 22 Aug 2014 11:31:46 +0000 (11:31 +0000)]
.func/.endfunc are only necessary when generating STABS debug info, which basically went out of style with parachute pants and Rick Astley.  At any rate, none of the platforms for which we're building the ARM code use it (DWARF is the common format these days), and the .func/.endfunc directives cause the clang integrated assembler to fail (http://llvm.org/bugs/show_bug.cgi?id=20424).

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1375 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoExtend tjbenchtest so that it tests the dynamic JPEG buffer allocation feature in...
DRC [Fri, 22 Aug 2014 03:04:06 +0000 (03:04 +0000)]
Extend tjbenchtest so that it tests the dynamic JPEG buffer allocation feature in TurboJPEG.  Disable the tiling feature in TJBench whenever dynamic buffer allocation is enabled (because the tiling feature requires a separate buffer for each tile, using it successfully with dynamic buffer allocation would require a separate TurboJPEG compressor instance for each tile, and it's not worth going to that trouble right now.)

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1374 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRun the TurboJPEG conformance tests out of a directory in /tmp (for improved performa...
DRC [Fri, 22 Aug 2014 03:00:37 +0000 (03:00 +0000)]
Run the TurboJPEG conformance tests out of a directory in /tmp (for improved performance, if the source directory is on a remote file share.)  Fix an issue in TJBench.java that prevented it from working properly if the source image resided in a directory with a dot in the name.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1373 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoExtend tjbenchtest so that it tests the dynamic JPEG buffer allocation feature in...
DRC [Fri, 22 Aug 2014 02:57:34 +0000 (02:57 +0000)]
Extend tjbenchtest so that it tests the dynamic JPEG buffer allocation feature in TurboJPEG.  Disable the tiling feature in TJBench whenever dynamic buffer allocation is enabled (because the tiling feature requires a separate buffer for each tile, using it successfully with dynamic buffer allocation would require a separate TurboJPEG compressor instance for each tile, and it's not worth going to that trouble right now.)

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1372 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRun the TurboJPEG conformance tests out of a directory in /tmp (for improved performa...
DRC [Fri, 22 Aug 2014 02:51:16 +0000 (02:51 +0000)]
Run the TurboJPEG conformance tests out of a directory in /tmp (for improved performance, if the source directory is on a remote file share.)  Fix an issue in TJBench.java that prevented it from working properly if the source image resided in a directory with a dot in the name.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1371 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoOops
DRC [Thu, 21 Aug 2014 22:16:25 +0000 (22:16 +0000)]
Oops

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1370 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoSubtle point, but dest->outbuffer is a pointer to the address of the JPEG buffer...
DRC [Thu, 21 Aug 2014 22:15:19 +0000 (22:15 +0000)]
Subtle point, but dest->outbuffer is a pointer to the address of the JPEG buffer, which is stored in the calling program.  Thus, *(dest->outbuffer) will always equal *outbuffer.  We need to compare *outbuffer with dest->buffer instead to determine if the pointer is being reused.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1369 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoIf the output buffer in the TurboJPEG destination manager was allocated by the destin...
DRC [Thu, 21 Aug 2014 15:51:47 +0000 (15:51 +0000)]
If the output buffer in the TurboJPEG destination manager was allocated by the destination manager and is being reused from a previous compression operation, then we need to get the buffer size from the previous operation, since the calling program doesn't know the actual buffer size.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1368 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoActually, we need to increase the size of BUFSIZE, not just the size of _buffer....
DRC [Thu, 21 Aug 2014 03:40:37 +0000 (03:40 +0000)]
Actually, we need to increase the size of BUFSIZE, not just the size of _buffer.  The previous patch might have cause problems if, for instance, state->free_in_buffer was 127 but 129 bytes were compressed.  In that case, only 127 of the 129 bytes would have been written to the file.  Also document the fix.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1367 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoActually, we need to increase the size of BUFSIZE, not just the size of _buffer....
DRC [Thu, 21 Aug 2014 03:38:14 +0000 (03:38 +0000)]
Actually, we need to increase the size of BUFSIZE, not just the size of _buffer.  The previous patch might have cause problems if, for instance, state->free_in_buffer was 127 but 129 bytes were compressed.  In that case, only 127 of the 129 bytes would have been written to the file.  Also document the fix.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1366 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix an extremely rare crash that can occur when compressing a very high-frequency...
DRC [Thu, 21 Aug 2014 01:55:22 +0000 (01:55 +0000)]
Fix an extremely rare crash that can occur when compressing a very high-frequency MCU using quality 100 and no subsampling, and when dynamically allocating the JPEG buffer in the destination manager.  Even with a test program designed specifically to reproduce the crash, it only occurred once in about 25 million iterations.  More details here:  https://sourceforge.net/p/libjpeg-turbo/bugs/64

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1365 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix an extremely rare crash that can occur when compressing a very high-frequency...
DRC [Thu, 21 Aug 2014 01:53:47 +0000 (01:53 +0000)]
Fix an extremely rare crash that can occur when compressing a very high-frequency MCU using quality 100 and no subsampling, and when dynamically allocating the JPEG buffer in the destination manager.  Even with a test program designed specifically to reproduce the crash, it only occurred once in about 25 million iterations.  More details here:  https://sourceforge.net/p/libjpeg-turbo/bugs/64

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1364 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoWordsmithing & clarifications
DRC [Wed, 20 Aug 2014 16:02:49 +0000 (16:02 +0000)]
Wordsmithing & clarifications

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1363 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoDocument the existence of the new ARM64 SIMD code
DRC [Wed, 20 Aug 2014 15:40:43 +0000 (15:40 +0000)]
Document the existence of the new ARM64 SIMD code

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1362 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoProperly detect the need for gas-preprocessor.pl when building for ARM64
DRC [Wed, 20 Aug 2014 13:14:46 +0000 (13:14 +0000)]
Properly detect the need for gas-preprocessor.pl when building for ARM64

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1361 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRefactored YUVImage Java class so that it supports both unified YUV image buffers...
DRC [Sun, 17 Aug 2014 12:23:49 +0000 (12:23 +0000)]
Refactored YUVImage Java class so that it supports both unified YUV image buffers as well as separate YUV image planes;  modified the JNI functions accordingly and added new helper functions to the TurboJPEG C API (tjPlaneWidth(), tjPlaneHeight(), tjPlaneSizeYUV()) to facilitate those modifications;  changed potentially confusing "component width" and "component height" terms to "plane width" and "plane height" and modified variable names in turbojpeg.c to reflect this;  numerous other documentation tweaks

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1360 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoMake the wrapped functions static
DRC [Fri, 15 Aug 2014 16:40:56 +0000 (16:40 +0000)]
Make the wrapped functions static

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1359 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoMake the wrapped functions static
DRC [Fri, 15 Aug 2014 16:40:34 +0000 (16:40 +0000)]
Make the wrapped functions static

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1358 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoWhitespace formatting tweaks
DRC [Fri, 15 Aug 2014 16:20:59 +0000 (16:20 +0000)]
Whitespace formatting tweaks

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1357 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAllow the int pixel versions of the various TurboJPEG JNI functions to share the...
DRC [Fri, 15 Aug 2014 16:20:06 +0000 (16:20 +0000)]
Allow the int pixel versions of the various TurboJPEG JNI functions to share the same code as the byte pixel versions.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1356 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoWhitespace formatting tweaks
DRC [Fri, 15 Aug 2014 16:08:12 +0000 (16:08 +0000)]
Whitespace formatting tweaks

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1355 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAdd descriptions to help sort out which function goes with which version of the API.
DRC [Fri, 15 Aug 2014 16:07:15 +0000 (16:07 +0000)]
Add descriptions to help sort out which function goes with which version of the API.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1354 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAdd descriptions to help sort out which function goes with which version of the API.
DRC [Fri, 15 Aug 2014 15:40:02 +0000 (15:40 +0000)]
Add descriptions to help sort out which function goes with which version of the API.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1353 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoCompiler warnings
DRC [Fri, 15 Aug 2014 14:44:09 +0000 (14:44 +0000)]
Compiler warnings

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1352 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix build broken by r1349
DRC [Fri, 15 Aug 2014 14:40:36 +0000 (14:40 +0000)]
Fix build broken by r1349

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1351 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoCompiler warnings
DRC [Fri, 15 Aug 2014 14:40:05 +0000 (14:40 +0000)]
Compiler warnings

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1350 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoRestore backward compatibility between libjpeg-turbo 1.3.x JAR and the new JNI library
DRC [Fri, 15 Aug 2014 14:01:21 +0000 (14:01 +0000)]
Restore backward compatibility between libjpeg-turbo 1.3.x JAR and the new JNI library

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1349 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoAllow the int pixel versions of the various TurboJPEG JNI functions to share the...
DRC [Fri, 15 Aug 2014 13:18:58 +0000 (13:18 +0000)]
Allow the int pixel versions of the various TurboJPEG JNI functions to share the same code as the byte pixel versions.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1348 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoClean up exception handling in the JNI code. The exception is actually not thrown...
DRC [Thu, 14 Aug 2014 17:24:01 +0000 (17:24 +0000)]
Clean up exception handling in the JNI code.  The exception is actually not thrown until the function exits, so we can let the code fall through to bailout: if the TurboJPEG C function fails.  Also, per the JNI spec, no other JNI functions can be called between GetPrimitiveArrayCritical() and ReleasePrimitiveArrayCritical().  This hasn't caused any problems thus far, but better safe than sorry.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1347 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoClean up exception handling in the JNI code. The exception is actually not thrown...
DRC [Thu, 14 Aug 2014 16:54:04 +0000 (16:54 +0000)]
Clean up exception handling in the JNI code.  The exception is actually not thrown until the function exits, so we can let the code fall through to bailout: if the TurboJPEG C function fails.  Also, per the JNI spec, no other JNI functions can be called between GetPrimitiveArrayCritical() and ReleasePrimitiveArrayCritical().  This hasn't caused any problems thus far, but better safe than sorry.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1346 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoOops. Parameter name is "strides", not "stride"
DRC [Tue, 12 Aug 2014 15:52:51 +0000 (15:52 +0000)]
Oops.  Parameter name is "strides", not "stride"

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1345 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoReformat TurboJPEG C API documentation to improve ease of maintenance and to make...
DRC [Tue, 12 Aug 2014 15:06:30 +0000 (15:06 +0000)]
Reformat TurboJPEG C API documentation to improve ease of maintenance and to make it more consistent with the javadoc formatting;  fix minor error in tjCompressFromYUV() prototype.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1344 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoExtend the TurboJPEG C API to support handling YUV images stored in separate image...
DRC [Mon, 11 Aug 2014 18:05:41 +0000 (18:05 +0000)]
Extend the TurboJPEG C API to support handling YUV images stored in separate image planes instead of a unified buffer

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1343 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoClean up and consolidate notes regarding the YUV image format. This also corrects...
DRC [Sun, 10 Aug 2014 20:12:17 +0000 (20:12 +0000)]
Clean up and consolidate notes regarding the YUV image format.  This also corrects a factual error regarding the padding of the luminance plane-- because we now support 4:1:1, the component width is not necessarily padded to the nearest multiple of 2 if horizontal subsampling is used.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1342 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoClean up notes using the doxygen @note command
DRC [Sun, 10 Aug 2014 18:30:52 +0000 (18:30 +0000)]
Clean up notes using the doxygen @note command

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1341 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoClean up notes using the doxygen @note command
DRC [Sun, 10 Aug 2014 17:25:51 +0000 (17:25 +0000)]
Clean up notes using the doxygen @note command

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1340 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoMake the documentation more readable by displaying fixed-width text (which is used...
DRC [Sun, 10 Aug 2014 16:43:31 +0000 (16:43 +0000)]
Make the documentation more readable by displaying fixed-width text (which is used to refer to variables and functions) in a different color.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1339 632fc199-4ca6-4c93-a231-07263d6284db

10 years agoFix a display issue in the documentation for tjDecompress2() (doxygen treats a star...
DRC [Sun, 10 Aug 2014 16:39:32 +0000 (16:39 +0000)]
Fix a display issue in the documentation for tjDecompress2() (doxygen treats a star at the beginning of the line as a list bullet);  make the documentation more readable by displaying fixed-width text (which is used to refer to variables and functions) in a different color.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1338 632fc199-4ca6-4c93-a231-07263d6284db

10 years ago12-bit JPEG support
DRC [Sat, 9 Aug 2014 23:06:07 +0000 (23:06 +0000)]
12-bit JPEG support

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1337 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoThe Independent JPEG Group's JPEG software v6b jpeg-6b
Thomas G. Lane [Fri, 27 Mar 1998 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v6b

9 years agoThe Independent JPEG Group's JPEG software v6a jpeg-6a
Thomas G. Lane [Wed, 7 Feb 1996 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v6a

9 years agoThe Independent JPEG Group's JPEG software v6 jpeg-6
Thomas G. Lane [Wed, 2 Aug 1995 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v6