Alexander Suvorov
7b6f456399
Optimize selector quantization, assignment and refinement
...
This change significantly improves compression speed.
Explanation:
The main ideas used for selector computations optimization:
- possible pixel values for each endpoint can be cached
- the distances between the possible pixel values and the actual pixels values within a block can be cached for fast error computation during selector assignment
- selector refinement can be efficiently integrated with the selector assignment, as it is based on the same set of cached error values
- using block encoding instead of chunk encoding for both endpoints and selectors eliminates extra levels of indirection
Testing:
The modified algorithm has been tested on the Kodak test set using 64-bit build with default settings (running on Windows 10, i7-4790, 3.6GHz). All the decompressed test images are identical to the images being compressed and decompressed using original version of Crunch.
[Compressing Kodak set without mipmaps]
Original: 1582222 bytes / 28.953 sec
Modified: 1494501 bytes / 19.667 sec
Improvement: 5.54% (compression ratio) / 32.07% (compression time)
[Compressing Kodak set with mipmaps]
Original: 2065243 bytes / 36.998 sec
Modified: 1945365 bytes / 25.642 sec
Improvement: 5.80% (compression ratio) / 30.69% (compression time)
2017-05-19 19:55:10 +02:00
..
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-05-10 11:32:01 +02:00
2017-05-10 11:32:01 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2011-12-27 21:18:07 +00:00
2017-05-18 13:44:04 +02:00
2017-05-18 13:44:04 +02:00
2017-05-18 13:44:04 +02:00
2017-05-18 13:44:04 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-05-19 19:55:10 +02:00
2017-05-19 19:55:10 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 13:16:13 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2012-04-26 07:14:21 +00:00
2017-04-28 11:32:14 +02:00
2017-04-28 11:32:14 +02:00
2017-04-26 13:16:13 +02:00
2017-04-26 13:16:13 +02:00
2017-04-26 13:16:13 +02:00
2017-04-26 13:16:13 +02:00
2017-04-26 13:16:13 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2011-12-27 21:18:07 +00:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2011-12-27 21:18:07 +00:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2017-04-26 11:41:07 +02:00
2012-11-25 08:41:25 +00:00