Commit Graph
75 Commits
Author SHA1 Message Date
chylex 435b9d8e5b Simplify context map construction 2020-04-12 09:55:37 +02:00
chylex 9c57e552a1 Split HuffmanGenerator into 2 files & refactor 2020-04-07 17:51:34 +02:00
chylex b29c044263 Minor code fixes (in/readonly keywords, exception messages, LINQ tweaks) 2020-04-07 17:41:24 +02:00
chylex ed931fe700 Update FrequencyList API & update existing uses 2020-04-05 17:34:10 +02:00
chylex b919713d7b Fix infinite loop in context map RLE decider 2020-03-12 14:30:13 +01:00
chylex 06bb3a316d Add serialization parameter to control length code tree generation for Huffman trees 2020-03-11 09:17:36 +01:00
chylex da747b875f Implement Huffman tree RLE decider & add official heuristic as default 2020-03-11 03:38:14 +01:00
chylex bd539907d8 Tweak context map serialization code & markers 2020-03-10 05:40:07 +01:00
chylex 833c6f1359 Implement context map RLE decider, add it & Huffman tree gen to serialization params 2020-03-10 05:39:34 +01:00
chylex aa59f81da5 Fix documentation to use <c> instead of <code> 2020-03-10 00:42:02 +01:00
chylex 3dbd109c56 Move ContextMap builder into a separate class and reduce dependencies on it 2020-03-04 20:10:53 +01:00
chylex f8f78d082d Work on BrotliLib APIs (block-switch, builder validation, minor code tweaks) 2020-02-12 19:11:59 +01:00
chylex 1bd0822d63 Work on BrotliLib APIs (compression params, encode pipeline, minor tweaks) 2020-01-28 20:00:28 +01:00
chylex efa84b795d Move & rename Brotli compressed components and utils 2020-01-23 14:55:31 +01:00
chylex a2baff135a Rework ContextMap.Builder API & move MoveToFront 2020-01-23 11:25:16 +01:00
chylex 73fef4c8e0 Add Brotli serialization param to determine Huffman tree skip/repeat code usage 2019-12-31 05:59:52 +01:00
chylex a6a1eefcf3 Minor code and API tweaks (collections, literal output, LiteralContextMode) 2019-11-30 03:07:33 +01:00
chylex 53f3f2b7d2 Remove HuffmanNode.SymbolCount and use HuffmanTree lookup instead 2019-11-30 01:48:09 +01:00
chylex 08544f7298 Improve performance & memory usage of serialization 2019-11-29 14:47:41 +01:00
chylex 16736e9560 Optimize memory allocations when serializing and building meta-blocks 2019-11-28 02:36:55 +01:00
chylex ad96d2ea42 Tweak Brotli component APIs & add/update ToString() 2019-11-28 02:36:54 +01:00
chylex e93ffbbc6e Move BrotliFileParameters & BrotliSerializationParameters to a different namespace 2019-11-26 18:25:17 +01:00
chylex c9e1b10dbc Enable C# 8 nullable reference types for all projects & fix warnings 2019-11-26 14:42:10 +01:00
chylex 75f02483e7 Move decision-making for ContextMap IMTF/RLE to BrotliSerializationParameters 2019-11-26 12:44:21 +01:00
chylex e136ffb958 Fix edge cases in distance code picking & Huffman tree serialization 2019-11-25 17:01:02 +01:00
chylex ea44d59778 Minor optimizations and code tweaks 2019-11-24 13:48:18 +01:00
chylex 12ca8ec5a9 Optimize lambdas in Brotli markers 2019-11-23 18:54:08 +01:00
chylex 651a7cfd3c Minor fixes (unit test, documentation, console null check, null assignment operator) 2019-11-23 07:34:23 +01:00
chylex 3f493862a4 Refactor & reorganize MetaBlock components 2019-11-23 07:34:23 +01:00
chylex d578fb4346 Reorganize BrotliLib namespaces 2019-11-22 05:44:02 +01:00
chylex 26e8f01155 Avoid creating HuffmanTree lookup structure when only deserializing 2019-11-01 17:47:50 +01:00
chylex 4c029e4676 Avoid creating unnecessary marker objects & tweak TitleMarker 2019-11-01 17:46:41 +01:00
chylex 4e7c08879c Fix broken multithreading in Brotli deserialization 2019-11-01 10:06:34 +01:00
chylex 04a23663b0 Reorganize HuffmanTree & BlockSwitchTracker 2019-10-31 19:13:08 +01:00
chylex 974541b937 Minor BrotliLib refactoring (ranges, exceptions, formatting) 2019-10-31 19:13:08 +01:00
chylex f9838bca04 Improve efficiency of encoding Huffman tree repetition codes 2019-10-21 00:16:20 +02:00
chylex 87011bc853 Rewrite AlphabetSize.BitsPerSymbol to use Log2 utility class 2019-10-20 06:40:37 +02:00
chylex 79a96735a5 Move various log2(int) implementations into a utility class 2019-10-20 06:29:43 +02:00
chylex 611fac1525 Properly implement and cleanup GetHashCode & Equals in BrotliLib 2019-10-19 15:27:39 +02:00
chylex e84dcd4ac9 Address IDE suggestions (C# 8.0) & minor refactoring 2019-10-19 01:43:54 +02:00
chylex b07c707759 Upgrade libraries to .NET Standard 2.1 and UI/test projects to .NET Core 3.0 2019-10-18 20:11:44 +02:00
chylex 50035519f8 Make most marker values lazy 2019-07-08 23:46:26 +02:00
chylex 05690a1bea Improve marker memory usage by interning strings 2019-07-08 18:13:11 +02:00
chylex da910cc147 Refactor BitWriter, BitReader, and MarkedBitReader into interfaces 2019-06-18 15:06:39 +02:00
chylex 8c5ae6a960 Separate IBitSerializer into serializer & deserializer delegates 2019-06-18 05:00:33 +02:00
chylex 52d435dece Fix invalid complex Huffman tree length codes generated for incomplete trees 2019-05-24 14:11:52 +02:00
chylex 6baa782fb9 Make DistanceParameters a readonly struct 2019-05-23 16:24:40 +02:00
chylex 1370231216 Add utility Set methods to ContextMap builder 2019-05-23 15:29:43 +02:00
chylex b90240c180 Update HuffmanTree.FromSymbols to use FrequencyList 2019-05-23 14:15:21 +02:00
chylex e39ddf5e27 Make ContextMap builder clone the final array 2019-05-20 09:48:05 +02:00