Commit Graph

25 Commits

Author SHA1 Message Date
Frank Bossen
33f39a2818 Add option to split DC scans
Command line option -split-dc-scan is added to code DC scans
independently (instead of interleaved). It should be determined whether
this option introduces any decoder compatibility issues ( see #83 )
Option -multidcscan is renamed to -opt-dc-scan
2014-07-31 15:26:38 -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
55e3e7e819 Fix #64
Setting a user-defined quality level in cjpeg was incorrectly setting
quantization table
2014-07-09 11:37:36 +09:00
Frank Bossen
93da07241d Merge branch 'trellis' 2014-05-09 18:28:26 -04:00
Frank Bossen
87254c1c44 Use single DC scan by default
Value of cinfo->one_dc_scan is set to true by default to use a single
DC scan for all components.
Option -onedcscan is replaced by -multidcscan to enable multiple DC
scans.
While this change appears to degrade compression performance it
improves compatibility with a wider range of JPEG decoders.
2014-05-09 10:46:00 -04:00
Frank Bossen
13e2115054 Add option to have single DC scan
Add option to have a single DC scan wherein all components are
interleaved when using progressive mode. This may resolve compatibility
issues raised in #29 and #48.
This option is available through -onedcscan in cjpeg
2014-05-08 17:33:14 -04:00
Frank Bossen
a5403fda93 Remove outdated and incorrect comment 2014-05-05 11:31:34 -04:00
Frank Bossen
c88aade31c Revert type change
Revert type of use_moz_defaults to boolean
2014-04-30 14:54:18 -04:00
Frank Bossen
101df25fde Modify trellis parameter defaults
Modify trellis parameters to optimize for PSNR-HVS by default
2014-04-29 14:03:34 -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
758ed27a05 Add option to use flat quantization table
Set cinfo->use_flat_quant_tbl to TRUE to use flat quantization table or
-flat option in cjpeg
2014-03-24 16:30:56 +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
d12ca848a2 Windows build fix. 2014-03-13 10:01:11 -05:00
fbossen
febf3466d4 Optimize scans by default only if Mozilla defaults enabled 2014-03-06 01:28:44 +09:00
fbossen
5523494348 Fix issue with num_components not set
Calls to jpeg_simple_progression() should be made after num_components
is set in a function such as jpeg_default_colorspace()
2014-03-06 00:55:52 +09:00
fbossen
c92da453f3 Implement pruning of search for best number of refinement layers 2014-02-19 16:42:38 -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
fbossen
52925cfff2 Add fast jpgcrush mode
Add the fast mode of jpgcrush where:
- Huffman table optimisation is enabled
- Progressive coding mode is enabled
- New default scans are defined for progressive coding
2014-02-11 11:09:37 -05:00
Josh Aas
72b66f9c77 Initial commit of libjpeg-turbo plus readme edits. 2014-01-13 18:28:20 -06:00