[vorbis-dev] Bitrate peeling hack semi-working

John Ripley jripley at rioaudio.com
Fri Jan 2 17:33:26 PST 2004



Alan MacDonald wrote:
> 
> John Ripley wrote:
> > Trouble is the peeled version sounds completely garbled compared to the
> > same size low quality encode (I'm just arbitrarily retaining the first 4
> > stages for now). Guess I need to toy with the template a bit. But it
> > does work, at least a little :)
> 
> You've now run into one of the main questions with peeling.  Is it
> possible to re-author the codebooks in such a way to make them peel-able
> and still efficient?  Segher believed it was possible, but with much
> bigger codebooks see here:
> http://www.xiph.org/archives/vorbis-dev/200211/0067.html
> 
> Glad to see someone looking into this, good luck!

Turns out I didn't need to do much re-authoring of the codebooks...
although the results I have aren't that great. It's now pretty much
working, and by that I mean:

* Files are generated at around 128kbit.
* The peeled version comes out at around 96kbit.
* The 128kbit files sound a bit poor.
* The 96kbit peeled file sounds a little worse.
* There's a bug somewhere which makes the peeled file click and pop
occassionally (you have been warned!)

I ended up making the residue calculate as strictly 3 stages at quality
0 followed by the stages you normally get at quality 3.

If you want to see the work-in-progess, the peeler is available here (as
part of my decoder project):

http://www.pslam.demon.co.uk/specbis-0.05.tar.gz

The patch to libvorbis to generate peelable files in special
circumstances is here:

http://www.pslam.demon.co.uk/vorbis-cvs-peeling.patch.gz

It will only work if you encode a file with examples/encoder_example,
because it needs to use exactly the right settings (i.e q3, vbr, laugh
at the patch contents). Example usage:

examples/encoder_example <some_raw_pcm >a.ogg
specpeel a.ogg 3 >peeled.ogg
ogginfo a.ogg peeled.ogg

This is really just a hideous hack. Ideally the encoder would say on a
per packet basis which stages to retain, and it would have codebooks
tailored to this approach. Still, at least this shows it will probably
work well eventually.

- John Ripley.
--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list