Commit Graph

22 Commits

Author SHA1 Message Date
Frank Bossen
21b2f11a42 Fix issue with quantization matrix optimization
Update quantization matrix in trellis loop
2014-04-29 13:00:50 -04:00
Frank Bossen
87d506416f Fix issue when trellis is disabled
master->pass_number_scan_opt_base needs to be set to appropriate value
when trellis is disabled
2014-04-29 12:32:05 -04: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
1733487e17 Add option to perform multiple trellis quantization iterations
Multiple trellis iterations may improve coding performance as Huffman
tables are updated with each iteration. In practice the benefit appears
to be very minimal
2014-04-01 23:14:29 +02: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
199fffb759 Enable combination of trellis quantization and scan optimization 2014-03-28 12:42:37 +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
fbossen
e8376f242d Fix indentation 2014-02-21 13:36:55 -05:00
fbossen
c3e2b3c933 Fix issue with uninitialised variable 2014-02-19 18:56:58 -05:00
fbossen
b346a5cc31 Move field 2014-02-19 16:49:57 -05:00
fbossen
c92da453f3 Implement pruning of search for best number of refinement layers 2014-02-19 16:42:38 -05:00
fbossen
8d0816e808 Reorder scan buffers to match jpgcrush order 2014-02-19 15:56:36 -05:00
fbossen
3d26a0a343 Regroup copying of scan buffers 2014-02-19 15:38:20 -05:00
fbossen
579d16b032 Add pruning of frequency split selection
Skip passes for frequency splitting if they are unlikely to provide
better results.
Moved related fields from cinfo to master object.
2014-02-19 15:12:23 -05:00
fbossen
5ca1602f2f Clean up scan optimisation code
Remove code that was casting const to non-const
2014-02-19 13:36:00 -05:00
fbossen
e64d7453e9 Resolve mismatch with jpgcrush
Add early termination to search for best Al parameter
2014-02-15 09:13:03 -05:00
fbossen
dff12f6b87 Fix issues with chroma scan optimisation 2014-02-14 18:57:15 -05:00
fbossen
a4137a6c14 Add support for scan optimisation of monochrome pictures 2014-02-14 18:12:51 -05:00
fbossen
09fde9eaf6 Clean up scan optimisation code
Remove hard coded values and restructure code.
2014-02-14 17:11:56 -05:00
fbossen
71f953d0be Clean up scan optimisation code
Lessen use of hardcoded values in luma search
2014-02-13 19:09:32 -05:00
fbossen
16c3cdb956 Initial version of scan optimisation
First implementation of scan optimisation as done by jpgcrush. Many
parameters are currently hardcoded which should be changed.
Implementation is missing for monochrome.
2014-02-13 16:55:56 -05:00
Josh Aas
72b66f9c77 Initial commit of libjpeg-turbo plus readme edits. 2014-01-13 18:28:20 -06:00