The regular mode is useful if you're going to be decoding and reencoding a lot because it's much faster
After the pure decoding speed obtained with foobar2000 dedicated tools, I made a real reencoding test to get the true impact of complexity on reencoding speed. For that purpose I used a 11xSACD boxset (Bruckner complete symphonies, 35 tracks, 9:54:19.160).
Sources formats were: uncompressed DFF/DSF — DST encoding — WavPack default — WavPack high (and for curiosity, I also add FLAC 88,2 KHz and FLAC 352 KHz).
Decoders were:
• WavPack: foobar2000 native decoder and foo_input_sacd
• DFF: foo_input_sacd and foo_input_DSDIFF
• DST: foo_input_sacd only (kode54's foo_input_DSDIFF also supports DST format but it's highly unoptimized: I reached ~1.0x…1.1x speed and therefore aborted the process)
Output format:
Everything was converted to AAC at ~160 Kbps using qaac (iTunes AAC encoder) -v82 [qaac 2.67, CoreAudioToolbox 7.10.9.0, AAC-LC Encoder, TVBR q82, Quality 96] which resulted to 156 Kbps, 48000 Hz AAC files. It's 36 time smaller than the original and it still sounds gorgeous!
total time: 9:54:19.160 (12 580 551 648 samples)
DST to AAC: Total encoding time: 46:06.031, 12.88x realtime 4'39"/Hour of music
DSF (foo_input_sacd) to AAC: Total encoding time: 12:56.516, 45.92x realtime 1'18"/H
DFF (foo_input_dsdiff) to AAC: Total encoding time: 10:38.125, 55.88x realtime 1'04"/H
WV -default (foo_input_sacd) to AAC: Total encoding time: 15:23.859, 38.59x realtime 1'33"/H
WV -default (foobar2000 native) to AAC: Total encoding time: 16:53.360, 35.18x realtime 1'42"/H
WV -high (foo_input_sacd) to AAC: Total encoding time: 25:36.625, 23.20x realtime 2'35"/H
WV -high (foobar2000 native) to AAC: Total encoding time: 26:48.954, 22.16x realtime 2'42"/H
FLAC 24/88 -8 to AAC: Total encoding time: 7:05.657, 83.77x realtime 0'43"/H
FLAC 24/352 -8 to AAC: Total encoding time: 15:44.172, 37.76x realtime 1'35"/H
DSF: 23.4 GB (25 161 255 266 bytes) 5645 Kbps 100%
DST: 8.36 GB (8 984 891 932 bytes) 2016 Kbps 35.7%
WV -high: 10.2 GB (11 011 315 269 bytes) 2470 Kbps 43.8%
WV -default: 12.2 GB (13 179 996 136 bytes) 2957 Kbps 52.4%
FLAC 24/88.2: 10.3 GB (11 063 193 787 bytes) 2482 Kbps 43.9%
FLAC 24/352: 58.9 GB (63 246 205 254 bytes) 14189 Kbps 251.4%
• On my computer, the difference between WavPack -default and WavPack -high is one minute of encoding time per hour of music. It's not dramatic but could be really boring for big playlist conversion.
• During this test, foo_input_sacd was slightly faster than foobar's native component. Eight threads were used. I don't understand why the result doesn't match the foo_benchmark results I get earlier.
• Kode54's component really makes a difference compared to foo_input_sacd: more than 20% on DFF uncompressed file. Reencoding time was 15 seconds less per hour of DSD64 music.
• PCM sourced encoding with FLAC at 88,2 KHz is ~twice faster than WavPack -default for reencoding purpose.
• PCM sourced encoding with FLAC at 352 KHz needs the same amount of CPU ressouces than WavPack -default for reencoding tasks. Why 352 KHz? Because WavPack 5 decodes internally DSD64 to PCM at 354 KHz if I'm not wrong. I wonder if WavPack's decoding and reencoding performances couldn't significantly increase if internal decoder could work at lower samplerate.
• DST really hurts reencoding speed: it's twice slower than WavPack -high and up to three time slower than WavPack -default.
• Uncompressed DFF is still faster on this test than WavPack (it wasn't necessary the case with foo_benchmark): up to 30 seconds per hour of reencoded music.