|
d22403cb71
|
Fix wrong transformer handling in BrotliEncodePipeline & BrotliFileStructure
|
2020-03-05 16:01:56 +01:00 |
|
|
3dbd109c56
|
Move ContextMap builder into a separate class and reduce dependencies on it
|
2020-03-04 20:10:53 +01:00 |
|
|
f8f78d082d
|
Work on BrotliLib APIs (block-switch, builder validation, minor code tweaks)
|
2020-02-12 19:11:59 +01:00 |
|
|
6ddacf5898
|
Add option for streaming marker generation & use it in BrotliCalc
|
2020-02-06 02:10:39 +01:00 |
|
|
b6ef8b6157
|
Reduce clutter in markers
|
2020-02-05 20:02:21 +01:00 |
|
|
968c352724
|
Work on BrotliLib APIs (DCZ, distance code heuristics, command building, utilities)
|
2020-02-02 14:57:17 +01:00 |
|
|
1bd0822d63
|
Work on BrotliLib APIs (compression params, encode pipeline, minor tweaks)
|
2020-01-28 20:00:28 +01:00 |
|
|
1b186f2d50
|
Make Brotli parameter classes immutable
|
2020-01-28 13:13:03 +01:00 |
|
|
efa84b795d
|
Move & rename Brotli compressed components and utils
|
2020-01-23 14:55:31 +01:00 |
|
|
a2baff135a
|
Rework ContextMap.Builder API & move MoveToFront
|
2020-01-23 11:25:16 +01:00 |
|
|
9ee7376bf2
|
Reduce code duplication when constructing BrotliGlobalState
|
2020-01-23 08:25:18 +01:00 |
|
|
5a24351840
|
Add BrotliFileReader as a streaming alternative to BrotliFileStructure
|
2020-01-23 08:19:44 +01:00 |
|
|
858c9ddbf3
|
Ensure BrotliCalc uses correct Brotli parameters & fix BrotliFileStructure
|
2020-01-23 08:02:16 +01:00 |
|
|
73fef4c8e0
|
Add Brotli serialization param to determine Huffman tree skip/repeat code usage
|
2019-12-31 05:59:52 +01:00 |
|
|
cda71bb37b
|
Remove MultiTrie & update dictionary index to use PATRICIA trees instead
|
2019-12-31 03:53:01 +01:00 |
|
|
8ecc974994
|
Add PATRICIA tree structure
|
2019-12-31 03:48:41 +01:00 |
|
|
a6a1eefcf3
|
Minor code and API tweaks (collections, literal output, LiteralContextMode)
|
2019-11-30 03:07:33 +01:00 |
|
|
53f3f2b7d2
|
Remove HuffmanNode.SymbolCount and use HuffmanTree lookup instead
|
2019-11-30 01:48:09 +01:00 |
|
|
698bded3fb
|
Optimize code for outputting copies in BrotliGlobalState
|
2019-11-29 14:47:44 +01:00 |
|
|
08544f7298
|
Improve performance & memory usage of serialization
|
2019-11-29 14:47:41 +01:00 |
|
|
63b0cb7a55
|
Rewrite BrotliFileStructure decompression state handling and API
|
2019-11-29 14:03:00 +01:00 |
|
|
08bf9a6b3a
|
Allow omitting bit counts in markers & omit in BrotliBuilder marker comparison
|
2019-11-28 23:35:49 +01:00 |
|
|
16736e9560
|
Optimize memory allocations when serializing and building meta-blocks
|
2019-11-28 02:36:55 +01:00 |
|
|
ad96d2ea42
|
Tweak Brotli component APIs & add/update ToString()
|
2019-11-28 02:36:54 +01:00 |
|
|
be2d367ea7
|
Stop generating implicit distance code 0 and breaking defined block lengths
|
2019-11-27 21:17:17 +01:00 |
|
|
6b9172b1fd
|
Fix MarkerLevel.None not disabling generation of markers
|
2019-11-27 01:14:07 +01:00 |
|
|
31383bb7a7
|
Make BrotliFileStructure.Fixup remove bad LastEmpty meta-blocks & fix it crashing UI
|
2019-11-27 01:07:50 +01:00 |
|
|
136632d396
|
Fix being unable to set PaddedEmpty meta-blocks as last
|
2019-11-27 01:01:00 +01:00 |
|
|
e8887b012a
|
Work on encoder/transformer API
|
2019-11-27 00:30:25 +01:00 |
|
|
c9ad856c25
|
Refactor and enforce use of BrotliFileParameters & BrotliSerializationParameters
|
2019-11-27 00:05:22 +01:00 |
|
|
e93ffbbc6e
|
Move BrotliFileParameters & BrotliSerializationParameters to a different namespace
|
2019-11-26 18:25:17 +01:00 |
|
|
c9e1b10dbc
|
Enable C# 8 nullable reference types for all projects & fix warnings
|
2019-11-26 14:42:10 +01:00 |
|
|
1194acc6a8
|
Fix missing overflow/underflow check in BrotliBuilder Release configuration
|
2019-11-26 12:48:53 +01:00 |
|
|
75f02483e7
|
Move decision-making for ContextMap IMTF/RLE to BrotliSerializationParameters
|
2019-11-26 12:44:21 +01:00 |
|
|
610cc49e11
|
Add BrotliSerializationParameters
|
2019-11-26 12:14:45 +01:00 |
|
|
91f7c849c3
|
Add multiple marker levels w/ one that skips marking uncompressed data
|
2019-11-25 18:47:45 +01:00 |
|
|
e136ffb958
|
Fix edge cases in distance code picking & Huffman tree serialization
|
2019-11-25 17:01:02 +01:00 |
|
|
d0523c8c3d
|
Move marker text generation to BrotliLib
|
2019-11-24 22:57:16 +01:00 |
|
|
280d5e6c6e
|
Add BitPath to use in HuffmanGenerator instead of BitStream
|
2019-11-24 13:54:30 +01:00 |
|
|
ea44d59778
|
Minor optimizations and code tweaks
|
2019-11-24 13:48:18 +01:00 |
|
|
12ca8ec5a9
|
Optimize lambdas in Brotli markers
|
2019-11-23 18:54:08 +01:00 |
|
|
651a7cfd3c
|
Minor fixes (unit test, documentation, console null check, null assignment operator)
|
2019-11-23 07:34:23 +01:00 |
|
|
3f493862a4
|
Refactor & reorganize MetaBlock components
|
2019-11-23 07:34:23 +01:00 |
|
|
612fb784b5
|
Refactor & reorganize MetaBlock classes
|
2019-11-23 07:34:23 +01:00 |
|
|
d578fb4346
|
Reorganize BrotliLib namespaces
|
2019-11-22 05:44:02 +01:00 |
|
|
d6570f5366
|
Release 1.1
|
2019-11-03 13:24:52 +01:00 |
|
|
c80f8b3ade
|
Add optimized byte[] comparison to CollectionHelper & use it in BrotliCalc
|
2019-11-01 18:04:38 +01:00 |
|
|
26e8f01155
|
Avoid creating HuffmanTree lookup structure when only deserializing
|
2019-11-01 17:47:50 +01:00 |
|
|
4c029e4676
|
Avoid creating unnecessary marker objects & tweak TitleMarker
|
2019-11-01 17:46:41 +01:00 |
|
|
4e7c08879c
|
Fix broken multithreading in Brotli deserialization
|
2019-11-01 10:06:34 +01:00 |
|
|
04a23663b0
|
Reorganize HuffmanTree & BlockSwitchTracker
|
2019-10-31 19:13:08 +01:00 |
|
|
974541b937
|
Minor BrotliLib refactoring (ranges, exceptions, formatting)
|
2019-10-31 19:13:08 +01:00 |
|
|
2f22139125
|
Fix window size crash & inefficiency when generating copy markers
|
2019-10-30 19:42:56 +01:00 |
|
|
f9838bca04
|
Improve efficiency of encoding Huffman tree repetition codes
|
2019-10-21 00:16:20 +02:00 |
|
|
4dc334cae9
|
Add information about bit counts to markers
|
2019-10-20 23:17:23 +02:00 |
|
|
94f3288bb7
|
Reimplement complex distance code construction & update documentation
|
2019-10-20 22:07:23 +02:00 |
|
|
87011bc853
|
Rewrite AlphabetSize.BitsPerSymbol to use Log2 utility class
|
2019-10-20 06:40:37 +02:00 |
|
|
79a96735a5
|
Move various log2(int) implementations into a utility class
|
2019-10-20 06:29:43 +02:00 |
|
|
cd2c37764e
|
Make MetaBlock classes (mostly) immutable
|
2019-10-19 15:27:39 +02:00 |
|
|
611fac1525
|
Properly implement and cleanup GetHashCode & Equals in BrotliLib
|
2019-10-19 15:27:39 +02:00 |
|
|
e84dcd4ac9
|
Address IDE suggestions (C# 8.0) & minor refactoring
|
2019-10-19 01:43:54 +02:00 |
|
|
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 |
|
|
53ed337a56
|
Fix typo in MultiTrie equality checking, causing broken cache
|
2019-10-06 07:08:45 +02:00 |
|
|
9d4fe1e47e
|
Update MultiTrie to use ValueTuple instead of KeyValuePair
|
2019-10-05 08:14:58 +02:00 |
|
|
271b43630e
|
Implement MultiTrie.Node caching for Brotli dictionary index
|
2019-10-05 08:14:47 +02:00 |
|
|
8ecdd90caa
|
Fix recently introduced crash w/ implicit distance code zero
Caused by d8a6713392
|
2019-10-05 04:19:24 +02:00 |
|
|
3294ac800e
|
Improve how CR/LF characters are displayed in markers
|
2019-10-04 16:47:55 +02:00 |
|
|
5b44cefe68
|
Update markers to include backreference & dictionary output
|
2019-10-04 16:18:05 +02:00 |
|
|
eb3833e4da
|
Fix off-by-x bug when generating dictionary references after hitting window size
|
2019-10-04 15:30:15 +02:00 |
|
|
d8a6713392
|
Fix broken generation of explicit distance codes 0
|
2019-10-04 15:15:27 +02:00 |
|
|
e18cede896
|
Add new Brotli dictionary index system
|
2019-10-03 21:56:17 +02:00 |
|
|
65dbe29dc6
|
Add a few utilities to CollectionHelper (ContainsAt, Skip)
|
2019-10-03 21:23:02 +02:00 |
|
|
b111f9bd25
|
Rework MultiTrie structure (less mess, less memory, more performance)
|
2019-10-03 18:59:37 +02:00 |
|
|
9da921fe52
|
Remove inefficient dictionary index
|
2019-10-03 17:17:21 +02:00 |
|
|
806c97748a
|
Fix Brotli insert© command serialization not picking distance codes efficiently
|
2019-07-09 15:55:27 +02:00 |
|
|
0b7aaec69d
|
Optimize complex distance codes (with no postfix) w/ unit tests
|
2019-07-09 15:00:21 +02:00 |
|
|
50035519f8
|
Make most marker values lazy
|
2019-07-08 23:46:26 +02:00 |
|
|
c3b66b50e9
|
Tweaks for minor performance improvements
|
2019-07-08 23:36:10 +02:00 |
|
|
05690a1bea
|
Improve marker memory usage by interning strings
|
2019-07-08 18:13:11 +02:00 |
|
|
895609c3f1
|
Use dummy writer to improve performance in transformations
|
2019-06-18 15:13:09 +02:00 |
|
|
8b289812bc
|
Add dummy BitWriter implementation
|
2019-06-18 15:08:30 +02:00 |
|
|
da910cc147
|
Refactor BitWriter, BitReader, and MarkedBitReader into interfaces
|
2019-06-18 15:06:39 +02:00 |
|
|
8c5ae6a960
|
Separate IBitSerializer into serializer & deserializer delegates
|
2019-06-18 05:00:33 +02:00 |
|
|
d59ea83f6e
|
Add license files for Brotli & FCTB
|
2019-05-30 17:40:30 +02:00 |
|
|
52d435dece
|
Fix invalid complex Huffman tree length codes generated for incomplete trees
|
2019-05-24 14:11:52 +02:00 |
|
|
6baa782fb9
|
Make DistanceParameters a readonly struct
|
2019-05-23 16:24:40 +02:00 |
|
|
82f212a4b8
|
Add marker for Brotli block-switch type value
|
2019-05-23 15:30:12 +02:00 |
|
|
1370231216
|
Add utility Set methods to ContextMap builder
|
2019-05-23 15:29:43 +02:00 |
|
|
74969f8c92
|
Implement Brotli block-switch command builder
|
2019-05-23 15:28:30 +02:00 |
|
|
f289bb2660
|
Update CompressedMetaBlockBuilder to use FrequencyLists
|
2019-05-23 14:18:55 +02:00 |
|
|
b90240c180
|
Update HuffmanTree.FromSymbols to use FrequencyList
|
2019-05-23 14:15:21 +02:00 |
|
|
2bfa048532
|
Add FrequencyList collection
|
2019-05-23 14:11:00 +02:00 |
|
|
62b5236455
|
Remove category parameter from CategoryMap.Select
|
2019-05-23 13:11:52 +02:00 |
|
|
9ab0520997
|
Determine BlockSwitchCommand type codes during serialization instead of storing them
|
2019-05-23 11:10:59 +02:00 |
|
|
ea0453f3cb
|
Implement workaround for incomplete Huffman tree generation
|
2019-05-22 21:52:28 +02:00 |
|
|
978725d5db
|
Change Range.ToString
|
2019-05-22 08:52:12 +02:00 |
|
|
6bb29382ec
|
Update exe & dll metadata
|
2019-05-20 12:12:19 +02:00 |
|
|
e39ddf5e27
|
Make ContextMap builder clone the final array
|
2019-05-20 09:48:05 +02:00 |
|
|
7e7b58e533
|
Fix broken implicit distance code 0 and dictionary distances in CompressedMetaBlockBuilder
|
2019-05-19 23:18:04 +02:00 |
|
|
5148994de4
|
Fix incorrect RingBuffer state after cloning
|
2019-05-19 22:46:31 +02:00 |
|