TAK - Tom's lossless Audio Kompressor

TAK - Tom's lossless Audio Kompressor 2.3.1

Нет прав для скачивания
This release brings significant speed optimizations for the encoder and a lot of source code cleanups in preparation of a migration from Delphi to Lazarus and/or C. Practical goals are Linux binaries and open source releases. This will be done step by step depending on my spare time. The cleanup revealed several bugs which affected the compression efficiency, but never the data integrity.

Improvements:
  • Encoding speed improvements of up to 43 percent in my tests. The slower presets benefit most. Between 6 and 28 percent for an i5-4460 (Haswell), between 9 and 43 percent for an i3-8100 (Coffee Lake).
  • Decoding speed improvements of up to 10 percent in my tests. The slower presets benefit most. Between 2 and 7 percent for an i5-4460 (Haswell), between -1 and 10 percent for an i3-8100 (Coffee Lake).
  • Really tiny compression improvements because of some bug fixes. See below.
  • Better source code and smaller binaries.

New features:
  • The multi-threaded encoder now supports up to 8 instead of 4 threads.
  • The cpu optimization option None now really disables any assembler optimizations. Previous versions still used some i386-assembly that could only be disabled by compiler switches. The new option ASM enables this code and is equivalent to None of earlier versions.

Fixes:
  • Small bugs in the encoder decreased compression by usually not more than 0.01 percent. One of my file sets lost 0.06 percent. Some special files will show stronger effects.
  • A bug in the plain pascal code path significantly decreased compression of some presets: up to 1.19 percent for my primary file set. To encounter this bug, you had to use V2.2.0 or 2.3.0 and explicitly disable assembler optimizations (-cpuNone) or run Tak on a cpu without even the MMX-instruction set (e.g. Pentium 1).
  • Added new tests to my already extensive validation procedure to detect regressions of the plain pascal code path. Til now i only checked the data integrity.
  • None of these bugs affected the data integrity.

Cleanup:
  • Removed the assembler optimizations from the TAK 1.x decoder and made it a lot more compact.
  • Replaced MMX with SSE2 assembly.
  • Replaced FPU with SSE2 assembly.
  • Removed assembler optimizations which had little effect on the speed.
  • Removed any inline assembly code.
  • Removed a lot of partial redundancies which had been introduced to gain some speed.

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.
What's new

This release - i like to call it the back-to-work release - brings significant speed optimizations for the encoder and a lot of source code cleanups in preparation of a migration from Delphi to Lazarus and/or C. Practical goals are Linux binaries and open source releases. This will be done step by step depending on my spare time. The cleanup revealed several bugs which affected the compression efficiency, but never the data integrity.

Improvements:

- Encoding speed improvements between 6 and 28 percent for my primary file set. The slower presets benefit most. System: i5-4460 (Haswell)
- Decoding speed improvements between 2 and 7 percent for my primary file set. The slower presets benefit most. System: i5-4460 (Haswell)
- Really tiny compression improvements because of some bug fixes. See below.
- Better source code and smaller binaries.

New features:

- The multi-threaded encoder now supports up to 8 instead of 4 threads.
- The cpu optimization option None now really disables any assembler optimizations. Previous versions still used some i386-assembly that could only be disabled by compiler switches. The new option ASM enables this code and is equivalent to None of earlier versions.

Fixes:

- Small bugs in the encoder decreased compression by usually not more than 0.01 percent. One of my file sets lost 0.06 percent. Some special files will show stronger effects.
- A bug in the plain pascal code path significantly decreased compression of some presets: up to 1.19 percent for my primary file set. To encounter this bug, you had to use V2.2.0 or 2.3.0 and explicitly disable assembler optimizations (-cpuNone) or run Tak on a cpu without even the MMX-instruction set (e.g. Pentium 1).
- Added new tests to my already extensive validation procedure to detect regressions of the plain pascal code path. Til now i only checked the data integrity.
- None of these bugs affected the data integrity.

Cleanup:

- Removed the assembler optimizations from the TAK 1.x decoder and made it a lot more compact.
- Replaced MMX with SSE2 assembly.
- Replaced FPU with SSE2 assembly.
- Removed assembler optimizations which had little effect on the speed.
- Removed a lot of partial redundancies which had been introduced to gain some speed.

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.
Сверху