Timofey Solomko
e32887084c
[Huffman] Change Decoding/Encoding tree to structs
...
This seems to have a positive impact on the performance of Deflate and BZip2 decompression and compression. It is unclear to me why these two were declared as classes in the first place.
2026-03-01 20:35:22 +08:00
Timofey Solomko
d8c22c55da
[Deflate][Huffman] Filter out zero code lengths only during code construction
...
This should prevent crashes described in issue #57 .
2026-03-01 20:35:21 +08:00
Timofey Solomko
7f547c20a1
[Huffman] Optimize DecodingTree leaf count
2026-03-01 20:35:21 +08:00
Timofey Solomko
273b6ed9e9
Remove redundant imports
2026-02-18 12:21:57 +08:00
Timofey Solomko
5b5b20f582
[Huffman] Remove codes argument label from EncodingTree.init
2026-02-18 00:12:55 +08:00
Timofey Solomko
ce1736a2b0
[Huffman] Add HuffmanCodes typealias for clarity
2026-02-18 00:10:29 +08:00
Timofey Solomko
ea9aaccfb9
Update copyright year to 2026
2026-01-31 15:30:24 +08:00
Timofey Solomko
ed66991cbd
Update copyright year to 2024
2024-01-11 16:57:04 +03:00
Timofey Solomko
43132fc39d
Update copyright year to 2023
2023-02-07 15:31:45 +02:00
Timofey Solomko
2b47fb7f49
[Deflate] Replace computation of static tree codes from lenghts with precomputed codes
2022-05-21 23:00:36 +03:00
Timofey Solomko
f539a53386
[Huffman] Ensure that there is data available in findNextSymbol()
...
This fixes potential crashes in BZip2 and Deflate when processing truncated data (a corresponding symbolNotFound error will be thrown instead). There is a performance penalty to this fix, though.
2022-01-20 22:07:43 +03:00
Timofey Solomko
79295db930
Update copyright year to 2022
2022-01-08 15:02:59 +03:00
Timofey Solomko
5f7141fd78
Replace Int arrays in EncodingTree with a new CodingIndex struct
...
The hope is that this will improve memory layout/management, and, consequently, improve performance (slightly).
2021-05-22 23:34:31 +03:00
Timofey Solomko
1fca632c2d
Update copyright year to 2021
2021-03-26 13:50:20 +02:00
Timofey Solomko
a844b34436
Update copyright year to 2020
2020-03-20 09:43:42 +03:00
Timofey Solomko
04f64bcb72
Rename Encoding/DecodingHuffmanTree to just Encoding/DecodingTree
2019-03-12 22:31:35 +03:00
Timofey Solomko
142fd44dd2
Remove old CodeLength initializer from Encoding(Huffman)Tree
2019-03-12 22:31:24 +03:00
Timofey Solomko
250c9fbd4c
Remove old CodeLength initializer from Decoding(Huffman)Tree
2019-03-12 22:31:13 +03:00
Timofey Solomko
5e51968ca6
Add a func which generates Huffman codes based on their lengths
2019-03-12 22:31:02 +03:00
Timofey Solomko
6889f58461
Add new initiliaziers to huffman trees which init from codes instead of lengths
2019-03-12 22:30:50 +03:00
Timofey Solomko
7ae5cfa1a2
Add a new struct which represents an abstract code from coding tree
2019-03-12 22:30:35 +03:00
Timofey Solomko
9f138f86a6
Move Huffman tree related code into the CodingTree sub-group/directory
2019-03-12 22:30:21 +03:00