BPG Image Format
bellard.org
bellard.org
If this sounds far-fetched, consider that he has created not only BPG, but FFMPEG, QEMU, LibBF, SoftFP, TinyEMU, a software implementation of 4G/LTE, a PC emulator in Javascript, the TCC compiler, TinyGL, LZEXE, a tiny program for computing the biggest known prime number, and NNCP, a clever lossless data compression system using deep neural networks (transformers, to be precise). And that's just a partial list of his successful projects.
Any of these projects, on its own, would be considered a notable achievement for an ordinary human being.
Source: https://bellard.org
...and he has also written a JS interpreter: https://news.ycombinator.com/item?id=20411154
Absolutely astonishing!! A bit like the Bobby Fisher of programming ;)
Fabrice Bellard has released an Artificial Neural Networks library, LibNC, "C Library for Tensor Manipulation" ( https://bellard.org/libnc/ ). Similar to PyTorch, but in sheer C.
It's the library behind that data compressor mentioned: we do not just have the compressor, he gave us the very AI tool. If that does not make one ecstatic... Summary of features:
> * C API ; * Small library, no external dependency, available for Linux and Windows ; * Define-by-run automatic differentiation engine (same idea as PyTorch) ; * High performance for both CPU (x86) and GPU (CUDA support). Optimized support of float32 and bfloat16 data types ; * CPU backend optimized for inference and small batch sizes ; * Optimized for online learning (i.e. simultaneous evaluation and training) using LSTM or Transformer models ; * Fully deterministic: return the same results at each run ; * Reproducible results (CPU backend only): return the same results regardless the CPU brand and OS
It's been in widespread real-world use since at least 2017, when HEIF support was added to the built-in camera app in iOS 11.
I then compared the file sizes and JP2K won hands down. It also had the advantage of already being supported in PDF, so I can just bundle them up into a PDF for relatively[1] easy reading.
[edit]
Someone pointed me to "Squoosh" and AVIF (which was still very experimental when I previously ran the tests; there was only a single encoder I could find, it took forever and crashed a lot) seems to win over JP2K; a quick estimate makes it look about 30% smaller (My first test image showed up at almost 50% smaller when I tuned it, but experience tells me that I need some padding if I'm just going to point it at a large directory tree).
1: A few PDF readers have failed to properly render the JP2K pages, but modern poppler and muPDF based readers both seem to handle it fine.
Has the patent situation changed any since then? I wouldn't expect so.
I remember one of the thing we expected to happen with asm.js ( Now Wasm ) was we could swap any new image format decoder. So we could have rapid iteration of image codec. This hasn't happened though.