Re: [MP3 ENCODER] Decoder quality comparison [quite detailed - sorry if repeat]

2000-04-20 Thread Adam Whitehead

Hi,

I don't know if this is what you're looking for, but my doc
contains the following:

authors:
Dipl.-Ing. Martin Sieler
Dipl.-Ing. Ralph Sperschneider

Issue: 1.2

04.03.97

Is this what you're after?

Regards,
Adam Whitehead
CEO - Netherworld Media
E-mail: [EMAIL PROTECTED]
Phone: +61 (889) 279 898
FAX: +61 (889) 273 889
AudioPhilez (http://www.audiophilez.com)

- Original Message -
From: "Gabriel Bouvigne" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, April 20, 2000 9:52 PM
Subject: Re: [MP3 ENCODER] Decoder quality comparison [quite
detailed - sorry if repeat]


>
> > > There is a Word document floating around, published by
> > > Fraunhofer, called "MPEG Layer3 Bitstream syntax and
decoding"
> > > It is much more usefull to decoder writers than the
ISO docs.
> >
> > Anybody have a copy of this?  I'd love to see it.
> >
> > Thanks,
> > Alex
>
> I'd also like a copy of a good version of this document.
Mine is
> incomplete and most tables are completely messed.
>
> Regards,
>
> --
>
> Gabriel Bouvigne - France
>
> www.mp3-tech.org
> --
> MP3 ENCODER mailing list
( http://geek.rcc.se/mp3encoder/ )
>

--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )



Re: [MP3 ENCODER] Decoder quality comparison [quite detailed - sorry if repeat]

2000-04-20 Thread Gabriel Bouvigne


> > There is a Word document floating around, published by
> > Fraunhofer, called "MPEG Layer3 Bitstream syntax and decoding"
> > It is much more usefull to decoder writers than the ISO docs.
> 
> Anybody have a copy of this?  I'd love to see it.
> 
> Thanks,
> Alex

I'd also like a copy of a good version of this document. Mine is
incomplete and most tables are completely messed.

Regards,

-- 

Gabriel Bouvigne - France

www.mp3-tech.org
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )



Re: [MP3 ENCODER] Decoder quality comparison [quite detailed - sorry if repeat]

2000-04-19 Thread Mark Taylor

> 
> Howdy All,
> 
> I recently finished completely overhauling the ISO 'dist10' LSF decoder to
> extract a layer-III only player for work.  In the process, I discovered a
> few bugs/inconsistencies in/between the 'dist10' distribution and ISO/IEC
> 11172-3 and 13818-3.  I don't know if they would account for the differences
> you are reporting, but they certainly might contribute.
> 
> Here's what I found:
> 


Here are a few other bugs that you might be interested in.
They were discovered by (IIRC) Robert, Iwasa, Takehiro and Leonid:

ISO/mpg123/mpglib:
24khz scalefactor band index table for long blocks, the
number "330" should be "332".  This will actually cause
the decoder to choke on the whole frame so it should be
easy to detect.  (unless the encoder was also incorrectly
using 330 :-)

mpglib:
There were several scsfi bugs in mpglib that didn't seem to
be in mpg123.  I dont know if these bugs are in the ISO code,
and fixed in mpg123 after mpglib was created, or
if the bugs were introduced in the creation of mpglib.

There was also a bug in the ISO encoder which could easily be in the
decoder: It was reversing the order of the individual quadruples in
the count1 region. This bug only effects the highest frequencies, and
is particularly insidious because it produces small flaws which could
be attribted to compression artifacts.

Another bug in almost all the windows players: They dont allow the
samplerate to change within a bitstream.  (for example, if a 44.1 and
22.05 mp3 file are concatenated into one file) Responce various from
crashing to doing a micky mouse impersonation.

There is a Word document floating around, published by 
Fraunhofer, called "MPEG Layer3 Bitstream syntax and decoding"
It is much more usefull to decoder writers than the ISO docs.

Mark





--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )



RE: [MP3 ENCODER] Decoder quality comparison [quite detailed - sorry if repeat]

2000-04-19 Thread Alex Broadhead

Howdy All,

I recently finished completely overhauling the ISO 'dist10' LSF decoder to
extract a layer-III only player for work.  In the process, I discovered a
few bugs/inconsistencies in/between the 'dist10' distribution and ISO/IEC
11172-3 and 13818-3.  I don't know if they would account for the differences
you are reporting, but they certainly might contribute.

Here's what I found:

1) In the joint stereo processing function, in the intensity stereo
block, for both mixed and short there is a bug in the code - after the lower
frequency bands are handled, the highest band, for which no scalefactors are
transmitted, is supposed to be filled with the values for the next lowest
band.  However the code instead writes over the values in the 11th band by
mistake, and leaves the 12th (highest) band uninitialized.  This is clearly
wrong, and fixing it makes a difference in the highest frequencies of
short/mixed intensity coded blocks.

2) In the requantization function, the boundary for mixed, LSF
blocks is wrong.  For MPEG-1, it is band 8, but for MPEG-2, it should be 6.
I've never encountered any mixed blocks, so I only found this while
simulating mangled input bitstreams, where it causes hangs/crashes.  The
same error is repeated in the LSF decode scalefactors function (8 for 6),
and this time it is also a discrepancy with the spec, which says 6.

3) The spec has a bug - when reading side info and
window_switching_flag is true, the spec says that region1_count can be set
to 36.  This is totally false.  The 'dist10' code has the correct
formulation, which is 20 - region0_count.

4) Finally, the spec is very misleading about the order of
processing.  It lists joint stereo processing as occurring after reorder.
However, the 'dist10' code does reorder after joint.  I'm sure you could
reverse this, but it makes a big difference in the joint stereo block.  If
you just naively switch them, everything seems OK until you try to decode an
intensity coded block, at which point you get very different results.

I should point out that in testing I also observed numerous non-trivial
discrepancies between the output of L3dec (v.274) and the ISO code when
using LSF (i.e. MPEG-2's lower sampling frequencies) (or maybe intensity -
they typically switch on at the same time) which I could not account for
with the above buggage (actually, I didn't try bug 4).  Either there are
further (undetected) bugs in 'dist10', or ISO and FhG disagree on how
LSF(/intensity) should be handled...

If anyone has any similar experience, I'd appreciate their comments,
Alex

> -Original Message-
> From: Matthew Lloyd [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, April 18, 2000 4:54 PM
> To: [EMAIL PROTECTED]
> Subject: [MP3 ENCODER] Decoder quality comparison [quite detailed -
> sorry if repeat]
...
> My first discovery was that out of the four WAV files I had, 
> three were
> almost exactly identical. The decoded audio from aE4 and the 
> Fraunhofer
> WinAmp codec was byte-by-byte identical with that from l3dec 
> apart from the
> occasional 1-bit quantization error (v occasional - about 2 
> or 3 a second
> I'd guess). However the Nitrane WAV, whilst identical in almost every
> respect and certainly identical below 13kHz, showed differences in the
> 13khz-16khz band.
...
> This is clearly a bug, either in fraunhofer's code or 
> nitrane's code. I
> could not hear the differences (untrained ear) nor could I 
> verify which was
> more 'correct' to the mp3 format since I know nothing of 
> this. My immediate
> conclusion would be that Nitrane has a bug that is causing 
> these errors.
> However, since Nullsoft have licensed Fraunhofer's mp3 decoding code
> already, for version v2.2, and since the v2.6 Nitrane 
> decoder's about box
> still has a panel crediting the mp3 decoder license to 
> Fraunhofer, why would
> Nullsoft exchange a perfectly good piece of Fraunhofer code 
> for Nitrane code
> that produces these bugs? Are these bugs actually original 
> bugs in the ISO
> implementation upon which presumably Fraunhofer's code is 
> based? Are these
> differences worry-worthy?
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )



RE: [MP3 ENCODER] Decoder quality comparison [quite detailed - sorry if repeat]

2000-04-18 Thread Ross Levis

Hi Matthew.  Interesting analysis.  Just one question.
What do you mean by
> WinAmp's EQ sucks bigtime. They all have the same frequency response.

Ross.
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )



[MP3 ENCODER] Decoder quality comparison [quite detailed - sorry if repeat]

2000-04-18 Thread Matthew Lloyd

Hi peeps,

I know this is MP3-encoder but I couldn't find any place more suitable to
post the results of some decoder testing I've been doing over the last
couple of days.

I took a fairly complex track (Pat Metheny's Imaginary Day title track in
fact) ripped from CD at 44.1khz 16bit stereo, and encoded it using
Fraunhofer's MP3Enc v3.1 to a 256kbit MP3 file using the '-qual 9' setting.
I then proceeded to decode the track using various decoders. The decoders I
tested were l3dec v2.74, Sonique aE4 (from v1.51.0) and two Winamp decoders,
the first from v2.2 (the first release with the Fraunhofer codec) and the
second from v2.6 (Nitrane). I then compared the output WAV files to discover
any potential differences!

To compare the audio files, I found a suitably complicated 10-second portion
of audio in the original WAV file, then identified by inspection a suitable
reference point at the start of this section, which turned out to be a
particular peak in the waveform that was clearly identifiable. Using
CoolEdit 2000 I marked the corresponding sections in the decoded WAVs to the
exact sample. This allowed me to subtract one of the WAVs from the other and
thereby do a direct comparison.

My first discovery was that out of the four WAV files I had, three were
almost exactly identical. The decoded audio from aE4 and the Fraunhofer
WinAmp codec was byte-by-byte identical with that from l3dec apart from the
occasional 1-bit quantization error (v occasional - about 2 or 3 a second
I'd guess). However the Nitrane WAV, whilst identical in almost every
respect and certainly identical below 13kHz, showed differences in the
13khz-16khz band.

These differences appeared in the subtracted audio as single isolated
spectral components, of very short duration (perhaps 0.05s) and constant
frequency. They were distributed quite evenly between the left and right
channels, maybe 5 per channel per second. Each had an amplitude of
perhaps -60db.

The question now was whether these were a) components missing from l3dec's
output; b) components missing from nitrane's output; c) components present
in both but at different amplitudes or d) something else. A little detective
work was in order. I put CEP 2000 into spectral view and captured the
spectrums into Paint Shop Pro, where I could subract then from each other as
images. What I discovered was that the components were always present in
both, but were either at different amplitudes, or at slightly different
positions - the nitrane components were roughly 50/50 too far ahead or too
far behind the l3dec components.

This is clearly a bug, either in fraunhofer's code or nitrane's code. I
could not hear the differences (untrained ear) nor could I verify which was
more 'correct' to the mp3 format since I know nothing of this. My immediate
conclusion would be that Nitrane has a bug that is causing these errors.
However, since Nullsoft have licensed Fraunhofer's mp3 decoding code
already, for version v2.2, and since the v2.6 Nitrane decoder's about box
still has a panel crediting the mp3 decoder license to Fraunhofer, why would
Nullsoft exchange a perfectly good piece of Fraunhofer code for Nitrane code
that produces these bugs? Are these bugs actually original bugs in the ISO
implementation upon which presumably Fraunhofer's code is based? Are these
differences worry-worthy?

Hope this is of interest to somebody. I also did some encoder quality tests
and discovered that I could not coax MP3ENC to encode the 16-22kHz band
particularly well - it would occasionally code components up to 20kHz but in
places where it mattered, for example drum attacks, it seemed not to bother.
LAME 3.70 did much better in this area. As I can hear some components above
16kHz and since LAME is about 10 times faster on my machine I'm sticking
with LAME. Nice work guys :)

If anybody's really interested I'll put up some pictures of the results
somewhere.

The basic conclusion is: there is no major difference between any of the MP3
decoders out there, except to say that that WinAmp's EQ sucks bigtime. They
all have the same frequency response.


Matthew

--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )