TAK

From Hydrogenaudio Knowledgebase
Revision as of 15:47, 19 August 2014 by 89.69.171.35 (talk)

Description

Tom's lossless Audio Kompressor (TAK) is a lossless audio compressor which promises compression performance similar to Monkey's Audio “High” and decompression speed similar to FLAC.

Features

  • High compression
  • Fast compression and decompression speed
  • Streaming support (necessary headers for decompressing the audio are written to the stream every 2 seconds)
  • Piping support for encoding
  • Error tolerance (single bit error will never affect more than 250 ms)
  • Error detection (each frame protected by a 24-bit checksum (CRC))
  • High-resolution (up to 24-bit/channel) audio support
  • Support for up to 192 Khz Audio
  • Seeking without seek table
  • APEv2 tags supported at end of file

Pros

  • Fast encoding speed (while providing better compression TAK encodes as fast as FLAC -8 in TAK's “Insane” and several times faster in “Turbo” mode)
  • Fast decompression speed (on par with FLAC / WavPack)
  • Good compression levels (on par with Monkey's Audio High)
  • Error Robustness
  • Fast Seeking

Cons

  • Closed Source
  • No hardware support


Software support

Windows

  • TAK 2.3.0 - Official release which consists of a CLI, a GUI, a Winamp plugin, the SDK, and the decoding library.
  • TAK Decoder 0.4.7 - Plugin for foobar2000 (supports tagging and ReplayGain).
  • dsfTAKSource 0.0.1.6 - DirectShow source filter which uses the official decoding library to play TAK-files in Windows Media Player, Media Player Classic - Home Cinema, Zoom Player and alike.
  • DC-Bass Source Mod 1.5.2.0 - DirectShow source filter which uses the official decoding library to play TAK-files, amongst many others, in any DirectShow media player (as mentioned above).
  • LAV Filters - Set of open-source DirectShow filters which uses FFMpeg's reverse-engineered decoder to play TAK-files in any DirectShow media player.
  • Media Player Classic - BE - DirectShow media player with an internal TAK source filter which uses FFMpeg's reverse-engineered decoder to play TAK-files. The internal TAK source filter also supports embedded cue-sheets.
  • Mp3tag – universal tag editor with support for TAK
  • shntool (since version 3.0.6)

Linux

  • ffmpeg can demux, decode and parse TAK since commit d7a473926504e2acfa6ae3bead0938e1f4e03441:[1]. First official release that supports TAK decoding is 1.1.
  • The GUI program (Tak.exe) and the command-line program (Takc.exe) work with Wine.
  • caudec is a command-line tool that can encode and decode TAK files, using the official binary (Takc.exe) with Wine (see: installation instructions). Caudec can also test file integrity and compute (and tag) Replaygain data. While it hasn't been tested at the time of writing, it is possible that TAK support in caudec works on OS X as well.

Hardware support

  • None


Recommended Settings

  • Default compression: “-p2” (formerly Normal) is the most attractive setting, providing an excellent compromise between compression and encoding speed. (At compression levels close to Monkey's Audio High (<0.4% difference), it is able to encode more quickly.)
takc -e [input file]
  • Highest compression: “-pMax” (same as -p4m) (This will create files which are comparable in size to file created using Monkey's Audio High. Decompression speed is comparable to WavPack Normal.)
takc -e -pMax [input file]
  • Fastest compression: “-p0” (This will create files which are comparable in size to Monkey's Audio Fast or WavPack High. Decompression speed is comparable to FLAC 0.)
takc -e -p0 [input file]

TAK Performance Graph

Graph showing encoding and decoding rate against compression, using data from Synthetic Soul's test on TAK 1.0.4
(see External Links)


Using TAK

TAK with foobar2000

  • Copy the takc.exe to your foobar2000 directory
  • Go to File → Preferences → Tools → Converter
  • Set it up as shown:
Screenshot of foobar 0.9.5 Converter settings for TAK 1.0.3

Note: replace -p2 with the desired compression level.

  • TAK introduced encoding from STDIN in version 1.0.3, eliminating the need for a temporary file and greatly improving overall compression time. If you are using an earlier version of TAK use the following command line instead:
-e -p2 %s %d
  • Use APEv2 tagging (will be used as internal tagging)

TAK with EAC

Please read the wiki guide, which details how to create TAK files with EAC.

Converting TAK using pipe

Takc.exe -d input.tak - | lame.exe -V 6 - output.mp3
Takc.exe -d input.tak - | opusenc.exe --bitrate 64 - output.opus
Takc.exe -d input.tak - | flac.exe -8 - -o output.flac
Takc.exe -d input.tak - | wavpack.exe -hhx - output.wv
flac.exe -dc input.flac | Takc.exe -e -pMax - output.tak
wvunpack.exe input.wv - | Takc.exe -e -pMax - output.tak
ffmpeg.exe -i input.xxx -f wav - | Takc.exe -e -pMax -ihs - output.tak


Future Features

  • Unicode support
  • MD5 audio checksums for verification and identification
  • A German version
  • Embedded cue sheets
  • Embedded cover art
  • Multichannel audio


Frequently Asked Questions

Is the codec safe for use/definitely lossless?
Yes, TAK is verified as being lossless, as determined through rigorous testing by the author and satisfied users. To check, convert a WAV to TAK and back and compare the two, for instance using foobar2000's Binary Comparator.
Why should I use TAK?
TAK offers high ratios of compression but also great decoding speeds.
What can I compress with TAK?
TAK 1.0 can compress any integer-format (up to 24 bits per channel) PCM RIFF WAVE file (.WAV). Piping support is implemented as of v1.0.3, so converting lossless files to WAV first is not necessary: users can simply pipe the decompressed output from their decoder of choice directly into TAK's encoder.
What about hardware support?
There is none at the moment. However, -p0, -p1 and -p2 are the candidates for most suitable settings for hardware.
Will the source be opened?
The official encoder and decoder are currently closed-source. Thomas has expressed an intention to open the source of the decoder at some point in time, stipulating preconditions of its first being further refined, ported to C or C++, and documented. This may or may not lead to releases of other code. However, as of June of 2013, he feels that “a lot of (not very exciting) work is required” until the decoding source would be ready to be published, and that may or may not happen in the foreseeable future. Such questions generally generate more noise than fruitful discussion, so it is best to wait and see what happens. In any case, there is an independently implemented open source decoder available, bundled with ffmpeg.


External Links