TAK

steht f�r (T)om's verlustfreier (A)udio(k)ompressor. Nebenbei ist es eine Reminiszenz an eine (nicht sehr menschenfreundliche) Figur aus Stephen King's "Regulators". Fr�he halb�ffentliche Evaluationsversionen firmierten unter dem Arbeitstitel YALAC.

Merkmale

Links zu TAK

Download

Das folgende ZIP-Archiv enth�lt die aktuelle Version TAK 2.3.3 incl. Zubeh�r (Winamp plugin, SDK usw.):

TAK_2.3.3 Final Gr��e: 1.77 MB

Applikationen mit TAK-Unterst�tzung

caudec - Multiprozess Transcoder
dsfTAKSource - TAK DirectShow Source Filter
Plugin f�r die Wiedergabe in jedem Media Player, der DirectShow unterst�tzt (z.B. Windows Media Player, MediaPlayerClassic, �).
Exact Audio Copy (EAC) - Audio grabber
Kann die Audiodaten im TAK-Format speichern. Die folgenden Anleitungen zeigen, wie es geht: EAC and TAK auf Hydrogenaudio.org und EAC+TAK encoder+foobar2000 auf hqshare.net.
Foobar2000 - Audioplayer
Enkodierung, Dekodierung, Tagging und Wiedergabe. Die folgenden Anleitungen zeigen, wie es geht: TAK Wiki auf hydrogenaudio.org sowie EAC+TAK encoder+foobar2000 auf hqshare.net. Das ben�tigte Wiedergabeplugin gibt es hier: TAK Decoder 0.4.7
GermaniX Transcoder - Transcoder
ImgBurn - Images brennen
Mp3tag - Tag Editor
Quintessential Player - Media Player
Wiedergabe von TAK-Dateien. Das ben�tigte Plugin gibt es hier.
shntool - Verarbeitung und Analyse von (komprimierten) WAVE-Audiodateien
Winamp - Media Player
Wiedergabe von TAK-Dateien. Ben�tigt mein Winamp-Plugin (s. Download).
XMPlay - Audio Player
Wiedergabe von TAK-Dateien. Ben�tigt mein Winamp-Plugin (s. Download).
xrecode II - Transcoder

Informationen und Support

Ich bin regelm��ig im Forum "Lossless / Other Codecs" auf Hydrogenaudio aktiv. Dies ist derzeit der beste Ort um Unterst�tzung zu bekommen, Verbesserungsvorsch�ge zu machen oder Fehler zu berichten.

Vergleichstests

ktf's Vergleichstest. Nach meiner Ansicht aktuell der aussagekr�ftigste Test.
"Comparisons" auf der offiziellen FLAC-Homepage. Zitiert ktf's Test (s.o.).
Squeeze Chart - Audio

Audiokompression

Audiokompressoren (nicht zu verwechseln mit Dynamikkompressoren!) werden eingesetzt, um den Platzbedarf von Audiodateien (z.B. Musik) zu reduzieren. Durch den Vorgang der Kompression bzw. Kodierung wird eine m�glichst kompakte Repr�sentation der Daten erzeugt und in eine Datei geschrieben. Das Gegenst�ck stellt die Dekomprimierung bzw. Dekodierung dar, die die komprimierten Daten wieder in eine Form zur�ckverwandelt, die zur Wiedergabe oder Weiterverarbeitung in Audiosoftware geeignet ist.

Verlustfrei vs. verlustbehaftet

TAK geh�rt zur Famile der verlustfreien Audiokompressoren wie auch z.B. Flac, WavPack, Monkey's Audio usw. Im Gegensatz zu verlustbehafteten Audiokompressionsverfahren wie z.B. MP3 erlauben sie eine originalgetreue Wiederherstellung der Originaldatei aus den komprimierten Daten. Dabei entstehen keinerlei Verluste; das Ergebnis stellt eine bitgenaue Kopie des Originals dar. Verlustfreie Audiokompressoren verhalten sich also �hnlich wie die bekannten ZIP-Pack-Programme, die ja in der Lage sind, ihnen anvertraute Daten wie z.B. Texte unverf�lscht zu reproduzieren.

Verlustbehaftete Audiokompressoren dagegen entfernen unwiederbringlich Bestandteile des ursp�nglichen Audiosignals, die von Menschen mit normalem H�rverm�gen �blicherweise nicht wahrgenommen werden. Das Originalsignal kann also nicht wiederhergestellt werden.

Daf�r erzielen verlustbehaftete Audiokompressoren deutlich h�here Kompressionsraten, erzeugen also deutlich kleinere Dateien als verlustfreie Kompressoren. Eine MP3-Datei, die mit der g�ngigen konstanten Bitrate von 128 KBit komprimiert wurde, ist um etwa den Faktor 11 kleiner als die Originaldatei im CD-Audio Format. Verlustfreie Kompressoren erzielen dagegen im Schnitt nur eine Reduktion um den Faktor 2. (Tats�chlich schwankt der Kompressionsfaktor in Abh�ngigkeit vom Audiomaterial: So lassen sich z.B. leisere Audiosignale leichter komprimieren als laute).

Anwendungsgebiete verlustfreier Audiokompression

W�hrend der Umgang mit verlustbehafteten Audiokompressionsverfahren wie MP3 heutzutage f�r die meisten Musikliebhaber und Computernutzer allt�glich ist, fristen verlustfreie Verfahren bislang eher ein Nischendasein. Nichtdestotrotz sind sie den verlustbehafteten Verfahren in vielen F�llen �berlegen oder k�nnen sie hervorragend erg�nzen, z.B.:

Musikproduktion

Bei der Musikproduktion durchl�uft das Originalsignal meist eine Vielzahl von Bearbeitungsschritten. Sollen Zwischenergebnisse zun�chst gespeichert und sp�ter weiterverarbeitet werden, sind Verluste g�nzlich inakzeptabel, da die Verluste aller Speichervorg�nge kumulieren und schnell zu h�rbaren Verf�lschungen f�hren. Ferner werden Signalver�nderungen der verlustbehafteten Kompression, die normalerweise nicht h�rbar sind, durch die �blichen Klangmanipulationen der Produktion schnell �ber die Wahrnehmungsgrenze gehoben.

Archivierung

Bei der Archivierung privater Musikbest�nde mag eine verlustbehaftete Kompression in einem Format, das f�r den Anwender keine h�rbaren Artefakte erzeugt, zun�chst ausreichend erscheinen. Soll aber sp�ter ein Wechsel zu einem anderen verlustbehafteten Format durchgef�hrt werden (z.B. um Kompatibilit�t zu neueren Wiedergabeger�ten herzustellen), besteht die Gefahr, da� die Kumulation der Signalverf�lschungen des urspr�nglichen sowie des neuen Kompressionsverfahrens eben doch zu h�rbaren Artefakten f�hrt.

Garantierte Klangqualit�t

Trotz aller beeindruckenden Fortschritte der verlustbehafteten Kompressionsverfahren lassen sich fast immer Musikst�cke finden, die zu h�rbaren Artefakten f�hren. Derzeit k�nnen nur verlustfreie Verfahren eine unverf�lschte Klangqualit�t garantieren.

Funktionsprinzip

Pr�diktion

Um eine kompaktere Repr�sentation -also Kompression- der Daten zu erreichen, suchen alle verlustfreien Audiokompressoren nach Regelm��igkeiten im Audiosignal. So besteht zumeist eine starke Abh�ngigkeit zwischen aufeinanderfolgenden Signalwerten, so da� nachfolgende Werte aus den vorangegangenen vorhergesagt werden k�nnen. Dazu m�ssen einige geeignete Parameter berechnet werden, die die Art der Abh�ngigkeit m�glichst gut beschreiben. Diese k�nnen dann zur Vorhersage bzw. Pr�diktion eingesetzt werden. Anstelle der Originaldaten speichert der Kodierer dann die Differenzen zwischen der Vorhersage und dem Originalsignal, also den Pr�diktionsfehler. Da die Differenzen bei einer guten Pr�diktion viel kleiner sind als die Originalwerte und da kleinere Werte weniger Speicherplatz ben�tigen, erzielt man eine Kompression.

Im Dekodierer wird dieselbe Pr�diktion vorgenommen, wobei der vom Kodierer gespeicherte Pr�diktionsfehler zu den vorhergesagten Werten addiert wird, um die Originalwerte zur�ckzuerhalten.

Die Berechnung der otpimalen Parameter f�r die Pr�diktion ist der zeitaufwendigste Vorgang der Kompression.

Adaption

Pr�diktionsparameter m�ssen zu dem Signal passen, f�r dessen Vorhersage sie eingesetzt werden sollen. Ver�ndern sich entscheidende Aspekte des Audiosignals, mu� eine Neuberechnung bzw. Adaption der Pr�diktionsparameter durchgef�hrt werden.

Asymmetrische vs. symmetrische Kompressoren

TAK basiert im wesentlichen auf adaptiver linearer Vorw�rts-Pr�diktion. Dieselbe Technik wird z.B. von FLAC, LPAC, Mpeg4Als (in der Standardeinstellung) und Shorten verwendet.

Alle genannten Programme geh�ren zur Klasse der asymmetrischen Audiokompressoren. Die Asymmetrie bezieht sich auf den unterschiedlichen Rechenaufwand f�r den Vorgang der Kodierung und Dekodierung.

Alle f�r die Kompression relevanten Parameter (vor allem die der Pr�diktion) werden einmalig w�hrend der Kodierung berechnet und in der komprimierten Datei gespeichert. Der Dekodierer liest diese Parameter einfach aus der Datei, braucht die entsprechenden Berechnungen also nicht zu wiederholen und kann so sehr hohe Geschwindigkeiten erzielen. Ferner ist es m�glich, den Rechenaufwand im Kodierer zu erh�hen, um bessere Parameter f�r eine st�rkere Kompression zu erhalten, ohne da� dies den Rechenaufwand im Dekodierer signifikant steigern w�rde. In der Folge sinkt die Verarbeitungsgeschwindigkeit des Kodierers, w�hrend die des Dekodierers konstant (hoch) bleibt.

Bei symmetrischen Verfahren (eingesetzt z.B. in WavPack, Monkey's Audio, OptimFrog, LA) dagegen werden die Berechnungen der Kompressionsparameter sowohl im Kodierer als auch im Dekodierer durchgef�hrt, soda� auf beiden Seiten ungef�hr derselbe Rechenaufwand entsteht. Wird der Rechenaufwand im Enkodierer erh�ht, um die Kompressionsleistung zu verbessern, steigt der Rechenaufwand im Dekodierer gleicherma�en.

Aber symmetrische Verfahren bieten auch Vorteile. Sie verwenden in der Regel die sogenannte R�ckw�rtspr�diktion, die die Kompressionsparameter kontinuierlich aufgrund des vorangegangenen Signals berechnet. Da dies gleicherma�en im Kodierer wie im Dekodierer geschieht, brauchen die Kompressionsparameter nicht gespeichert werden, was Platz spart und die Kompressionsrate erh�ht. Und da die Parameter nicht gespeichert werden m�ssen, k�nnen sie beliebig oft bzw. schnell an Ver�nderungen des Audiosignal angepa�t werden, was die Kompressionsrate weiter erh�ht. Symmetrische Verfahren mit Vorw�rts-Pr�diktion dagegen k�nnen diese Adaption nur in gr��eren Intervallen vornehmen, da andernfalls der Speicherbedarf f�r die h�ufiger aktualisierten Kompressionsparameter den Gewinn der schnellen Anpassung �bersteigen w�rde.

Anmerkung: Auf die M�glichkeit, beide Verfahren zu kombinieren, soll an dieser Stelle nicht eingegangen werden.

Leistungsvergleich der Verfahren

Vergleichstests der Leistung aktuell g�ngiger verlustfreier Kompressionsprogramme best�tigen im gro�en und ganzen die Vorhersagen, die sich aus den unterschiedlichen Funktionsprinzipien ergeben: Asymmetrische Verfahren dekodieren deutlich schneller, w�hrend symmetrische Verfahren die h�chsten Kompressionsraten erzielen k�nnen, wenn auch auf Kosten der Dekodiergeschwindigkeit.

TAK's Technologie

Kompressor

Bei der Entwicklung von TAK standen diese Anforderungen in Vordergrund:

Das gesamte Design wurde auf hohe Geschwindigkeit ausgerichtet und unterscheidet sich in einigen Punkten deutlich von dem anderer asymmetrischer Kompressoren.

Einige Merkmale:

Containerformat

Die vom Enkodierer erzeugten komprimierten Frames werden in ein eigenes, propriet�res Containerformat verpackt, das folgende Merkmale aufweist:

Zukunft

Meine To-Do-Liste

geplanter Erweiterungen:

Die Position in der Liste wird durch wenistens zwei Faktoren bestimmt: die Priorit�t, die eine Erweiterung f�r mich (und die Anwender) hat, sowie durch den erforderlichen Aufwand. So messe ich der Unterst�tzung f�r andere Plattformen eigentlich eine recht hohe Bedeutung zu, habe sie aber aufgrund des betr�chtlichen Aufwandes zun�chst zur�ckgestellt.

Entwicklungsgeschichte

Meine ersten Gehversuche im Bereich (verlustbehafteter) Audiokompression erfolgten bereits 1994. Ich erfoschte eine Reihe eher simpler Verfahren, die zun�chst mehr oder weniger auf ADPCM (Adaptive Delta Pulse Code Modulation) basierten und von mir zur Kompression von Sprachaufnahmen eingesetzt wurden.

Etwa 1996 wandte ich mich der verlustfreien Audiokompression mittels linearer Pr�diktion zu. Da ich kaum Ahnung von den Standardverfahren der digitalen Signalverarbeitung hatte, nutzte ich zun�chst eine (laaangsame) multiple Regression zur Bestimmung der P�diktionskoeffizienten.

1997 brachte mir einen Internetzugang und es dauerte nicht lange, bis ich auf den Audiokompressor Shorten stie�. Auch wenn Shorten aus heutiger Sicht nicht mehr konkurrenzf�hig ist, sollte seine Bedeutung f�r die Entwicklung der Audiokompression keinesfalls untersch�tzt werden. Zum einen war es der erste Quasi-Standard f�r den Austauch verlustfrei komprimierter Audiodateien via Internet, zum anderen haben sein Quellcode und die ausf�hrliche Dokumentation der eingesetzten Verfahren sicher vielen Entwicklern anderer Kompressoren als Einstig und Anregung gedient. Mir jedenfalls zeigte es ein schnelleres Verfahren zur Berechnung der Pr�diktionskoeffizienten, n�mlich den Levinson-Durbin-Algorithmus.

Mein anf�ngliche Euphorie dar�ber, wie leicht es mir fiel, mittels meiner Verfahren deutlich bessere Kompressionsergebnisse als Shorten zu erzielen, war dahin, als ich auf Monkey's Audio stie�. Es war meinem damaligen Entwicklungsstand in jeder Hinsicht �berlegen: Es komprimierte nicht nur besser sondern dazu auch noch mit h�herer Geschwindigkeit! In den Folgejahren konzentrierte sich meine Entwicklungsarbeit darauf, diesen Vorsprung aufzuholen.

Ende M�rz 2006 war -salopp gesagt- "die Luft raus". Ich hatte meine Ziele erreicht und sah keine M�glichkeit mehr, aus meinem Design deutliche Verbesserungen herauszuarbeiten. Da ich mir nicht sicher war, was ich nun sinnvolles mit dem Ergebnis meiner Arbeit anstellen sollte, fragte ich meine potentielle Zielgruppe im renomierten Audioforum hydrogenaudio.org: Yet another lossless audio compressor: Braucht die Welt ein weiteres verlustfreies Audiokompressionsverfahren?

Dieser Post brachte einiges an Dynamik in die weitere Entwicklungsgeschichte. Zun�chst versorgte mich die �berwiegend positive Resonanz auf die von mir ver�ffentlichten Daten zur Kompressionsleistung mit neuer Motivation. Weiterer Antrieb erwuchs aus meinem ausgesprochen schlechten Timing: Wer als Neuling ausgerechnet am 1. April �berraschend gute Ergebnisse seines unver�ffentlichten Programmes postet, darf sich nicht beklagen, wenn ihm die H�lfte der Leser nicht glaubt...

Da ich mich nun in Beweisnot sah, entwickelte ich innerhalb weniger Tage einen funktionsf�higen Prototypen (YALAC V0.01) und schickte ihn an einen kleinen Kreis interessierter Tester aus den Reihen der Forumsmitglieder.

Versehen mit neuer Motivation und mit teilweise unglaublich umfangreicher Unterst�tzung der Tester verbrachte ich die folgenden Monate mit Verbesserungen der Kompressionsleistung und vor allem der Geschwindigkeit (es war doch noch einiges rauszukitzeln...). Die Optimierungen wurden bis zur Version V0.10 fortgesetzt. Danach begann die Arbeit am Streaming-Support, der Finalisierung des Dateiformates sowie an der Verbesserung der Anwenderfreundlichkeit.

Die erste finale Version 1.0 wurde am 26.1.07 ver�ffentlicht.

Links zu anderen Audiokompressoren

FLAC
La
Lpac
Monkey's Audio
Mpeg4Als
OptimFrog
Shorten
WavPack