Commit Graph

14 Commits

Author SHA1 Message Date
Andy Balholm 97e8583d85 matchfinder.M4: some refinements to scoring 2024-01-24 16:11:21 -08:00
Andy Balholm cf812c06f8 matchfinder: add M0
M0 is a MatchFinder based on the algorithm for brotli level 0.
2024-01-11 16:00:40 -08:00
Andy Balholm 1b6cf3696e matchfinder: remove MultiHash
It was an interesting experiment, but it didn't
do any better than M4.
2024-01-09 06:29:08 -08:00
Andy Balholm 265f3afc2a matchfinder: penalize score for overlapping matches 2024-01-09 06:03:56 -08:00
Andy Balholm a8d524a96d matchfinder: replace Score function with DistanceBitCost 2024-01-09 05:40:40 -08:00
Andy Balholm 578645e154 matchfinder: add MultiHash 2024-01-09 05:06:39 -08:00
Andy Balholm 24b2bfad2d matchfinder.M4: add Score function 2024-01-02 13:38:12 -08:00
Andy Balholm 4a024e3eff matchfinder.M4: add match chain 2024-01-01 16:13:22 -08:00
Andy Balholm 3a1c5cd370 Fix typo in comment. 2024-01-01 15:06:21 -08:00
Andy Balholm 0d2aef37af matchfinder.M4: factor out extendMatch2 2023-12-30 16:25:51 -08:00
Andy Balholm 63f3f4372d matchfinder.M4: add LimitedSearch option
Using LimitedSearch, it only checks for overlapping matches in one
place instead of checking at each byte.
This gains about 50% in compression speed while only losing about
2% in compression ratio.
2023-12-30 15:56:13 -08:00
Andy Balholm 924a0eb0c6 matchfinder.M4: more refactoring
Factor out matchEmitter.trim, and make TableBits configurable.
2023-12-28 17:21:34 -08:00
Andy Balholm c506503c67 matchfinder: factor out matchEmitter 2023-12-28 17:01:08 -08:00
Andy Balholm 349ed2fce1 Add matchfinder package.
I've been experimenting for a while with a new brotli compressor.
Instead of being a translation of the C implementation,
it's a rewrite in Go, with a modular structure thanks to interfaces.
(A few low-level functions still come from the C version, though.)

The performance is getting to the point where it seems to be worth
adding to the brotli repository.
2023-12-28 16:09:32 -08:00