WavPack Lossless Audio Compression Format Adds Multi-Threaded Encode/Decode
The WavPack open-source lossless wavefile compressor is up to version 5.7 after more than one year in development. Making this new release quite notable is adding multi-threaded encode and decode support to the WavPack library and its CLI tools.
The headline feature of WavPack 5.7 is now supporting multi-threading within the WavPack library for both encode and decode. The release announement notes this can yield "6X or more" faster encode/decode for today's multi-threaded systems... Indeed the multi-threading has been working out well in some of my preliminary tests. Testing on the same WAV input file and comparing the encode performance, single-threaded encode was ~23 seconds and with multi-threaded encode down to ~3 seconds on an AMD Ryzen 9 7950X.
One caveat though is that the WavPack threading currently only scales up to 12 threads being supported. In any event these gains are a huge speed-up for any relatively recent multi-core systems. Great seeing more multi-threaded encode/decode happening in the audio space.
This WavPack multi-threading relies on pthreads for POSIX platforms and native threads under Windows. WavPack 5.7 also now uses MinGW builds for all their Windows binaries due to delivering better performance than the MSVC-based builds, surprisingly.
Downloads and more details on the WavPack 5.7 release via GitHub. I've also begun running various WavPack benchmarks with the multi-threading enabled across various CPUs.
The headline feature of WavPack 5.7 is now supporting multi-threading within the WavPack library for both encode and decode. The release announement notes this can yield "6X or more" faster encode/decode for today's multi-threaded systems... Indeed the multi-threading has been working out well in some of my preliminary tests. Testing on the same WAV input file and comparing the encode performance, single-threaded encode was ~23 seconds and with multi-threaded encode down to ~3 seconds on an AMD Ryzen 9 7950X.
One caveat though is that the WavPack threading currently only scales up to 12 threads being supported. In any event these gains are a huge speed-up for any relatively recent multi-core systems. Great seeing more multi-threaded encode/decode happening in the audio space.
This WavPack multi-threading relies on pthreads for POSIX platforms and native threads under Windows. WavPack 5.7 also now uses MinGW builds for all their Windows binaries due to delivering better performance than the MSVC-based builds, surprisingly.
Downloads and more details on the WavPack 5.7 release via GitHub. I've also begun running various WavPack benchmarks with the multi-threading enabled across various CPUs.
12 Comments