HN.zip

Balrogg: Demonically compacting (up to 15%) lossless Vorbis/Opus recompressor

81 points by palaiologos - 11 comments
tux3 [3 hidden]5 mins ago
So, it looks like this tries to build a model (or rather, multiple layers of models combined with something called context mixing[0]), potentially analyzing the whole file first? Is it fair to call this a very fancy entropy coder, replacing the last phase of what a traditional audio codec does (the lossless part, after quantization)?

I like the code style, this is pretty nice C. It's refreshing to see human code.

[0]: https://en.wikipedia.org/wiki/Context_mixing

merbanan [3 hidden]5 mins ago
Vorbis sends the entropy tables in the actual file at the start.

https://www.xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-470003

If you have the complete file you can calculate the optimal ones. In a streaming scenario that does not work and you have use something you think is good.

sinnet3000 [3 hidden]5 mins ago
The git username sounded familiar, it's from the same developer that created bzip3.
EdSchouten [3 hidden]5 mins ago
Interesting that it doesn’t use the same open source license as Vorbis/Opus itself. Otherwise improvements like these could be upstreamed?
BoingBoomTschak [3 hidden]5 mins ago
Those .blr extensions in the examples are making me doubt: the result is still conformant and playable ogg Vorbis/Opus, right?
bigC5560 [3 hidden]5 mins ago
I just tested this out for myself and I was unable to play the .blr file in VLC or using ffplay. It is not recognized as anything by ffprobe either. So it seems like you need to decompress it to play it in a standard player unfortunately.
sinnet3000 [3 hidden]5 mins ago
From what I can see, it's more like a specialized ZIP-like compressor for Vorbis/Opus files. You archive them on blr, and decompress them back to the original format.
ncruces [3 hidden]5 mins ago
Kinda like what Dropbox Lepton did for JPEG back then.

https://github.com/dropbox/lepton

BoingBoomTschak [3 hidden]5 mins ago
Ah, it's basically a PAQ context.
functionmouse [3 hidden]5 mins ago
Why was this written with explicit Windows 95 support? Just 'cuz?
lightedman [3 hidden]5 mins ago
Probably the same reason it was written with explicit DOS support.