Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new compression google/brotli #35

Closed
tomByrer opened this issue Jun 26, 2015 · 2 comments
Closed

new compression google/brotli #35

tomByrer opened this issue Jun 26, 2015 · 2 comments

Comments

@tomByrer
Copy link

https://github.com/google/brotli
Would be nice to see on your performance test chart. Perhaps you guys can learn from each other?

@Cyan4973
Copy link
Contributor

Cyan4973 commented Jul 5, 2015

Thanks @tomByrer

Yes, I'm aware of the Brotli project by Google.
I believe it's a nice team making a really good job.

However, the direction selected is quite different from Zstd, resulting in fairly different optimization directions.
If I'm not mistaken,
initially, Brotli was about speed, most importantly decompression speed, and targeting a specific file type, fonts. They have since changed course a bit, by now targeting "general-purpose compression" and "more compression", but these roots are still there.

I believe that they made the following calculation : speed => huffman => poor compression at high statistics => Let's make statistics small => Lots of symbols (2nd order). In selecting which symbols to add, the initial use case (font compression) was rather key to determine them. They are now statically defined in the format.
Zstd rather made the following choice : speed => fse => good compression at high statistics => Let's use less symbols. And I haven't really finished this part of the job, but that gives you a direction.

So of course, since both algorithms are LZ-based, they still have some common elements, but due to these different initial impulsions, there are also some important design differences, which can't be erased by a last minute addition (such as swapping fse and huffman).

Also, note that fse did not existed when brotli started, so it limited their choice.

@Cyan4973 Cyan4973 closed this as completed Jul 5, 2015
@tomByrer
Copy link
Author

tomByrer commented Jul 7, 2015

Yes, I suspected it was meant to replace Zopfli for WOFF/WOFF2; thanks for the details!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants