Alexander Suvorov
c9fd4dca75
Compute compressed endpoints size without pack simulation
...
This change improves compression speed.
Explanation:
While trying different remappings for the endpoint indices, there is no need to perform full pack simulation when using Huffman coding. Once the delta index histogram is generated, it is sufficient to simply multiply the code sizes by the corresponding frequences in order to get the total size of the compressed endpoint indices stream. There is also no need to compute the rest of the compressed stream, as its size does not depend on the endpoint remapping and therefore is always constant, so it will not affect the size comparison during endpoint optimization.
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.864 sec
Modified: 1494501 bytes / 25.317 sec
Improvement: 5.54% (compression ratio) / 12.29% (compression time)
[Compressing Kodak set with mipmaps]
Original: 2065243 bytes / 36.927 sec
Modified: 1945365 bytes / 33.151 sec
Improvement: 5.80% (compression ratio) / 10.23% (compression time)
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
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-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-09 17:34:21 +02:00
2017-05-09 17:34:21 +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