Beta release 3 of TAK 2.1.0 ((T)om's lossless (A)udio (K)ompressor)
It consists of:
- TAK Applications 2.1.0 Beta 3 b
- TAK Winamp plugin 2.1.0 Beta 3
- TAK Decoding library 2.1.0 Beta 3
The final release will additionally contain the SDK.
Download:
Download link removed.
The final version has been released: TAK 2.1.0
What's new in Beta 3 b
This release brings only some minor fixes and modifications.
Bug fixes:
- Some part of the encoder comes in to versions: One for Single core, one for Multi core encoding. If you specify -tn1 on the command line, the single core version is beeing used, otherwises the multi core version. But if you didn't specify -tn# at all, the previos version of Takc was using the multi core version with only one thread. On systems with more than 1 core this setting will often be faster than the true single core version. Therefore speed comparisons of 'takc -tn1' vs. 'takc -tn2 (or more)' were valid, but 'takc' vs. 'takc -tn2 (or more)' were not. On my system the difference is about 3 percent. This is also relevant for comparisons of V2.0 and V2.1 Beta 3. If you have more than one core and didn't specify -tn1, the speed advantage of for instance the new SSSE3 optimizations has been overestimated.
Modifications:
- Added the -cpu# switch to the command line version, which lets you control some cpu optimizations.
- Some additions to the application's ReadMe.
What's new in Beta 3
This release brings speed optimizations (new in Beta 2) and multi core support (new in Beta 3) for the encoder and adds a new user selectable codec, which significantly improves the compression efficiency of LossyWav-processed files. Files compressed with this codec can not be decoded by earlier versions of Tak, Takc, in_tak and tak_deco_lib! The default codec remains unchanged und is therefore backwards compatible to TAK V2.0.0.
Improvements:
- Encoding speed improvements of about 10 to 20 percent (depends on preset and cpu) for cpus with the SSSE3 instruction set. Since SSSE3 (note the three 'S') isn't supported by AMD, only intel users will benefit from those optimizations.
- The encoder now creates up to four threads to utilize multiple cpu cores. Specify the thread number in the General Options dialog of the GUI-version or with the -tn option of the command line version. By default only one thread is created. You will only notice a speed up, if the encoding speed isn't already limited by the performance of your drives.
- New additional codec that improves the compression efficiency of LossyWav-processed files by up to about 2 percent (relative to the original file size) for the quality setting -q5.0 (less or more for other settings). It supports any block size that is an integer multiple of 256 samples. Please don't specify the -fsl512 option at the command line. While this was required for the standard codec, it will severily hurt the performance of the new dedicated LossyWav-codec. Another advantage of the new codec: You will not loose much compression if LossyWav deceides to remove no bits, as can happen with for instance some low amplitude files with little signal complexity. Simply specify -cLW at the command line to activate the new codec. Earlier it wasn't advantegous to use presets higher than -p2m when encoding LossyWav-Files. That's no longer true, you may even benefit from -p4m.
Modifications:
- The file info function now also shows the name of the codec used to compress the file. The new codec is called "3 LossyWav (TAK 2.1)".
- Moved the verify-option from the details-dialog to the general compression options dialog.
- All dialogs with an Add-files-option locked the source folder until the dialog was closed. Hopefully this is no longer the case (new in Beta 3).
Known issues:
- If you use pipe decoding and the application reading the pipe is beeing terminated before the whole file has been read, TAKC may get into an endless loop and has to be manually killed with the task manager. I don't think this is a big issue but i will try to fix it in one of the next versions. BTW: Big thanks to shnutils for testing the pipe decoding!
- There seem to be some compatibility issues with pipe decoding to some other applications ("crc1632.exe" has been reported). I will try to fix it in the next release.
Results
Below i will present some test results illustrating the compression efficiency and speed improvements of V2.1.
All test have been conducted with a Pentium Dual Core E5200, 2.5 GHz, 45 nm. Disk IO was disabled respectively minimized by a cache. Speed values are beeing expressed as multiple of real time, compression values as the proportion compressed / uncompressed file size. The test corpus consisted of 46 files.
Speed results for the encoder optimizations (SSSE3)
V 2.0 V 2.1 Improvement
-p0 360,19 388,27 7,80%
-p1 276,29 319,08 15,49%
-p2 192,64 229,08 18,92%
-p3 90,60 107,72 18,90%
-p4 50,30 57,32 13,96%
-p4m 22,28 25,58 14,81%
You can find some user reports in the Beta 2 thread.
Speed results for the multi core encoder
1 Thread 2 Threads Improvement
-p0 388,27 736,27 89,63%
-p1 319,08 613,12 92,15%
-p2 229,08 445,95 94,67%
-p3 107,72 212,32 97,10%
-p4 57,32 113,73 98,41%
-p4m 25,58 50,43 97,15%
Results for the LossyWav-codec
First a comparison of different codecs and LossyWav quality settings.
Compression efficiency for various LossyWav quality settings
FLAC 1.2.1 TAK 2.0 TAK 2.1 Advantage over
-8 -p2m -p4m FLAC TAK 2.0
-q0.0 20,61 19,07 17,25 3,36 1,82
-q2.5 27,43 25,95 23,93 3,50 2,02
-q5.0 33,26 31,78 29,62 3,64 2,16
-q7.5 38,79 37,28 35,03 3,76 2,25
Sometimes LossyWav deceides not to remove any or only very few bits from a file. Then it can happen, that the LossyWav-Mode of the codec is less efficient then the standard mode. To test this i used a worst case scenario.
I compressed my test corpus with TAK's standard (-cStd) and LossyWav (-cLW) codec, but without prior processing with LossyWav.
Compression efficiency for unprocessed files
TAK 2.1 TAK 2.1
-cStd -cLW Loss
-p0 58,74 58,99 -0,25
-p1 57,84 57,73 0,11
-p2 56,90 57,00 -0,10
-p3 56,36 56,44 -0,08
-p4 56,02 56,06 -0,04
-p4m 55,88 55,97 -0,09
Since the presets of the 2 codecs are constructed slightly different, they are not directly comparable. But i think it is safe to say, that the average loss is usually not bigger than about 0.1 percent.
Encoding and decoding speed are close to the standard codec, therefore i conducted no tests.
Beta testing
The beta version has already gone through extensive testing performed by my automatic scripts. But i had no oppurtunity to test encoding with more than 2 cores. Bugs are possible! If you want to help, please make sure to first compress, then decompress and finally compare the decompressed files with the original files. It may not be sufficient to use -v (Verify) and -md5 (MD5-creation and validation) to reveal multi core encoder errrors!
Please try the beta release and report any bugs in this thread.
I would also be happy about tests of compression efficiency and speed.
This will be the last beta release unless bug fixes are necessary.
Thanks for testing and have fun
Thomas