IPB

Welcome Guest ( Log In | Register )

Pathological example of a intersample peak, 11dB, discussion.
Rescator
post Jan 10 2013, 04:36
Post #1





Group: Members
Posts: 73
Joined: 13-January 09
From: Trondheim
Member No.: 65515



Pathological example of a intersample peak that was artificially created:

~0dB peak, ~20dBFS RMS (squarewave), +10.87dB intersample peak, 44.1KHz, 32bit float.

http://www.hydrogenaudio.org/forums/index....showtopic=98752

Please keep any discussion of the test sample in this tread, rather than where it's simply "stored".


The problem:
If oversampled the true peak is reveal to be almost +11dB.
A DAC would need 11dB headroom (or alternatively ~12dB which equals 2 bits) to handle this wav correctly.

The solution?:
A "quick fix" for a 24bit (or float) audio chain, would be to reduce the volume by 12dB somewhere.
Volume loss can be later compensated by simply increasing the analog volume (the user turning the knob a little higher).

*** The rest is somewhat opinionated. ***


Thoughts:
As such the "bottom 3 bits" of audio could be considered waste-able, 2 bits to handle pathological intersample peaks, + 1 bit due to quantization/noisefloor/dither.
A "24bit" DAC would have no issues, 21bits to use is a lot. Likewise a "20bit" DAC would still have 17bits to use.
Ideally the 11 (or 12) dB volume reduction would be done by the DAC just before the reconstruction stage.

Issues?:
For a 12dB headroom DAC one would need to crank up the playback volume, so such a DAC would sound more quiet than most other DACs.
Noisefloor of the amplifier and other parts of the equipment/audio chain is also an issue.
But even "cheap" gear has around -80dBFS to -100dBFS noisefloor.
Also considering that a normal living room can easily have a +50dB noisefloor, so loosing out on the 12dB or so of the quietest audio is not an issue.

So if taking CD audio as an example, a 12dB adjustment would cause the content in the -96dBFS to -84dBFS range to be lost.
The loss can be avoided by simply passing the 16bit audio as 24bit or 32bit float instead.
Under Windows Vista and Windows 7 and Windows 8 all audio is changed to 32bit so this is a non-issue.

How to avoid intersample peaks on gear without the needed headroom?:
On Windows you can simply make sure that you never raise the volume (in Windows) above -12dBFS (~45% volume),
and instead use the analog volume knob (if there is one on your system or gear) instead.

11dB really?
Yep! Then again this is a pathological example.
"Normally" the intersample peak is within 1dB of the digital peak, and in some rare cases up to 2 to 3dB higher.
If you make/master music, then the final mix/pressing master/encoding/exporting should have 2 or 3dB headroom.
So as long as no peaks go above 3dB you should be pretty darn safe from causing any clicks or distortion for the end user.

The example here is a pure spike, and humans tend not to like to listen to pops, clicks, static, test tones, or similar.
So encountering anything like this "in the wild" is very rare.

Is it really that bad?:
Please remember that intersample peaks do not damage equipment, at least I've never heard or read about such happening, and the CD was invented like ages ago.
So if this was a practical issue we'd have heard about it along time ago as equipment got fried etc. And we'd have had a solution years ago as well.

The only thing it does is damage the audio quality, that is if you actually can hear/notice it at all. You are more likely to hear crackling/distortion from overly compressed music.
And ironically it is that type of overly compressed music that has the most intersample peaks that go above 0dBFS.
Solution? Stop compressing the hell out of music. Use 20dB or more headroom and intersample peaks will most likely never be an issue.



--------------------
"Normality exist in the minds of others, not mine!" - Rescator
Go to the top of the page
+Quote Post
 
Start new topic
Replies
John_Siau
post Jan 10 2013, 16:10
Post #2





Group: Members
Posts: 84
Joined: 28-July 09
From: Syracuse, NY USA
Member No.: 71848



When designing Benchmark's new DAC2 HGC D/A converter, we chose to add 3.5 dB of digital headroom to accommodate inter-sample overs. We are working with a 32-bit fixed-point conversion system, and a 32-bit fixed-point gain control. The conversions subsystem has a 133 dB SNR, so we can afford to throw away 3.5 dB SNR to eliminate the clipping of inter-sample overs.

A survey of our in-house music library showed inter-sample overs reaching peak levels of +1.5 to +2 dBFS worst-case. However, please note that our entire library is ripped in lossless formats. I suspect that inter-sample overs could be higher in amplitude, and more frequent, when the audio is reconstructed with an MP3 decoder. Does anyone have test results for MP3 audio sources?

I believe 3.5 dB of headroom above 0 dBFS is sufficient to handle all continuous waveforms, including square waves. Can anyone provide examples or calculations to prove otherwise?

3.5 dB of headroom should also be more than sufficient to handle music (but my tests are limited to lossless rips at standard sample rates between 44.1 and 192 kHz).

The example cited in this thread is high-amplitude high-frequency transient - something we are unlikely to see in a typical recording. It should not be necessary to provide the full 11 dB of headroom required for this pathological example.


--------------------
John Siau
Vice President
Benchmark Media Systems, Inc.
Go to the top of the page
+Quote Post
Rescator
post Jan 11 2013, 11:27
Post #3





Group: Members
Posts: 73
Joined: 13-January 09
From: Trondheim
Member No.: 65515



QUOTE (John_Siau @ Jan 10 2013, 16:10) *
A survey of our in-house music library showed inter-sample overs reaching peak levels of +1.5 to +2 dBFS worst-case. However, please note that our entire library is ripped in lossless formats. I suspect that inter-sample overs could be higher in amplitude, and more frequent, when the audio is reconstructed with an MP3 decoder. Does anyone have test results for MP3 audio sources?

I believe 3.5 dB of headroom above 0 dBFS is sufficient to handle all continuous waveforms, including square waves. Can anyone provide examples or calculations to prove otherwise?

3.5 dB of headroom should also be more than sufficient to handle music (but my tests are limited to lossless rips at standard sample rates between 44.1 and 192 kHz).


I'm seeing similar mentioned elsewhere too, normally you would never see above 3. Usually the same as or +1 to +2, very rarely +3, and above +3 probably almost ever, so 3.5 is a good margin. Anything above that are either test/synthetic like my test sample, or a single (or similar) pop that a ed user rarely hears. (usually data corruption during transmission) Although vinyl (being not just analog but mechanical) could cause high intersample peaks by mistake. (vinyl music is usually 40Hz-16KHz)

I'm curious of raw number tests as well, but I can't find a R128 scanner with True Peak with log generation for later processing.
At least I have not found such a tool, I'd be happy to scan and provide the results as I'm sure others would be.

I tried with Sox but upsampling (if it's the correct way, or is rate the better option?) even if it's correct, the stats option seem to clip the peak at full signal, and there seem to be no way to change that, using the vol option to reduce by 12dB and then do the upsample does make things better, but -5.20dB (and thyen calculating +12dB) it is still nowhere close to the actual 10.87dB.
Shame as the stats that Sox output is otherwise pretty nice.


--------------------
"Normality exist in the minds of others, not mine!" - Rescator
Go to the top of the page
+Quote Post
Banned
post Jan 12 2013, 12:24
Post #4





Group: Members
Posts: 13
Joined: 12-January 13
Member No.: 105821



QUOTE (Rescator @ Jan 11 2013, 11:27) *
it is still nowhere close to the actual 10.87dB.

What is "actual" here? It depends on what interpolation formula you use. I could say that your figure of 10.87dB is nowhere close to actual 15.59dB (obtained by using unwindowed sinc interpolation). This is as actual as it gets.

http://imgur.com/uQctz

This post has been edited by Banned: Jan 12 2013, 12:28
Go to the top of the page
+Quote Post
Rescator
post Jan 12 2013, 13:14
Post #5





Group: Members
Posts: 73
Joined: 13-January 09
From: Trondheim
Member No.: 65515



QUOTE (Banned @ Jan 12 2013, 12:24) *
QUOTE (Rescator @ Jan 11 2013, 11:27) *
it is still nowhere close to the actual 10.87dB.

What is "actual" here? It depends on what interpolation formula you use. I could say that your figure of 10.87dB is nowhere close to actual 15.59dB (obtained by using unwindowed sinc interpolation). This is as actual as it gets.


Nice! Do you have a test wav? After all that is the purpose of the my test wav, to see how/if the interpeak sample is detected by software, and is so what it's measured at. The +10.87dB is from Adobe Audition 1.5, with 999 quality setting and post processing off and tested with 2,4,8,16,32,64x resampling. (Note! Audition 1.5 crashed when trying to resample to 128x, but the other checks was very consistent (i.e. the same) +/- 0.01dB)
If you meant a peak scanner showed +15.59dB then I'm very curious indeed as to what tool that is, if it's a sample you are able to generate then that is awesome as the highest I could make was 10.87dB, though that was hand edited rather than mathematically generated. Color me curious.


--------------------
"Normality exist in the minds of others, not mine!" - Rescator
Go to the top of the page
+Quote Post
Banned
post Jan 12 2013, 15:54
Post #6





Group: Members
Posts: 13
Joined: 12-January 13
Member No.: 105821



QUOTE (Rescator @ Jan 12 2013, 13:14) *
Nice! Do you have a test wav? After all that is the purpose of the my test wav, to see how/if the interpeak sample is detected by software, and is so what it's measured at. The +10.87dB is from Adobe Audition 1.5, with 999 quality setting and post processing off and tested with 2,4,8,16,32,64x resampling. (Note! Audition 1.5 crashed when trying to resample to 128x, but the other checks was very consistent (i.e. the same) +/- 0.01dB)
If you meant a peak scanner showed +15.59dB then I'm very curious indeed as to what tool that is, if it's a sample you are able to generate then that is awesome as the highest I could make was 10.87dB, though that was hand edited rather than mathematically generated. Color me curious.

Example wav is here: http://filesmelt.com/dl/upsample1.wav (88200 hz, 32-bit float). It should be your wav upsampled using windowed sinc with a very large window - it almost doesn't affect the peak value. Check it yourself, I can't trust myself. I just had a funny bug when constructing filtering kernel for 2x upsampling - I stuffed zeros in every second value. blink.gif Though it doesn't change peak value here.
As I said already, peak value entirely depends on the interpolation filter used in the upsampler. Though no reasonable filter I can think of (not many) should give more than 15.59dB here. If you make your sample longer ( I don't mean stuffing it with zeros at beginning or end), you can get even bigger peak with a suitable upsampler.
Go to the top of the page
+Quote Post
Rescator
post Jan 12 2013, 18:14
Post #7





Group: Members
Posts: 73
Joined: 13-January 09
From: Trondheim
Member No.: 65515



QUOTE (Banned @ Jan 12 2013, 15:54) *
Example wav [...] It should be your wav upsampled using windowed sinc with a very large window - it almost doesn't affect the peak value.


That is not the same waveform, whatever upsampling method you used it significantly altered the waveform. Audition retained the original waveform shape regardless what samplerate it resampled to.



--------------------
"Normality exist in the minds of others, not mine!" - Rescator
Go to the top of the page
+Quote Post
Banned
post Jan 12 2013, 20:52
Post #8





Group: Members
Posts: 13
Joined: 12-January 13
Member No.: 105821



QUOTE (Rescator @ Jan 12 2013, 18:14) *
QUOTE (Banned @ Jan 12 2013, 15:54) *
Example wav [...] It should be your wav upsampled using windowed sinc with a very large window - it almost doesn't affect the peak value.


That is not the same waveform, whatever upsampling method you used it significantly altered the waveform. Audition retained the original waveform shape regardless what samplerate it resampled to.

Before we can have a meaningful discussion, we need to agree about terms. Specifically:
- what is "true value" between samples. It can only be obtained by interpolation. Many different interpolation filters are possible. You seem to think that what's built into Audition is Final Truth™. I disagree - it's only a practical compromise. In my opinion, if we are to use the term "true value", we should define it as value given by Whittaker-Sannon interpolation formula, as it offers perfect reconstruction for signals satisfuing conitions f the sampling theorem.
- what is "waveform shape" and when it becomes sufficiently different. Your own post says that before upsampling the amplitude is 8.5db, and 10.87 after. I think that's sufficiently different.
Please also do a null test.

This post has been edited by Banned: Jan 12 2013, 21:00
Go to the top of the page
+Quote Post
Rescator
post Jan 12 2013, 22:53
Post #9





Group: Members
Posts: 73
Joined: 13-January 09
From: Trondheim
Member No.: 65515



QUOTE (Banned @ Jan 12 2013, 20:52) *
QUOTE (Rescator @ Jan 12 2013, 18:14) *
QUOTE (Banned @ Jan 12 2013, 15:54) *
Example wav [...] It should be your wav upsampled using windowed sinc with a very large window - it almost doesn't affect the peak value.
That is not the same waveform, whatever upsampling method you used it significantly altered the waveform. Audition retained the original waveform shape regardless what samplerate it resampled to.
Before we can have a meaningful discussion, we need to agree about terms. Specifically:
- what is "true value" between samples. It can only be obtained by interpolation. Many different interpolation filters are possible. You seem to think that what's built into Audition is Final Truth.

Stop acting like a nincompoop, I never said final truth or anything like that, please do not try to imply I said something that I did not actually say. As for talking about Audition please see further below.

QUOTE
if we are to use the term "true value", we should define it as value given by Whittaker-Sannon interpolation formula, as it offers perfect reconstruction for signals satisfuing conitions f the sampling theorem.

Again, I never said true value. I said true peak, a term I did not make up but which the industry have been using for quite some years now, do not point the finger at me on that one.
I also assume you mean Whittaker-Shannon ? I am not familiar with that, nor do I have a way to practically test that. And be careful to claim "perfect", people get spanked for less on HA. rolleyes.gif

QUOTE
- what is "waveform shape" and when it becomes sufficiently different. Your own post says that before upsampling the amplitude is 8.5db, and 10.87 after. I think that's sufficiently different.


Yes! Because peak detection of intersample peaks are only possible after upsampling. The 8.5 was from looking at the waveform rendering. After upsampling it matches visually (on the dB scale) with the peak analysis.

As to the waveform shape and me referring to Audition it's simple. I created the test wav by hand in Audition. I also tested upsampling. (999 quality, and no pre/post filter) If any pre/post filtering is done the waveform is altered.

To see what I mean look at this:
Original 44.1KHz waveform http://imageshack.us/photo/my-images/163/originaly.png/
Upsamples/resampled to 88.2KHz with Audition 1.5, 999 quality, no pre/post filter. http://imageshack.us/photo/my-images/571/upsampled.png/
And this is yours http://imageshack.us/photo/my-images/96/upsampledb.png/

To my eyes it is clear which upsample simply interpolated, and which actually altered the shape of the wave.

QUOTE
Please also do a null test.


I just did, but Audition is being an ass, seems that regardless what settings I'm using it insists on reducing the intersample peak to around 0dB. (Normally I'd welcome this, but it ruins a null test)
Regardless, the result is a waveform shape almost identical to the first two. (with the variation being how extreme the intersample peak actually is).
Note! There is no windowing (or if there is it's fixed) to be set here, not sure if that is significant.

I'm not sure what you are getting so upset for here. But we're getting slightly off topic now. This thread is not about Audition.
This thread is about extreme intersample peaks, an example of such for test cases, and detecting such, the headroom needed to handle it (if needed at all).

I'd also like to see a EBU R128 compliant test of the original wav as I'm curious as to how it detects (and by how much) with it's 4x upsampling true peak detection, but sadly Sox do no have this and I'm still trying to find a tool that does.

And don't get me wrong, I welcome other test wavs or examples of extremes, especially if they are even more extreme than my wav.
It's just that you claimed that your wav was a upsample mine, which may be true, but the interpolation is way off on yours.
Looking at the spectral view I see that my original (and it's upsample) has it's energy spread evenly through all frequency bands, with some minor clustering near 44.1 (both original and upsample) as does yours, but next is where things differ.
The length of the original wave is ~0:00.220, the length of my upsample wave is the same. The length of your upsample wave is ~0:03.823, a duration increase of over 3 and a half second.
You may have upsampled the original, but the result is not just a upsample, but a modification of the wave. If the wave is different then obviously the intersample peak(s) will be as well.

Now if you excuse me, I'm off to battle with Sox, (@bandpass, thanks for the Sox settings tip BTW!)
it seems to be morphing the wave a little during upsampling as well. (or perhaps it's resampling when I really should have it upsample instead?)


--------------------
"Normality exist in the minds of others, not mine!" - Rescator
Go to the top of the page
+Quote Post
2Bdecided
post Jan 14 2013, 12:47
Post #10


ReplayGain developer


Group: Developer
Posts: 5108
Joined: 5-November 01
From: Yorkshire, UK
Member No.: 409



QUOTE (Rescator @ Jan 12 2013, 21:53) *
To see what I mean look at this:
Original 44.1KHz waveform http://imageshack.us/photo/my-images/163/originaly.png/
Upsamples/resampled to 88.2KHz with Audition 1.5, 999 quality, no pre/post filter. http://imageshack.us/photo/my-images/571/upsampled.png/
And this is yours http://imageshack.us/photo/my-images/96/upsampledb.png/

To my eyes it is clear which upsample simply interpolated, and which actually altered the shape of the wave.
No, you can't say that from this view. I assume your version of Audition works the same as my old Cool Edit Pro - when zoomed out, the solid envelope is formed from the maximum excursion of the actual sample values, no interpolation. The whole point of this topic is that actual sample values can be very different from nearby reconstructed values (and sample value peaks can be very different from intersample peaks). It's wrong to claim that a resampling algorithm is better because the between-original-sample reconstructed (resampled) sample values are closer to the original sample values.

"Banned" is right to say that sinc reconstruction is theoretically perfect in this sense, and with a short audio sample it's not that difficult to get as close to theoretical perfection as you wish - bounded only by the rounding error in the mathematical operations you use, and (if you're seeking the absolute true peak) the number of discrete inter-sample time points you wish to calculate. With any time-bound audio signal this "perfect" reconstruction is possible, though with longer signals a) it's a pain, and b) it's pointless (not least because the sinc function falls off to irrelevantly small values pretty quickly compared with, say, the length of a typical music track).

Whether "Banned" is performing the sinc reconstructions correctly or not, I don't know - I haven't tried it.

Cheers,
David.
Go to the top of the page
+Quote Post

Posts in this topic
- Rescator   Pathological example of a intersample peak, 11dB, discussion.   Jan 10 2013, 04:36
- - Rescator   http://forums.digitalspy.co.uk/showthread....25#po...   Jan 10 2013, 07:51
- - Kees de Visser   At a first glance it seems that this test signal i...   Jan 10 2013, 07:57
- - lvqcl   http://www.hydrogenaudio.org/forums/index....st...   Jan 10 2013, 15:52
- - 2Bdecided   While we're quoting past debates, I remember o...   Jan 10 2013, 16:06
- - John_Siau   When designing Benchmark's new DAC2 HGC D/A co...   Jan 10 2013, 16:10
|- - saratoga   QUOTE (John_Siau @ Jan 10 2013, 10:10) I ...   Jan 10 2013, 17:07
|- - Rescator   QUOTE (John_Siau @ Jan 10 2013, 16:10) A ...   Jan 11 2013, 11:27
|- - Banned   QUOTE (Rescator @ Jan 11 2013, 11:27) it ...   Jan 12 2013, 12:24
|- - Rescator   QUOTE (Banned @ Jan 12 2013, 12:24) QUOTE...   Jan 12 2013, 13:14
|- - Banned   QUOTE (Rescator @ Jan 12 2013, 13:14) Nic...   Jan 12 2013, 15:54
|- - Rescator   QUOTE (Banned @ Jan 12 2013, 15:54) Examp...   Jan 12 2013, 18:14
|- - Banned   QUOTE (Rescator @ Jan 12 2013, 18:14) QUO...   Jan 12 2013, 20:52
|- - Rescator   QUOTE (Banned @ Jan 12 2013, 20:52) QUOTE...   Jan 12 2013, 22:53
|- - 2Bdecided   QUOTE (Rescator @ Jan 12 2013, 21:53) To ...   Jan 14 2013, 12:47
- - bennetng   I've seen +4.8dB intersample peak in a song, b...   Jan 10 2013, 18:19
- - 2Bdecided   I don't see how on-sample values above 0dB FS ...   Jan 10 2013, 19:56
- - bennetng   I just generated another synthetic example wavefor...   Jan 10 2013, 20:26
|- - Rescator   QUOTE (bennetng @ Jan 10 2013, 20:26) I j...   Jan 12 2013, 13:22
|- - bennetng   QUOTE (Rescator @ Jan 12 2013, 20:22) QUO...   Jan 12 2013, 16:36
- - bandpass   $ sox InterSamplePeak.wav -n gain -11.9 stats...   Jan 11 2013, 13:13
- - bandpass   Here's how to do the EBU upsampling/filtering ...   Jan 12 2013, 23:17
|- - Rescator   QUOTE (bandpass @ Jan 12 2013, 23:17) Her...   Jan 12 2013, 23:22
- - Rescator   bandpass, 2bdecided, saratoga and John Siau will h...   Jan 14 2013, 00:51
|- - 2Bdecided   QUOTE (Rescator @ Jan 13 2013, 23:51) ban...   Jan 14 2013, 13:00
||- - Rescator   QUOTE (2Bdecided @ Jan 14 2013, 13:00) Ar...   Jan 14 2013, 16:49
||- - bug80   QUOTE (Rescator @ Jan 14 2013, 16:49) QUO...   Feb 4 2013, 12:45
|- - John_Siau   QUOTE (Rescator @ Jan 13 2013, 18:51) ban...   Jan 14 2013, 18:22
- - bandpass   Using LibreOffice (free and available on Windows):   Jan 14 2013, 17:06
- - 2Bdecided   Yep, that's exactly it. (I just used Excel). ...   Jan 14 2013, 17:20
|- - Rescator   (@bandpass Darn you, stop teaching me new tricks. ...   Jan 14 2013, 20:29
|- - bandpass   QUOTE (Rescator @ Jan 14 2013, 19:29) if ...   Jan 15 2013, 09:57
- - John_Siau   The "+11 dB" test signal (that started t...   Jan 14 2013, 18:40
|- - Rescator   QUOTE (John_Siau @ Jan 14 2013, 18:40) Th...   Jan 14 2013, 19:37
- - Wombat   After reading about that topic a bit i found that ...   Jan 14 2013, 22:31
|- - Alexey Lukin   QUOTE (Wombat @ Jan 14 2013, 17:31) After...   Feb 4 2013, 19:49
- - knutinh   Since inter-sample overshoot is a problem for the ...   Feb 4 2013, 09:20
|- - 2Bdecided   QUOTE (knutinh @ Feb 4 2013, 08:20) Since...   Feb 4 2013, 13:08
|- - knutinh   QUOTE (2Bdecided @ Feb 4 2013, 13:08) QUO...   Mar 4 2013, 13:58
|- - John_Siau   QUOTE (knutinh @ Mar 4 2013, 07:58) I vag...   Mar 4 2013, 17:51
|- - 2Bdecided   QUOTE (knutinh @ Mar 4 2013, 12:58) I vag...   Mar 4 2013, 18:21
- - John_Siau   QUOTE (2Bdecided @ Feb 4 2013, 07:08) QUO...   Feb 4 2013, 18:08


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: 30th August 2014 - 12:42