6eb7d3798b5a79347c62825fc4c16f7ce673bdd0 |
|
16-Oct-2016 |
Alex Naidis <alex.naidis@linux.com> |
libjpeg-turbo: Upgrade to 1.5.1 The changes from 1.4.2 to 1.5.1 include a big amount of fixes and huge performance improvements. As highlights there is a full ARM 64-bit (ARMv8) NEON SIMD implementation which improves compression of full-color JPEGs by about 2-2.5x on average on Cortex-A53 and Cortex-A57 cores. Also SIMD acceleration for Huffman encoding on NEON-capable ARM 32-bit and 64-bit platforms was added. Performance on x86/x86_64 was also improved by adding better optimized SSE2 routines. For the full changelog, please see the ChangeLog.md file. Partial decoding optimizations, the security fix to adress b/27494207 and the fix for the AARCH64 conformance issueare present in the release. The README.android file was edited to reflect this. The configuration files were regenerated and all Android specific changes were applied. BUG:28268702 Change-Id: I538291d894df1da01d3f733771647df1fb61ec42 Signed-off-by: Alex Naidis <alex.naidis@linux.com>
/external/libjpeg-turbo/simd/jdsample-sse2-64.asm
|
498d9bc92fcf39124b6f08e57326944dedd2ddd6 |
|
15-Sep-2015 |
Chandler Carruth <chandlerc@gmail.com> |
Fix x86-64 ABI conformance issue in SIMD code (descriptions cribbed by DRC from discussion in #20) In the x86-64 ABI, the high (unused) DWORD of a 32-bit argument's register is undefined, so it was incorrect to use a 64-bit mov instruction to transfer a JDIMENSION argument in the 64-bit SSE2 SIMD functions. The code worked thus far only because the existing compiler optimizers weren't smart enough to do anything else with the register in question, so the upper 32 bits happened to be all zeroes-- for the past 6 years, on every x86-64 compiler previously known to mankind. The bleeding-edge Clang/LLVM compiler has a smarter optimizer, and under certain circumstances, it will attempt to load-combine adjacent 32-bit integers from one of the libjpeg structures into a single 64-bit integer and pass that 64-bit integer as a 32-bit argument to one of the SIMD functions (which is allowed by the ABI, since the upper 32 bits of the 32-bit argument's register are undefined.) This caused the libjpeg-turbo regression tests to crash. Also enhance the documentation of JDIMENSION to explain that its size is significant to the implementation of the SIMD code. Closes #20. Refer also to http://crbug.com/532214.
/external/libjpeg-turbo/simd/jdsample-sse2-64.asm
|
24e92e9fc0e3d3c0b3107d5dfcb49649e3b67a49 |
|
10-May-2014 |
DRC <dcommander@users.sourceforge.net> |
Using subdirectories unfortunately opened up a can of worms. In order to prevent object name conflicts, it is necessary to use the subdir-objects automake directive, but it simply doesn't work right on some of the versions of automake we still have to support. Another option would be to add a separate Makefile.am file to each subdirectory, but that requires maintaining a completely different set of build rules for each one. Fortunately, however, we're in the 21st century now, so we can use filenames longer than 8.3. git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1282 632fc199-4ca6-4c93-a231-07263d6284db
/external/libjpeg-turbo/simd/jdsample-sse2-64.asm
|