Bit-perfect AAC/MP3/etc decoding?, Is it an issue? |
![]() ![]() |
Bit-perfect AAC/MP3/etc decoding?, Is it an issue? |
Jan 5 2013, 00:43
Post
#1
|
|
|
Group: Members Posts: 8 Joined: 30-May 05 Member No.: 22401 |
Sorry if this is easily answered elsewhere.
My question is that in a comparison of lossy-format decoders between, let's say, iTunes and Foobar and Winamp, will the output (edit: of a single source file) vary between decoding implementations? Or is it that once a decoder follows a specified format, all output is equal assuming there are no bugs? This post has been edited by mavere: Jan 5 2013, 00:51 |
|
|
|
Jan 5 2013, 01:00
Post
#2
|
|
|
Group: Members Posts: 2114 Joined: 24-August 07 From: Silicon Valley Member No.: 46454 |
Unlike encoding, I believe all decoders are supposed to be the same.
The decoder has a lot simpler task of decoding & reconstructing a wavefrom from whatever data is present. The encoder has to decide what data to throw-away. This post has been edited by DVDdoug: Jan 5 2013, 01:06 |
|
|
|
Jan 5 2013, 01:14
Post
#3
|
|
|
Group: Super Moderator Posts: 4333 Joined: 23-June 06 Member No.: 32180 |
QUOTE Unlike encoding, I believe all decoders are supposed to be the same. Within some aurally insignificant reference range. Beyond that, I don’t think differences are uncommon, albeit slight.Decodes can differ due to differences in rounding between CPUs, programming implementations, dither, etc. Will the outputs be equal? Perhaps not. Does it matter? Not unless something is broken. |
|
|
|
Jan 5 2013, 01:17
Post
#4
|
|
|
Group: Members Posts: 4129 Joined: 2-September 02 Member No.: 3264 |
My question is that in a comparison of lossy-format decoders between, let's say, iTunes and Foobar and Winamp, will the output vary between decoding implementations? Yes. Lossy formats rarely specify a bit perfect output. Instead a series of test tracks is usually provided with a maximum allowable error for each track. All compliant implementations should produce output within this specification. In practice, most software running on PC will be using 32 bit floating point and so will tend to have much greater accuracy then is required. Some embedded implementations may be less accurate, particularly on 16/24 bit processors and DSPs. |
|
|
|
Jan 5 2013, 03:53
Post
#5
|
|
|
Group: Members Posts: 581 Joined: 12-May 06 From: Colorado, USA Member No.: 30694 |
In AAC there can be Perceptual Noise Substitution, so I'm not sure I could expect identical output even from the same decoder.
This post has been edited by mjb2006: Jan 5 2013, 03:54 |
|
|
|
Jan 5 2013, 10:08
Post
#6
|
|
|
Winamp Developer Group: Developer Posts: 662 Joined: 17-July 05 From: Ashburn, VA Member No.: 23375 |
In AAC there can be Perceptual Noise Substitution, so I'm not sure I could expect identical output even from the same decoder. The random number generator is seeded at the start of the stream from a fixed value, so it is deterministic and repeatable. That being said, seeking or starting mid-stream will cause differences. |
|
|
|
Jan 5 2013, 20:31
Post
#7
|
|
|
Group: Members Posts: 1315 Joined: 3-January 05 From: Argentina, Bs As Member No.: 18803 |
Related topics
Updated compliance testing for Winamp and Foobar MP3 decoding differences, foobar2000 1.2 Even if hardware would be perfectly ideal and considering best human hearing abilities, still the precision of MP3 decoding (24 bits) is excessively high. P.S. The last Apollo player has a ridiculously precise MP3 decoder in 24 bits mode. http://koti.welho.com/hylinen/apollo/FAQ.html This post has been edited by IgorC: Jan 5 2013, 20:43 |
|
|
|
Jan 5 2013, 21:48
Post
#8
|
|
|
Group: Super Moderator Posts: 4333 Joined: 23-June 06 Member No.: 32180 |
This post has been edited by db1989: Jan 5 2013, 22:56
Reason for edit: Nope.
|
|
|
|
Jan 5 2013, 22:11
Post
#9
|
|
|
Group: Members Posts: 986 Joined: 19-November 06 Member No.: 37767 |
…in which the author claims that differences that at most represent fluctuations in the least-significant of 24-bits are the answer to the question “Why does Apollo sound so good?”. Should we be directing traffic towards such nonsense? Isn't he saying his error is in the 24th bit while others are 100x worse - ie. 17 bits down? Or is my math horrid? This post has been edited by Soap: Jan 5 2013, 22:13 -------------------- Creature of habit.
|
|
|
|
Jan 5 2013, 22:56
Post
#10
|
|
|
Group: Super Moderator Posts: 4333 Joined: 23-June 06 Member No.: 32180 |
Sorry, I did read it wrongly.
QUOTE RMS level [of the then-latest version of MAD] is over a hundred times the one produced by Apollo 37zm and the maximum difference is four times the one by Apollo (interestingly the results for MAD 0.11.4b seem to be somewhat better than for the latest one but they are still worse than Apollo's). Actually, the maximum difference of Apollo's output is the smallest possible deviation in 24-bit data, the only smaller possible value would be zero. So, you’re right; this suggests that MAD produced an RMS between 6–7 bits larger in magnitude than Apollo did, and (I guess) a maximal difference 2 bits larger in magnitude. I apologise for talking nonsense. :/ |
|
|
|
Jan 5 2013, 23:26
Post
#11
|
|
|
Group: Members Posts: 986 Joined: 19-November 06 Member No.: 37767 |
I apologise for talking nonsense. :/ No, no. My reading and math both fail me at times. -------------------- Creature of habit.
|
|
|
|
Jan 6 2013, 00:14
Post
#12
|
|
|
Group: Super Moderator Posts: 4333 Joined: 23-June 06 Member No.: 32180 |
Heh, I’m glad it’s not just me.
Although I welcome higher precision, I still take issue with descriptions like these: Why does Apollo sound so good? The sound quality has always been an important factor when making decisions in the decoder code. Recent addition of 32-bit and 24-bit output has resulted in further improvements in the quality. To prove this, I measured the difference of Apollo 37zm 24-bit output to the MPEG-1 audio layer 3 compliance test reference signal […] Of course, this only goes for the provided test signal, but it should give some picture about the sound quality. Logic that extrapolates conclusions about sound quality from measurements is not in line with TOS #8 – especially when the reported differences lie beyond the 16th bit – so I’d advise readers not to take this seriously. This post has been edited by db1989: Jan 6 2013, 00:14 |
|
|
|
Jan 7 2013, 15:45
Post
#13
|
|
![]() Group: Members Posts: 3212 Joined: 29-October 08 From: USA, 48236 Member No.: 61311 |
Unlike encoding, I believe all decoders are supposed to be the same. The operation of decoders is generally well-known and well-defined. Evens so, bit perfect can be tough because different hardware implements arithmetic with subtle differences and at the LSB level insignificant variations in things like order of operations can lead to tiny differences. |
|
|
|
Jan 7 2013, 16:49
Post
#14
|
|
|
Group: Members Posts: 4129 Joined: 2-September 02 Member No.: 3264 |
Evens so, bit perfect can be tough because different hardware implements arithmetic with subtle differences and at the LSB level insignificant variations in things like order of operations can lead to tiny differences. For mp3 its even more complex because the specification provides filter constants to specified precisions, but does not define the precision of the actual filterbank operations nor their precise implementation. Thus there is no "exact" value to compare to, only a range of values you should not exceed. Of course as Arnold points out, these differences are incredibly small and completely irrelevant to audio quality when implemented on modern 32 or 64 bit machines. They mostly only matter when using 16 bit DSP cores. |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 20th May 2013 - 00:25 |