[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