Thomas G. Lane
bc79e0680a
The Independent JPEG Group's JPEG software v6
2015-07-29 15:31:30 -05:00
Thomas G. Lane
36a4ccccd3
The Independent JPEG Group's JPEG software v5
2015-07-29 15:28:00 -05:00
DRC
aee4f72160
12-bit JPEG support
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1337 632fc199-4ca6-4c93-a231-07263d6284db
2014-08-09 23:06:07 +00:00
Josh Aas
39bd663c71
Add error checks for malloc calls that don't already have them. Issue #87 .
2014-08-07 22:42:08 -05:00
Frank Bossen
7464e5fe76
Fix issue with DC trellis
2014-08-01 16:03:26 -04:00
Frank Bossen
049e5c80b9
Add trellis for DC
...
Add option to apply trellis quantization to the DC coefficients ( see
#57 ). May need further refinement to make sure block order during
trellis optimization matches order during coding.
2014-07-31 12:11:36 -04:00
Frank Bossen
1aa50b71d9
Use precomputed table
...
From jpeglib-turbo r1221:
Integrate a slightly modified version of Mozilla's patch for
precomputing the bit-counting LUT. This is useful if the table needs
to be shared among multiple processes, although the primary reason for
doing that is reduced footprint on mobile devices, which are probably
already covered by the clz intrinsic code.
2014-07-24 10:50:59 -04:00
Pavel Medvedev
d9605b0560
Fixed mozjpeg build with Visual C++ 2010
...
Moved several variable declarations out of inner scopes to the function scope to compile C code with Visual C++ 2010
2014-07-21 15:32:54 +04:00
Frank Bossen
b8c8ef9851
Silence compiler warning
...
gcc 4.8 was throwing 'foo' may be used uninitialized in this function
[-Wmaybe-uninitialized]
2014-06-04 16:31:27 +02:00
DRC
46611eb0ee
libjpeg-turbo has never supported non-ANSI compilers, so get rid of the 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.
2014-05-18 19:04:03 +00:00
DRC
66245aa735
libjpeg-turbo has never supported non-ANSI compilers, so get rid of the 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+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1313 632fc199-4ca6-4c93-a231-07263d6284db
2014-05-18 19:04:03 +00:00
DRC
5de454b291
libjpeg-turbo has never supported non-ANSI compilers, so get rid of the 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+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1313 632fc199-4ca6-4c93-a231-07263d6284db
2014-05-18 19:04:03 +00:00
DRC
f8301c92dd
Get rid of the HAVE_PROTOTYPES configuration option, as well as the related JMETHOD and JPP macros. libjpeg-turbo has never supported compilers that don't handle prototypes. Doing so requires ansi2knr, which isn't even supported in the IJG code anymore.
2014-05-16 10:43:44 +00:00
DRC
1aa56251a9
Get rid of the HAVE_PROTOTYPES configuration option, as well as the related JMETHOD and JPP macros. libjpeg-turbo has never supported compilers that don't handle prototypes. Doing so requires ansi2knr, which isn't even supported in the IJG code anymore.
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1308 632fc199-4ca6-4c93-a231-07263d6284db
2014-05-16 10:43:44 +00:00
DRC
bc56b754e1
Get rid of the HAVE_PROTOTYPES configuration option, as well as the related JMETHOD and JPP macros. libjpeg-turbo has never supported compilers that don't handle prototypes. Doing so requires ansi2knr, which isn't even supported in the IJG code anymore.
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1308 632fc199-4ca6-4c93-a231-07263d6284db
2014-05-16 10:43:44 +00:00
Frank Bossen
ea4fad9aec
Fix #50
...
Make trellis work with DCT implementations other than the default:
scale and store transform coefficients for trellis
2014-05-10 14:59:58 -04:00
DRC
e45363d7c2
Convert tabs to spaces in the libjpeg code and the SIMD code (TurboJPEG 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.)
2014-05-09 18:00:32 +00:00
DRC
16d7eeb944
Convert tabs to spaces in the libjpeg code and the SIMD code (TurboJPEG 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+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1278 632fc199-4ca6-4c93-a231-07263d6284db
2014-05-09 18:00:32 +00:00
DRC
e5eaf37440
Convert tabs to spaces in the libjpeg code and the SIMD code (TurboJPEG 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+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1278 632fc199-4ca6-4c93-a231-07263d6284db
2014-05-09 18:00:32 +00:00
Frank Bossen
b03b5797f4
Add optimization of quantization matrix
...
Optimizes quantization matrix by minimizing reconstruction error based
on quantized coefficients.
Feature is controlled by cinfo->trellis_q_opt; disabled by default.
2014-04-28 16:28:05 -04:00
Frank Bossen
2012e32f19
Update trellis quantization to support progressive coding mode
...
Trellis quantization is modified:
- to work on the configurable spectral range Ss to Se
- to optionally optimize runs of EOBs
- to optionally split optimization between 2 spectral ranges
In trellis quantization passes Huffman table code optimization is
modified such as to generable a valid code length for each possible
symbol by resetting frequency counters to 1 instead of 0
2014-04-01 20:14:37 +02:00
Frank Bossen
2de8e97989
Add option to use lambda weighting table
...
Different lambda values may be used for each frequency in DCT domain.
The weighting table is currently not configurable but can be
enabled/disabled with cinfo-> use_lambda_weight_tbl
2014-03-26 00:06:07 +01:00
Frank Bossen
3e8afe7f94
Add option to control lambda parameter from command line
...
-lambda1 and -lambda2 command line parameters are added to cjpeg to
control trellis quantization
2014-03-24 20:51:46 +01:00
Frank Bossen
d200b2c144
Initial implementation of trellis quantization
...
A new pass type trellis_pass is added. It defines a pass where trellis
quantization is done in the quantize_trellis() function.
Trellis quantization can be enabled by setting use_moz_defaults to 2 or
by using the -trellis option in cjpeg
Note that trellis does currently not work with scan optimization. Scan
optimization is disabled when trellis is enabled.
2014-03-23 21:06:01 +01:00
Josh Aas
72b66f9c77
Initial commit of libjpeg-turbo plus readme edits.
2014-01-13 18:28:20 -06:00
DRC
e2563adb2e
Some of the IJG headers say "Modified by", so clarify that our "Modifications" are not referring to these.
2013-09-28 03:22:53 +00:00
DRC
472ecea71e
Some of the IJG headers say "Modified by", so clarify that our "Modifications" are not referring to these.
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1053 632fc199-4ca6-4c93-a231-07263d6284db
2013-09-28 03:23:49 +00:00
DRC
a6ef282a49
Some of the IJG headers say "Modified by", so clarify that our "Modifications" are not referring to these.
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1053 632fc199-4ca6-4c93-a231-07263d6284db
2013-09-28 03:23:49 +00:00
DRC
de30fe9460
Change the copyright notices to make it clear that our modified files are not part of the IJG's software.
2012-12-31 02:42:18 +00:00
DRC
a73e870ad0
Change the copyright notices to make it clear that our modified files are not part of the IJG's software.
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.2.x@873 632fc199-4ca6-4c93-a231-07263d6284db
2012-12-31 02:52:30 +00:00
DRC
a112f12efd
Compiler warnings
2012-01-31 05:27:41 +00:00
DRC
d65d99a9f5
Compiler warnings
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.2.x@758 632fc199-4ca6-4c93-a231-07263d6284db
2012-01-31 03:39:23 +00:00
DRC
756095aaf0
The SIMD quantization algorithm does not produce correct results with the fast forward integer DCT and JPEG qualities >= 98, so for now, use the non-SIMD quantization function under those circumstances.
2011-02-18 20:50:08 +00:00
DRC
a49c4e5247
The SIMD quantization algorithm does not produce correct results with the fast forward integer DCT and JPEG qualities >= 98, so for now, use the non-SIMD quantization function under those circumstances.
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@395 632fc199-4ca6-4c93-a231-07263d6284db
2011-02-18 20:50:08 +00:00
DRC
9a6243c913
Some systems (notably OS X Leopard) have fls() already, so rename ours to avoid conflict
2009-10-01 22:26:14 +00:00
DRC
fc5dc4fa19
Some systems (notably OS X Leopard) have fls() already, so rename ours to avoid conflict
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@66 632fc199-4ca6-4c93-a231-07263d6284db
2009-10-01 22:26:14 +00:00
Pierre Ossman
59641bb95f
Move variable init around a bit to please crappy compilers.
2009-03-13 12:17:26 +00:00
Pierre Ossman
dc5db14a33
Move variable init around a bit to please crappy compilers.
...
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@26 632fc199-4ca6-4c93-a231-07263d6284db
2009-03-13 12:17:26 +00:00
Pierre Ossman
c7de3b4d83
Make sure the work space memory is properly aligned
...
We use the heap allocators to avoid having more than one implementation
of the alignment logic.
2009-03-09 13:29:37 +00:00
Pierre Ossman
35c4719638
Make sure the work space memory is properly aligned
...
We use the heap allocators to avoid having more than one implementation
of the alignment logic.
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@19 632fc199-4ca6-4c93-a231-07263d6284db
2009-03-09 13:29:37 +00:00
Pierre Ossman
e1594812ac
"Optimise" quantization step by replacing the division by a multiplication.
...
This has no measurable difference right now but makes it possible to do
SIMD implementations of this stage.
2009-03-09 13:23:04 +00:00
Pierre Ossman
dedc42e268
"Optimise" quantization step by replacing the division by a multiplication.
...
This has no measurable difference right now but makes it possible to do
SIMD implementations of this stage.
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@16 632fc199-4ca6-4c93-a231-07263d6284db
2009-03-09 13:23:04 +00:00
Pierre Ossman
c5cf41164a
Framework for supporting SIMD acceleration
...
Designed to impose minimal changes on the "normal" code.
2009-03-09 13:15:56 +00:00
Pierre Ossman
59a3938b2e
Framework for supporting SIMD acceleration
...
Designed to impose minimal changes on the "normal" code.
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@14 632fc199-4ca6-4c93-a231-07263d6284db
2009-03-09 13:15:56 +00:00
Pierre Ossman
a4f55b50c9
Split up the forward DCT routine into three stages
...
Divide it into sample conversion, DCT and quantization in order to
easily provide alternative implementations of each stage.
2009-03-09 10:37:20 +00:00
Pierre Ossman
49dcbfbf13
Split up the forward DCT routine into three stages
...
Divide it into sample conversion, DCT and quantization in order to
easily provide alternative implementations of each stage.
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@13 632fc199-4ca6-4c93-a231-07263d6284db
2009-03-09 10:37:20 +00:00
Thomas G. Lane
16c97143f3
The Independent JPEG Group's JPEG software v6a
2014-09-07 20:00:00 +01:00
Thomas G. Lane
0baf670330
The Independent JPEG Group's JPEG software v6
2014-09-07 20:00:00 +01:00
Thomas G. Lane
c5414ae082
The Independent JPEG Group's JPEG software v5
2014-09-07 20:00:00 +01:00