1
0
mirror of https://github.com/chylex/Brotli-Builder.git synced 2024-10-17 03:42:47 +02:00
Commit Graph

284 Commits

Author SHA1 Message Date
b760d566bd Minor refactoring 2019-03-11 10:29:11 +01:00
d21af05280 Remove references to siblings in MarkerNode 2019-03-11 10:18:08 +01:00
7d34bc8e98 Optimize memory usage of insert&copy commands 2019-03-11 09:27:53 +01:00
64d19061b2 Add a dummy MarkedBitReader to allow disabling markers 2019-03-11 09:16:08 +01:00
dd4d973e57 Make BitReader.Index an integer (BitStream was already limited to 256 MB) 2019-03-11 09:01:18 +01:00
be32999273 Update C# version to latest (currently 7.3) 2019-03-11 08:40:51 +01:00
360ed52eba Fix literal context modes breaking across meta-block boundaries 2019-03-11 06:19:53 +01:00
d8746572d4 Add a way to construct insert&copy length codes from length values w/ unit tests 2019-03-09 03:36:41 +01:00
ab05269704 Add Range class for inclusive integer ranges 2019-03-09 03:30:51 +01:00
a46cb9457f Remove unused methods from Category and HuffmanNode 2019-03-09 03:16:14 +01:00
607cfeba64 Include category in BlockTypeInfo to refactor serialization contexts 2019-03-09 03:07:37 +01:00
f7c8e203a9 Update to .NET Standard 2.0 2019-03-09 02:39:44 +01:00
b08283a8db Improve markers for complex Huffman trees 2019-03-09 01:22:58 +01:00
f98f386b4c Add MarkedBitReader.ReadValue w/ huffman tree and value mapper parameters 2019-03-09 01:22:44 +01:00
285612a1bd Cleanup unused methods and imports 2019-03-07 02:55:48 +01:00
cce96a2567 Fix massive performance issues with MarkerNode 2019-03-06 12:51:50 +01:00
95acb299e1 Implement repeat/skip codes in complex Huffman trees 2019-03-04 17:34:41 +01:00
5a6f4b2ede Implement encoding of RLE and IMTF in Brotli context maps 2019-03-04 11:57:30 +01:00
3d511172a7 Implement markers for all Brotli deserializers 2019-03-03 19:53:42 +01:00
46eb57428c Update ToString (DistanceCode, ComplexLengthCode, HuffmanGenerator.Entry) 2019-03-03 19:53:42 +01:00
6e20da13de Enable deserialization with markers in BrotliFileStructure 2019-03-03 18:47:00 +01:00
7044313e04 Add MarkedBitReader and MarkedBitSerializer w/ a few marker types 2019-03-03 18:47:00 +01:00
07d96290b7 Add Literal to represent literal bytes 2019-03-03 17:27:27 +01:00
03c5f040f6 Redo all Equals/GetHashCode/ToString & add a few missing ones 2019-03-02 11:02:36 +01:00
2c251eb4be Add a basic marker node system 2019-02-25 15:49:23 +01:00
577786223e Allow BitReader to be wrapped and extended 2019-02-08 10:52:07 +01:00
86e25692b8 Implement Brotli compressed meta-block contents and insert&copy command serialization 2019-02-08 10:52:07 +01:00
cf11a7c0f1 Implement Brotli block-switch command serialization & block tracking 2019-02-08 10:52:07 +01:00
5ffb4bf0be Implement Brotli compressed meta-block header serialization 2019-02-08 10:52:07 +01:00
a7b6d7047d Implement Brotli block type and block length code serialization 2019-02-08 09:24:51 +01:00
66b8795135 Reassign ISLAST bit on meta-blocks after modifying their structure 2019-02-07 02:01:10 +01:00
dcb2f9c99d Add AnyCPU because Visual Studio still can't figure out 64bit UserControls 2019-02-07 01:53:13 +01:00
f3295167b8 Implement basic serialization for Brotli context maps 2018-12-29 02:53:45 +01:00
f81568d95a Make AlphabetSize.BitsPerSymbol return a byte & add default max tree depth constant 2018-12-29 02:48:38 +01:00
5d1823acb0 Implement Brotli distance code and distance value serialization 2018-12-28 22:49:01 +01:00
f23359ccd5 Implement Brotli insert&copy length code alphabet and length serialization 2018-12-15 02:20:46 +01:00
791f31e2d9 Implement basic serialization for Brotli Huffman trees w/ unit tests 2018-12-15 02:01:23 +01:00
0add08098e Implement limited-depth Huffman tree generation from frequency map w/ unit tests 2018-12-14 21:46:03 +01:00
693109a90a Enforce symbol order when genering Huffman trees from bit counts 2018-12-14 21:45:44 +01:00
a8dcf45861 Add utilities for Brotli insert&copy command code categories 2018-12-14 18:36:58 +01:00
b3d81c67f1 Add PriorityQueue 2018-12-14 11:55:22 +01:00
24efbdfe74 Fix extra bit when writing padded empty meta-block header 2018-12-14 06:04:16 +01:00
895414df2d Fix BitStream getting misaligned when adding many whole bytes & fix typo 2018-12-13 22:29:28 +01:00
4ce1554e4b Fix missing bit when writing compressed meta-block header 2018-12-13 14:39:09 +01:00
a3e4983bc5 Implement Move-to-front & inverse transformation w/ unit tests 2018-12-12 23:05:23 +01:00
235f3684a3 Fix BitStream.Add causing every 63rd bit to be zero w/ new unit tests 2018-12-06 08:00:35 +01:00
9dcacebfb7 Finish implementing global (de)compression state 2018-12-06 07:07:50 +01:00
6b98e1c2c3 Add default Brotli dictionary file as an embedded resource 2018-12-04 17:24:48 +01:00
8610d6d1cf Add IDictionarySource implementation that can take any Stream 2018-12-04 17:21:51 +01:00
db1bc5ac48 Add BitWriter method that takes a BitStream w/ unit tests 2018-12-04 16:06:15 +01:00
54fe939444 Add default Brotli dictionary format and transformations 2018-12-02 16:17:45 +01:00
61bea5022f Implement bit depth format for unpacking words in a Brotli dictionary 2018-12-02 14:14:21 +01:00
dc63c1355d Implement file and memory representations of a Brotli dictionary 2018-12-02 14:13:22 +01:00
133b9920a6 Add classes and interfaces to describe a Brotli dictionary 2018-12-02 14:12:12 +01:00
359245c652 Implement Brotli dictionary transformation rules and utilities 2018-12-02 13:33:42 +01:00
286f476cfb Add AlphabetSize utility w/ unit tests 2018-11-23 07:45:01 +01:00
294ae2b5a8 Add HuffmanNode.SymbolCount property w/ new and updated unit tests 2018-11-22 04:35:44 +01:00
6e3a50d9a6 Add fixed-size RingBuffer w/ unit tests 2018-11-21 18:02:49 +01:00
3fe5a82239 Implement Brotli literal context mode serialization 2018-11-21 17:01:08 +01:00
87d65a8b6f Include window size in the global (de)compression state 2018-11-21 16:36:13 +01:00
1696b86ba5 Add a utility for BitSerializer to specify no serialization context without nulls 2018-11-21 16:25:28 +01:00
8d883a9b30 Add utility for generating Huffman trees w/ unit tests 2018-11-19 13:09:52 +01:00
ed2dd4ba85 Implement a Huffman tree structure w/ unit tests 2018-11-19 01:30:52 +01:00
422def48fa Implement Brotli distance parameter serialization 2018-11-18 18:55:24 +01:00
78d93ba9fd Implement Brotli variable length 1-11 bit code serialization 2018-11-18 01:32:11 +01:00
c6714adce5 Fix compiler configuration for BrotliLib project 2018-11-18 00:43:55 +01:00
f4403b555f Rewrite internals of BitStream to improve performance & fix some tests 2018-11-18 00:43:55 +01:00
3f60b386bf Optimize inserting bytes into a BitStream 2018-11-17 19:05:11 +01:00
54c68402bb Implement a Brotli encoder that only generates uncompressed meta-blocks 2018-11-17 16:36:04 +01:00
758d437b23 Add interface to use for Brotli encoders 2018-11-17 16:23:14 +01:00
95fd6d3f9a Implement empty meta-block w/ skipped bytes serialization 2018-11-17 13:13:23 +01:00
675008182f Implement uncompressed meta-block serialization 2018-11-17 13:13:23 +01:00
bf78ed23d3 Add a way to handle Brotli state and generate output during serialization 2018-11-16 19:37:57 +01:00
74270f7276 Add BrotliFileStructure class to describe a Brotli-compressed file 2018-11-16 16:38:44 +01:00
a3f666b479 Begin implementing meta-block serialization 2018-11-16 16:31:35 +01:00
be29857899 Add base classes for different types of meta-blocks 2018-11-16 15:22:48 +01:00
abff015bcf Implement Brotli meta-block data length serialization 2018-11-16 14:47:14 +01:00
dd4d34ef0c Implement Brotli window size serialization 2018-11-16 14:11:29 +01:00
2b94885e76 Add a common interface for converting objects to or from bits 2018-11-16 11:35:11 +01:00
4054df4cd5 Add BitWriter w/ unit tests 2018-11-16 00:44:56 +01:00
c9bc34a216 Allow combining contents of two BitStream objects 2018-11-15 21:46:37 +01:00
97fdcfc7e6 Add BitReader w/ unit tests 2018-11-15 21:38:03 +01:00
c5fa6fcc37 Add BitStream w/ unit tests 2018-11-15 11:49:31 +01:00
787cbf19e8 Add library project 2018-11-14 21:19:25 +01:00