Winamp ASIO output module SRD upsampler for audio files Upsampler results

Resampling quality

In order to be able to meaningfully compare and assess the quality of different resamplers, I have considered the following procedure for determining the quality:

For creation, the audio files are stored and processed in the intermediate steps with the highest possible bit depth. The prepared "revert" is finally converted to the original bit depth. The question: does the resampler recalculate the original values from the time-shifted samples (with an accuracy corresponding to the original bit depth)?

Tracks in CD quality (16 bit/44.1kHz) were used for the test and extrapolated with different resamplers in the highest quality level. In this test, dithering must be deactivated both when converting the bit depth and when upsampling. The diffusion distribution always affects the recovery rate extremely negatively and falsifies the results.

The following resamplers were tested:

In the evaluation, the diagrams (from left to right)

  1. The percentage of sample values that correspond exactly to the original.
    Higher values are better.
  2. All absolute differences to the original values over the entire title are summed up.
    Lower values are better.
  3. The total difference from (2) in relation to the proportion of samples that were exactly matched. The way in which these deviations arose is included in the assessment.
    Lower values are better.
    The two extremes: The deviations can have arisen at a few points with great dynamics and high individual values, but also as a permanent disturbance over the entire title with smaller individual values.
    A ratio of 1.0 in this diagram means 50% with 1 bit delta; 25% with 2-bit delta,...,6.25% with 4-bit delta, etc.
    I consider values below 1.0 to be desirable here. Personally, I don't want resamplers that go far beyond that.
  4. The average and the maximum deviation are compared here.
    Lower values are better.

In my opinion, the two 3D bar charts for (1) and for (3) give a nice summary with a tangible and imaginable reference.


Software tool to make your own revert-test: matchsnd-windows-bin.zip
The Linux binary version is included in the SRD Linux bundle: SRD-2023z3-Linux-bin_incl-matchsnd.tar.gz


SRD on focus

The photo shows the SRD algorithm translated into GNU Octave. The details of the program sequences can be clearly illustrated there.

In the diagram, the original samples of a multiple superimposed sine curve can be seen first, as well as the additional samples that have not yet been calculated when the sample rate has been doubled. These still unknown samples are all on the zero line.

After interpolation, these fit precisely into the signal curve.

Looking at a single sample over time for target finding during interpolation (though from the screenshot curve - with different harmonics)

A section in 3D is shown for several samples simultaneously viewed from front to back over time. In addition, the uncalculated samples, which were initially zero, were cut off in the display in order to get a clearer view.