Code Monkey home page Code Monkey logo

Comments (6)

chadaustin avatar chadaustin commented on May 19, 2024

Does this bug mean that FSE is not ready for use in a production environment? @Cyan4973 Do you think that 512 bytes should always be enough for the encoded bit stream, and if not, what it should be?

from finitestateentropy.

Cyan4973 avatar Cyan4973 commented on May 19, 2024

It's a bit early to call FSE "production ready", although that's the plan, and we are slowly getting there. My intention is to move away from "beta status" by the end of the year.

As a sidenote, FSE is getting some good testing through its usage within Zhuff, with several million files correctly compressed/decompressed so far.
(see : https://groups.google.com/forum/#!topic/lz4c/OmA_uSnaO3Q)

Do you think that 512 bytes should always be enough for the encoded bit stream, and if not, what it should be?

If you mean "enough for the header", yes that's what I initially thought.
Unfortunately, Artem tests prove that there is some kind of expansion I've not correctly estimated.
That's something I intent to sort out and correct within the month.

As a sidenote, the issue is only visible when compressing "very" large blocks (such as quite a few megabytes), which is not recommended : in most circumstances, it's much better to compress smaller blocks (such as, typically, 64KB), to ensure proper entropy local adaptation, hence better overall compression ratio.

from finitestateentropy.

chadaustin avatar chadaustin commented on May 19, 2024

Thank you, Yann, for your prompt response! This sounds great. Depending on how my compression experiments go this week, we may end up using FSE in our compressed mesh file format. Our largest blocks are 256 KiB. I'll let you know if we encounter any problems!

from finitestateentropy.

Cyan4973 avatar Cyan4973 commented on May 19, 2024

Latest beta solves this issue.
16fc2e3

Max inflation has been evaluated at 0.45%, plus header.
FSE_compressBound() is a bit of an over-evaluation currently, but it needs to be simple and fast, and it is safer for this function to over-evaluate a bit, rather than under-evaluate as it did up to now; resulting in memory errors.

from finitestateentropy.

chadaustin avatar chadaustin commented on May 19, 2024

Thank you!

from finitestateentropy.

Cyan4973 avatar Cyan4973 commented on May 19, 2024

Committed to master

from finitestateentropy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.