284 Commits
Author SHA1 Message Date
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 2f22139125 Fix window size crash & inefficiency when generating copy markers 2019-10-30 19:42:56 +01:00
chylex f9838bca04 Improve efficiency of encoding Huffman tree repetition codes 2019-10-21 00:16:20 +02:00
chylex 4dc334cae9 Add information about bit counts to markers 2019-10-20 23:17:23 +02:00
chylex 94f3288bb7 Reimplement complex distance code construction & update documentation 2019-10-20 22:07:23 +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 cd2c37764e Make MetaBlock classes (mostly) immutable 2019-10-19 15:27:39 +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 53ed337a56 Fix typo in MultiTrie equality checking, causing broken cache 2019-10-06 07:08:45 +02:00
chylex 9d4fe1e47e Update MultiTrie to use ValueTuple instead of KeyValuePair 2019-10-05 08:14:58 +02:00
chylex 271b43630e Implement MultiTrie.Node caching for Brotli dictionary index 2019-10-05 08:14:47 +02:00
chylex 8ecdd90caa Fix recently introduced crash w/ implicit distance code zero
Caused by d8a6713392
2019-10-05 04:19:24 +02:00
chylex 3294ac800e Improve how CR/LF characters are displayed in markers 2019-10-04 16:47:55 +02:00
chylex 5b44cefe68 Update markers to include backreference & dictionary output 2019-10-04 16:18:05 +02:00
chylex eb3833e4da Fix off-by-x bug when generating dictionary references after hitting window size 2019-10-04 15:30:15 +02:00
chylex d8a6713392 Fix broken generation of explicit distance codes 0 2019-10-04 15:15:27 +02:00
chylex e18cede896 Add new Brotli dictionary index system 2019-10-03 21:56:17 +02:00
chylex 65dbe29dc6 Add a few utilities to CollectionHelper (ContainsAt, Skip) 2019-10-03 21:23:02 +02:00
chylex b111f9bd25 Rework MultiTrie structure (less mess, less memory, more performance) 2019-10-03 18:59:37 +02:00
chylex 9da921fe52 Remove inefficient dictionary index 2019-10-03 17:17:21 +02:00
chylex 806c97748a Fix Brotli insert&copy command serialization not picking distance codes efficiently 2019-07-09 15:55:27 +02:00
chylex 0b7aaec69d Optimize complex distance codes (with no postfix) w/ unit tests 2019-07-09 15:00:21 +02:00
chylex 50035519f8 Make most marker values lazy 2019-07-08 23:46:26 +02:00
chylex c3b66b50e9 Tweaks for minor performance improvements 2019-07-08 23:36:10 +02:00
chylex 05690a1bea Improve marker memory usage by interning strings 2019-07-08 18:13:11 +02:00
chylex 895609c3f1 Use dummy writer to improve performance in transformations 2019-06-18 15:13:09 +02:00
chylex 8b289812bc Add dummy BitWriter implementation 2019-06-18 15:08:30 +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 d59ea83f6e Add license files for Brotli & FCTB 2019-05-30 17:40:30 +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 82f212a4b8 Add marker for Brotli block-switch type value 2019-05-23 15:30:12 +02:00
chylex 1370231216 Add utility Set methods to ContextMap builder 2019-05-23 15:29:43 +02:00
chylex 74969f8c92 Implement Brotli block-switch command builder 2019-05-23 15:28:30 +02:00
chylex f289bb2660 Update CompressedMetaBlockBuilder to use FrequencyLists 2019-05-23 14:18:55 +02:00
chylex b90240c180 Update HuffmanTree.FromSymbols to use FrequencyList 2019-05-23 14:15:21 +02:00
chylex 2bfa048532 Add FrequencyList collection 2019-05-23 14:11:00 +02:00
chylex 62b5236455 Remove category parameter from CategoryMap.Select 2019-05-23 13:11:52 +02:00
chylex 9ab0520997 Determine BlockSwitchCommand type codes during serialization instead of storing them 2019-05-23 11:10:59 +02:00
chylex ea0453f3cb Implement workaround for incomplete Huffman tree generation 2019-05-22 21:52:28 +02:00
chylex 978725d5db Change Range.ToString 2019-05-22 08:52:12 +02:00
chylex 6bb29382ec Update exe & dll metadata 2019-05-20 12:12:19 +02:00
chylex e39ddf5e27 Make ContextMap builder clone the final array 2019-05-20 09:48:05 +02:00
chylex 7e7b58e533 Fix broken implicit distance code 0 and dictionary distances in CompressedMetaBlockBuilder 2019-05-19 23:18:04 +02:00
chylex 5148994de4 Fix incorrect RingBuffer state after cloning 2019-05-19 22:46:31 +02:00