I've begun to develop a 2.25-bit-per-sample audio format that can be quickly decoded to the S-DSP's BRR format. It compresses 32 samples to a 9-byte block, half the size of ordinary BRR. I've provided samples of what it sounds like at 8 kHz (18 kbps) and 16 kHz (36 kbps). Is the result too scratchy?
I've attached the Python program I'm using for the experiment, as well as some samples of its input and output.
I suspect it's too scratchy for music, but it could be useful for compressing vocal samples in a flight sim or something. There's a very definite 'bad radio' sound to it.
Then again, it might depend on the instrument. If there's not much information, and it's reasonably compatible with the assumptions the codec makes, it might compress more gracefully.
It might benefit from some kind of high frequency bandlimiting before encoding (maybe a compressor applied to just the high frequency range?). You get a lot of distortion on sibilants which to my ear over-emphasizes them strongly.
That gives me a different idea: adapt the
sibilant compensation that I had used in the QuaDPCM codec, where I encode only the 0-4000 Hz band in some frames and only the 4000-8000 Hz band in others. I'll have to find time to try that, though I fear it might not be as effective as it is on the NES because of the low-pass characteristic of Gaussian interpolation.
I found a way to make it sound better after messing with it in Audacity. The result is in the zip folder.
Attachment:
Improved.zip [114.97 KiB]
Downloaded 105 times