NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Balrogg: Demonically compacting (up to 15%) lossless Vorbis/Opus recompressor (github.com)
tux3 13 hours 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 13 hours 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 13 hours ago [-]
The git username sounded familiar, it's from the same developer that created bzip3.
EdSchouten 13 hours ago [-]
Interesting that it doesn’t use the same open source license as Vorbis/Opus itself. Otherwise improvements like these could be upstreamed?
BoingBoomTschak 13 hours ago [-]
Those .blr extensions in the examples are making me doubt: the result is still conformant and playable ogg Vorbis/Opus, right?
sinnet3000 13 hours 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 11 hours ago [-]
Kinda like what Dropbox Lepton did for JPEG back then.

https://github.com/dropbox/lepton

BoingBoomTschak 2 hours ago [-]
Ah, it's basically a PAQ context.
bigC5560 13 hours 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.
functionmouse 7 hours ago [-]
Why was this written with explicit Windows 95 support? Just 'cuz?
lightedman 5 hours ago [-]
Probably the same reason it was written with explicit DOS support.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 10:22:39 GMT+0000 (Coordinated Universal Time) with Vercel.