Pathological example of a intersample peak, 11dB, discussion. |
Pathological example of a intersample peak, 11dB, discussion. |
Jan 10 2013, 04:36
Post
#1
|
|
![]() Group: Members Posts: 31 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
|
|
|
|
![]() |
Jan 10 2013, 16:10
Post
#2
|
|
|
Group: Members Posts: 82 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. |
|
|
|
Jan 11 2013, 11:27
Post
#3
|
|
![]() Group: Members Posts: 31 Joined: 13-January 09 From: Trondheim Member No.: 65515 |
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
|
|
|
|
Jan 12 2013, 12:24
Post
#4
|
|
|
Group: Members Posts: 10 Joined: 12-January 13 Member No.: 105821 |
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 |
|
|
|
Jan 12 2013, 13:14
Post
#5
|
|
![]() Group: Members Posts: 31 Joined: 13-January 09 From: Trondheim Member No.: 65515 |
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
|
|
|
|
Jan 12 2013, 15:54
Post
#6
|
|
|
Group: Members Posts: 10 Joined: 12-January 13 Member No.: 105821 |
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. 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. |
|
|
|
Jan 12 2013, 18:14
Post
#7
|
|
![]() Group: Members Posts: 31 Joined: 13-January 09 From: Trondheim Member No.: 65515 |
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
|
|
|
|
Jan 12 2013, 20:52
Post
#8
|
|
|
Group: Members Posts: 10 Joined: 12-January 13 Member No.: 105821 |
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 |
|
|
|
Jan 12 2013, 22:53
Post
#9
|
|
![]() Group: Members Posts: 31 Joined: 13-January 09 From: Trondheim Member No.: 65515 |
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.- 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. 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
|
|
|
|
Jan 14 2013, 12:47
Post
#10
|
|
![]() ReplayGain developer Group: Developer Posts: 4588 Joined: 5-November 01 From: Yorkshire, UK Member No.: 409 |
To see what I mean look at this: 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.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. "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. |
|
|
|
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
saratoga QUOTE (John_Siau @ Jan 10 2013, 10:10) I ... Jan 10 2013, 17:07
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![]() ![]() |
|
Lo-Fi Version | Time is now: 23rd May 2013 - 19:10 |