[vorbis-dev] Test files for decoder implementation

Tor-Einar Jarnbjo Tor-Einar_Jarnbjo at grosch-link.de
Fri Sep 20 02:03:08 PDT 2002



Torsdag, 19 september 2002, skrev du:

>On Wed, Sep 18, 2002 at 02:17:46PM +0200, Tor-Einar Jarnbjo wrote:
>> Hi,
>> 
>> I am trying to implement a Vorbis decoder in Java, and I have some 
>> problems understanding the file-format specification included with 
>> libvorbis. In the header description, there are a few obvious 
mistakes,
>
>Please, inform us of any 'obvious mistakes'.

Most turned out to be my mistakes (typos and such), but one left 
is when decoding the mappings from the setup header:

vector [vorbis_mapping_magnitude] element [j]= read ilog([audio_channels]) 
bits as unsigned integer

vector [vorbis_mapping_angle] element [j]= read ilog([audio_channels]) 
bits as unsigned integer

Both steps should read:

.. read ilog([audio_channels] - 1) bits ...

Another point that confused me, is the computation of a floor curve 
type 1. When reading the y list from the data packet, you only get 
positive values from the codebook, but the floor 1 description mentions 
negative values also. I missed, that this is taken account for in 
the algorithm computing the curve.

The libvorbis implementation also differs from the format documentation 
in variable naming and algorithm implementation. Different variable 
naming is of course not really an error, and using different algorithms 
and storage structures not necessarily (probably rather an optimization 
of the decoding process), but it would be much easier to understand 
the format specification if they would match each other. At least 
it makes it impossible to compare a partial result from my implementation 
with whatever libvorbis has computed up to this point of the decoding 
process. Specific examples for this could be the last part of the 
residue header decoding process where libvorbis uses a 1-dimensional 
array with only the used codebooks, and the format specification 
uses a 2-dimensional array, marking unused entries as such, hence 
the residue packet decoding process is also very different.

>As for 'test files', no we don't have an official set.  For the most
>part, out debugging strategy is to use diagnostic output from the
>encoder and match that to diagnotic output from the decode.

Thanks for the tip. I'll take a look at the encoder, and see if I 
can get anywhere with that information.

Tor

<p><p>===================================================================
EASY and FREE access to your email anywhere: http://Mailreader.com/
===================================================================

<p>--- >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