-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Testing quad precision in resampling DSD to PCM #27
Comments
Hi Klassikmann - I'm impressed that you tried the quad-precision version - you Mad lad !! Nevertheless, there might be some things that can be done to speed it up a bit. I haven't really tested DSD with quad-precision much - I didn't think there would be much interest in doing so, but you appear to have contradicted that little assumption :-) , so maybe there are some optimization opportunities lurking in the shadows. I'll have a look into it when I get a chance - absolutely flat-out atm. Can't promise anything, but who knows ? might be able to squeeze some more out of it - should be able to do better than 0.1x at any rate. Cheers |
Hi Judd, thank you for your immediate feedback. You're right, I'm testing quadruple-precision out of pure curiosity. Double-precision is more than enough for real life. The slowness of quad-precision seems to be appear in DSD->PCM conversion only. Here a test result resampling PCM 16/44.1 (46'44") to 24/48: Double-Precision (-r 48000 --doubleprecision -b 24 --mt --multistage): Quad-Precison (-r 48000 -b 24 --mt --multistage): Quad-precision seemed to be the fastest. Regards |
Ok - Thanks for that. There might be something going wrong with DSD conversion in Quad precision - I'll try to check it out on the Weekend |
TL;DR
The experimental quad precision version of ReSampler is incredibly slow in resampling DSD64 to 24bit/96kHz.
Background and History (2017-2019)
My MPD based audio player is digitally connected via TOSLINK (i.e. no DAC in the signal path) to active loudspeakers (Genelec 8351A) accepting PCM only, no DSD. The input stage of the Genelecs is separating (and resampling) the signal to 24bit/96kHz for the tweeter and to 24bit/48kHz for the midrange and woofer. To playback my DSD collection I resampled DSD64 to PCM applying the "natural" (?) 24/88.2 format. Therefore the Genelecs had to perform the complex 88.2->96 resampling in real-time but I could hear audible artifacts in some pieces of classical music. So I decided to resample my DSD collection to 24/96 using the DSD-enhanced SoX by Måns Rullgård and XiSRC by xivero (now out of business). Redbook compliant material (16/44.1) is resampled to (24/48).
Testing ReSampler
Starting end of last year I'm using ReSampler for the (16/44.1) -> (24/48) conversion.
I'm compiling ReSampler from source on Ubuntu 20.04 in two "flavors", as AVX+FMA and as the (experimental) quad precision. Test input is a DSF of nearly 20 minutes of classical music.
Test 1: Single precision (flags: -r 96000 -b 24 --mt --multistage)
2.0.9 64-bit version AVX build ...
using FMA (Fused Multiply-Add) instruction ...
Input file: 1.dsf
Output file: 1.flac
Changing output bit format to 24
Changing output file format to flac
source file channels: 2
input sample rate: 2822400
output sample rate: 96000
LPF transition frequency: 43636.36 Hz (90.91 %)
Conversion ratio: 0.034014 (5:147)
Writing Metadata
Converting (multi-stage, multi-threaded) ...
Writing to output file ...
Done
Peak output sample: 0.560189 (-5.033305 dBFS)
Time=154000 ms [7.7x]
Test 2: Double precision (flags: -r 96000 -b 24 --doubleprecision --mt --multistage)
2.0.9 64-bit version AVX build ...
using FMA (Fused Multiply-Add) instruction ...
Input file: 1.dsf
Output file: 1.flac
Changing output bit format to 24
Changing output file format to flac
Using double precision for calculations.
source file channels: 2
input sample rate: 2822400
output sample rate: 96000
LPF transition frequency: 43636.36 Hz (90.91 %)
Conversion ratio: 0.034014 (5:147)
Writing Metadata
Converting (multi-stage, multi-threaded) ...
Writing to output file ...
Done
Peak output sample: 0.560190 (-5.033286 dBFS)
Time=189979 ms [6.3x]
Test 3: Quad precision (flags: -r 96000 -b 24 --mt --multistage)
2.0.9 64-bit version
Input file: 1.dsf
Output file: 1.flac
Changing output bit format to 24
Changing output file format to flac
Using quadruple-precision for calculations.
source file channels: 2
input sample rate: 2822400
output sample rate: 96000
LPF transition frequency: 43636.36 Hz (90.91 %)
Conversion ratio: 0.034014 (5:147)
Writing Metadata
Converting (multi-stage, multi-threaded) ...
Writing to output file ...
Done
Peak output sample: 0.560191 (-5.033284 dBFS)
Time=8970719 ms [0.1x]
The text was updated successfully, but these errors were encountered: