Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Converting 44.1 to 48 and back to 44 (Read 7466 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Converting 44.1 to 48 and back to 44

What do you people think:

Sample A (44.1kHz) converted to Sample B (48kHz) and then back to Sample C (44.1kHz).
Should good resampling algorithm/implementation introduces minimal differences between sample A and sample C? Can resampler that introduces less differences be considered as better? (Assume that we are using floating point, so no dithering.)

Converting 44.1 to 48 and back to 44

Reply #1
Can resampler that introduces less differences be considered as better? (Assume that we are using floating point, so no dithering.)

Of course. The most critical step is choosing the right interpolation and anti-alias filter since theoretical perfect sinc filter cannot be implemented.
Dithering or noise shaping is usually used on converting the output to the desired bit size instead of the simple rounding.
If age or weaknes doe prohibyte bloudletting you must use boxing

Converting 44.1 to 48 and back to 44

Reply #2
I'd say

"Good resampler" => "minimal differences"

But the revers is not true. You can clone some samples to go from 44.1 kHz to 48 kHz and remove them again to get to 44.1 kHz again. Your input and output is exactly the same. Does this mean the "resampler" was good? No.

So, your test can't be used to test a resampler's quality in general if that's what you were after ...

Cheers!
SG

Converting 44.1 to 48 and back to 44

Reply #3
You can clone some samples to go from 44.1 kHz to 48 kHz and remove them again to get to 44.1 kHz again.

In fact, that's the first step in upsampling. Adding appropriate number of zero samples between the two input samples.
I understood that the question is about the result of the actual, working resamplers, not the hypothetical conversion.
If age or weaknes doe prohibyte bloudletting you must use boxing

Converting 44.1 to 48 and back to 44

Reply #4
The question is about working resampler.
Here are some images to make the question clearer.

Original


First resampled to 44.1 kHz


Second resampling back to 48 kHz


Third resampling back to 44.1 kHz


Difference between original and resampled 48 kHz


Difference between original and resampled 44.1 kHz


These are the results with implementation of resampler written by me. I could not get similar results with Audobe Audition or ssrc. Is it possible to get similar results with these resamplers or some other?

Converting 44.1 to 48 and back to 44

Reply #5
What's the point of all this?

Converting 44.1 to 48 and back to 44

Reply #6
I could not get similar results with Audobe Audition or ssrc. Is it possible to get similar results with these resamplers or some other?

I'm not quite sure that I understand your question. What do you mean by similar results? Based on the spectrograms, I think that you have some issues with pre-filtering. In 48KHz file, you have the content well over 22KHz. So when you downsample to 44,1 the top of the spectrogram should be touching 22,05KHz. So it's possible that your lowpass isn't performing ok. When you upsample the resulting file to 48KHz again, it is perfectly normal that you have nothing above 22,05KHz (if everything is working ok). Resampler cannot "reconstruct" what is lost when you downsampled the original file. That's the reason why doing the type of operation you described is not a good thing. When upsampling, you loose nothing, but downsampling is usually the final thing you do with audio to adapt it for some kind of carrier.
Hope this clears the things a bit.
If age or weaknes doe prohibyte bloudletting you must use boxing

Converting 44.1 to 48 and back to 44

Reply #7
The point of this is that I am trying to find out if my resampler is working correctly or not.
What I mean by more similar results can be seen in the graphs that show differences when Adobe Audition is used for resampling (Highest quality with pre/post filtering, only left channel displayed):

Difference between original and resampled 48 kHz


Difference between original and resampled 44 kHz


Similar results are achieved with ssrc.
Also maximum peak, average RMS and maximum RMS of differences are much lower when my resampler is used (but that should be obvious from the graphs).
Would you conclude from these graphs that my implementation performs better? Or is there something on them pointing that I am doing something wrong?
Thanx for help.

Converting 44.1 to 48 and back to 44

Reply #8
IIRC the Cool Edit Pro (Adobe Audition) resamplers can (sometimes) introduce sub-sample delays, therefore an inverse mix paste isn't going to work because it's near impossible to time align the before and after versions.

This doesn't make the algorithm bad, or good. It just means your comparison method isn't valid here.

However, the results for your own resampler look good.


FWIW I'd check performance with a tone sweep and an impulse. Full amplitude, 6dB down and 80-90dB down tone sweeps can be revealing. 140dB range spectral views at a variety of window sizes are useful. Comparison of the impulse response with an ideal sync is useful too, if the conversion ratio allows it. This all assumes you're aiming for an ideal sync resampling. There are other approaches.

Cheers,
David.

Converting 44.1 to 48 and back to 44

Reply #9
IIRC the Cool Edit Pro (Adobe Audition) resamplers can (sometimes) introduce sub-sample delays, therefore an inverse mix paste isn't going to work because it's near impossible to time align the before and after versions.

This doesn't make the algorithm bad, or good. It just means your comparison method isn't valid here.

However, the results for your own resampler look good.

FWIW I'd check performance with a tone sweep and an impulse. Full amplitude, 6dB down and 80-90dB down tone sweeps can be revealing. 140dB range spectral views at a variety of window sizes are useful. Comparison of the impulse response with an ideal sync is useful too, if the conversion ratio allows it. This all assumes you're aiming for an ideal sync resampling. There are other approaches.


Thanks. You pretty much answered my question.
Yeap, you got it right I am aiming for ideal (or maybe better would be to say most accurate and with right compromise) sync resampling.

Converting 44.1 to 48 and back to 44

Reply #10
The point of this is that I am trying to find out if my resampler is working correctly or not.

Good. That's why I gave an exampe for a bad resampler that passes your test. 
Point being: This test doesn't give you the answer you're looking for because aliasing introduced during the first resampling stage could be cancelled again during the 2nd resampling stage even if the resampler was "bad".

I agree with 2Bdecided. Try a sine sweep to check your resampler's performance.
It's hard to check whether your resampler introduces much aliasing or not due to the highly tonal test signal (many harmonics) you used.

Cheers!
SG

 

Converting 44.1 to 48 and back to 44

Reply #11
In fact I did test impuls and sine sweet while I was implementing filter (Though not as throughly as 2Bdecided suggests).
I was just suprised that Auditions resampler has such big differences, but I suppose that 2Bdecided is right and that differences come from sub-sample delay.
Thanx for helping.