Jeffrey Bush
|
1cfac269a8
|
Finally fixed #4. The problem is that on Windows the stack is 4-byte aligned and GCC assumes (for some optimizations) 16-byte alignment. A GCC stack alignment fix was added to functions that needed it.
Also increased XPRESS Huffman max compressed size which helps #14.
|
2015-03-19 20:52:50 -07:00 |
|
Jeffrey Bush
|
66e93e7581
|
Fixing some warnings with gcc -Wextra -pedantic -Wuninitialized. The remaining warnings are mostly about variadic macros.
|
2015-03-18 12:56:44 -07:00 |
|
Jeffrey Bush
|
e877ca5554
|
Corrected XPRESS Huffman compression to max size and added checks to make sure it always stays under the max size. In addition many other changes were made for improved performance.
|
2015-03-17 22:39:05 -07:00 |
|
Jeffrey Bush
|
3b3e29ed69
|
Adding comment about bzip2 inspiration and removing sorting library.
|
2015-03-13 18:32:35 -07:00 |
|
Jeffrey Bush
|
7b7ed8cbf4
|
Completely changed the Huffman encoder to use an algorithm inspired by bzip2. This increases compression speed by more than 100%! That is its twice as fast! Downside is that compression ratio is slightly worse (but just barely: 32.792% to 32.853% or 167kb in 269MB). It also uses less stack (total 17kb).
|
2015-03-13 18:25:24 -07:00 |
|
Jeffrey Bush
|
345d9752b4
|
Improved the package-merge algorithm on the Huffman Encoder to use stack memory (its a lot of it - 519 kb now!). This improves its speed quite a bit (compression speed increases by 25%).
|
2015-03-13 18:20:07 -07:00 |
|
Jeffrey Bush
|
32a8ce209b
|
Found which loop was causing the access violation with GCC tree-vectorization and put it into the source so tree-vectorization is not disabled globally. Also improved Huffman encoder slightly, mainly by changing merge sort to use insertion sort when "small".
|
2015-03-11 20:01:04 -07:00 |
|
Jeffrey Bush
|
62e73cc836
|
Reorganized code some more to allow it to be easier to bundle into other libraries and fixed some includes.
|
2015-02-12 12:29:53 -08:00 |
|