WebP suffers from excessive generation loss for a modern codec.
https://hacks.mozilla.org/2020/02/securing-firefox-with-weba...
https://blog.mozilla.org/attack-and-defense/2021/12/06/webas...
> Wuffs the Language is safe with respect to buffer overflows, integer arithmetic overflows and null pointer dereferences. A key difference between Wuffs and other memory-safe languages is that all such checks are done at compile time, not at run time. If it compiles, it is safe, with respect to those three bug classes.
> […]
> Wuffs code is hermetic and can only compute (e.g. convert "compressed bytes" to "decompressed bytes"). It cannot make any syscalls (e.g. it has no ambient authority to read your files), implying that it cannot allocate or free memory (and is therefore trivially safe against things like memory leaks, use-after-frees and double-frees).
Regardless, things like this really help explain the hesitation behind adopting jpegxl.
I'm a big fan of AVIF files though.
Seems like they agree: https://github.com/mozilla/standards-positions/pull/1064
Why?
>Animated lossy image?
It's called a video
There are loads of uses for lossy images. Pretty much any image is probably best transmitted lossy, because the saved ram, CPU, bandwidth, load time is huge compared to the usually unnoticeable quality degregation.
So it stands to reason there are lots of uses for lossy alpha images.
Dunno I think it'd be too messy
Easy to learn, fast and memory safe without a GC.
(except that ARC can't handle cyclic graphs)
I know of some who claim to be "pauseless", but it's b.s. marketing. They also tend to be memory hogs that don't play well with other processes in low memory environments with the kind of allocation behavior seen in UI applications.
And of course, the issue is not only stop-the-world pauses (though those are especially bad), but any pause in any thread period. A RC system lets you have consistent, predictable performance and often can be completely eliminated through static analysis.
It is available as a C++ library, so you can easily compare its performance to the reference counting.
RAII can also cause pauses when freeing large object graphs. It's not unique to RC. However in practice it's usually much less of an issue than GC pauses. It's only been an issue for me once in my entire career.