IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
Bit-perfect AAC/MP3/etc decoding?, Is it an issue?
mavere
post 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
Go to the top of the page
+Quote Post
DVDdoug
post Jan 5 2013, 01:00
Post #2





Group: Members
Posts: 2592
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
Go to the top of the page
+Quote Post
db1989
post Jan 5 2013, 01:14
Post #3





Group: Super Moderator
Posts: 5275
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.
Go to the top of the page
+Quote Post
saratoga
post Jan 5 2013, 01:17
Post #4





Group: Members
Posts: 4967
Joined: 2-September 02
Member No.: 3264



QUOTE (mavere @ Jan 4 2013, 18:43) *
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.
Go to the top of the page
+Quote Post
mjb2006
post Jan 5 2013, 03:53
Post #5





Group: Members
Posts: 811
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
Go to the top of the page
+Quote Post
benski
post Jan 5 2013, 10:08
Post #6


Winamp Developer


Group: Developer
Posts: 670
Joined: 17-July 05
From: Brooklyn, NY
Member No.: 23375



QUOTE (mjb2006 @ Jan 4 2013, 22:53) *
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.

Go to the top of the page
+Quote Post
IgorC
post Jan 5 2013, 20:31
Post #7





Group: Members
Posts: 1575
Joined: 3-January 05
From: ARG/RUS
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
Go to the top of the page
+Quote Post
db1989
post Jan 5 2013, 21:48
Post #8





Group: Super Moderator
Posts: 5275
Joined: 23-June 06
Member No.: 32180



…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?

This post has been edited by db1989: Jan 5 2013, 22:56
Reason for edit: Nope.
Go to the top of the page
+Quote Post
Soap
post Jan 5 2013, 22:11
Post #9





Group: Members
Posts: 1015
Joined: 19-November 06
Member No.: 37767



QUOTE (db1989 @ Jan 5 2013, 15:48) *
…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.
Go to the top of the page
+Quote Post
db1989
post Jan 5 2013, 22:56
Post #10





Group: Super Moderator
Posts: 5275
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. :/
Go to the top of the page
+Quote Post
Soap
post Jan 5 2013, 23:26
Post #11





Group: Members
Posts: 1015
Joined: 19-November 06
Member No.: 37767



QUOTE (db1989 @ Jan 5 2013, 16:56) *
I apologise for talking nonsense. :/


No, no. My reading and math both fail me at times.


--------------------
Creature of habit.
Go to the top of the page
+Quote Post
db1989
post Jan 6 2013, 00:14
Post #12





Group: Super Moderator
Posts: 5275
Joined: 23-June 06
Member No.: 32180



Heh, I’m glad it’s not just me. biggrin.gif

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
Go to the top of the page
+Quote Post
Arnold B. Kruege...
post Jan 7 2013, 15:45
Post #13





Group: Members
Posts: 3797
Joined: 29-October 08
From: USA, 48236
Member No.: 61311



QUOTE (DVDdoug @ Jan 4 2013, 19:00) *
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.
Go to the top of the page
+Quote Post
saratoga
post Jan 7 2013, 16:49
Post #14





Group: Members
Posts: 4967
Joined: 2-September 02
Member No.: 3264



QUOTE (Arnold B. Krueger @ Jan 7 2013, 09:45) *
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 19th September 2014 - 18:21