Thomas Becker Softwareentwicklung
steht fr (T)om's verlustfreier (A)udio(k)ompressor. Nebenbei ist es eine Reminiszenz an eine (nicht sehr menschenfreundliche) Figur aus Stephen King's "Regulators". Frhe halbffentliche Evaluationsversionen firmierten unter dem Arbeitstitel YALAC.
Das folgende ZIP-Archiv enthlt die aktuelle Version TAK 2.3.3 incl. Zubehr (Winamp plugin, SDK usw.):
Ich bin regelmig im Forum "Lossless / Other Codecs" auf Hydrogenaudio aktiv. Dies ist derzeit der beste Ort um Untersttzung zu bekommen, Verbesserungsvorschge zu machen oder Fehler zu berichten.
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 mglichst kompakte Reprsentation der Daten erzeugt und in eine Datei geschrieben. Das Gegenstck stellt die Dekomprimierung bzw. Dekodierung dar, die die komprimierten Daten wieder in eine Form zurckverwandelt, die zur Wiedergabe oder Weiterverarbeitung in Audiosoftware geeignet ist.
TAK gehrt 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 unverflscht zu reproduzieren.
Verlustbehaftete Audiokompressoren dagegen entfernen unwiederbringlich Bestandteile des urspnglichen Audiosignals, die von Menschen mit normalem Hrvermgen blicherweise nicht wahrgenommen werden. Das Originalsignal kann also nicht wiederhergestellt werden.
Dafr erzielen verlustbehaftete Audiokompressoren deutlich hhere Kompressionsraten, erzeugen also deutlich kleinere Dateien als verlustfreie Kompressoren. Eine MP3-Datei, die mit der gngigen 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. (Tatschlich schwankt der Kompressionsfaktor in Abhngigkeit vom Audiomaterial: So lassen sich z.B. leisere Audiosignale leichter komprimieren als laute).
Whrend der Umgang mit verlustbehafteten Audiokompressionsverfahren wie MP3 heutzutage fr die meisten Musikliebhaber und Computernutzer alltglich ist, fristen verlustfreie Verfahren bislang eher ein Nischendasein. Nichtdestotrotz sind sie den verlustbehafteten Verfahren in vielen Fllen berlegen oder knnen sie hervorragend ergnzen, z.B.:
Bei der Musikproduktion durchluft das Originalsignal meist eine Vielzahl von Bearbeitungsschritten. Sollen Zwischenergebnisse zunchst gespeichert und spter weiterverarbeitet werden, sind Verluste gnzlich inakzeptabel, da die Verluste aller Speichervorgnge kumulieren und schnell zu hrbaren Verflschungen fhren. Ferner werden Signalvernderungen der verlustbehafteten Kompression, die normalerweise nicht hrbar sind, durch die blichen Klangmanipulationen der Produktion schnell ber die Wahrnehmungsgrenze gehoben.
Bei der Archivierung privater Musikbestnde mag eine verlustbehaftete Kompression in einem Format, das fr den Anwender keine hrbaren Artefakte erzeugt, zunchst ausreichend erscheinen. Soll aber spter ein Wechsel zu einem anderen verlustbehafteten Format durchgefhrt werden (z.B. um Kompatibilitt zu neueren Wiedergabegerten herzustellen), besteht die Gefahr, da die Kumulation der Signalverflschungen des ursprnglichen sowie des neuen Kompressionsverfahrens eben doch zu hrbaren Artefakten fhrt.
Trotz aller beeindruckenden Fortschritte der verlustbehafteten Kompressionsverfahren lassen sich fast immer Musikstcke finden, die zu hrbaren Artefakten fhren. Derzeit knnen nur verlustfreie Verfahren eine unverflschte Klangqualitt garantieren.
Um eine kompaktere Reprsentation -also Kompression- der Daten zu erreichen, suchen alle verlustfreien Audiokompressoren nach Regelmigkeiten im Audiosignal. So besteht zumeist eine starke Abhngigkeit zwischen aufeinanderfolgenden Signalwerten, so da nachfolgende Werte aus den vorangegangenen vorhergesagt werden knnen. Dazu mssen einige geeignete Parameter berechnet werden, die die Art der Abhngigkeit mglichst gut beschreiben. Diese knnen dann zur Vorhersage bzw. Prdiktion eingesetzt werden. Anstelle der Originaldaten speichert der Kodierer dann die Differenzen zwischen der Vorhersage und dem Originalsignal, also den Prdiktionsfehler. Da die Differenzen bei einer guten Prdiktion viel kleiner sind als die Originalwerte und da kleinere Werte weniger Speicherplatz bentigen, erzielt man eine Kompression.
Im Dekodierer wird dieselbe Prdiktion vorgenommen, wobei der vom Kodierer gespeicherte Prdiktionsfehler zu den vorhergesagten Werten addiert wird, um die Originalwerte zurckzuerhalten.
Die Berechnung der otpimalen Parameter fr die Prdiktion ist der zeitaufwendigste Vorgang der Kompression.
Prdiktionsparameter mssen zu dem Signal passen, fr dessen Vorhersage sie eingesetzt werden sollen. Verndern sich entscheidende Aspekte des Audiosignals, mu eine Neuberechnung bzw. Adaption der Prdiktionsparameter durchgefhrt werden.
TAK basiert im wesentlichen auf adaptiver linearer Vorwrts-Prdiktion. Dieselbe Technik wird z.B. von FLAC, LPAC, Mpeg4Als (in der Standardeinstellung) und Shorten verwendet.
Alle genannten Programme gehren zur Klasse der asymmetrischen Audiokompressoren. Die Asymmetrie bezieht sich auf den unterschiedlichen Rechenaufwand fr den Vorgang der Kodierung und Dekodierung.
Alle fr die Kompression relevanten Parameter (vor allem die der Prdiktion) werden einmalig whrend 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 mglich, den Rechenaufwand im Kodierer zu erhhen, um bessere Parameter fr eine strkere Kompression zu erhalten, ohne da dies den Rechenaufwand im Dekodierer signifikant steigern wrde. In der Folge sinkt die Verarbeitungsgeschwindigkeit des Kodierers, whrend 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 durchgefhrt, soda auf beiden Seiten ungefhr derselbe Rechenaufwand entsteht. Wird der Rechenaufwand im Enkodierer erhht, um die Kompressionsleistung zu verbessern, steigt der Rechenaufwand im Dekodierer gleichermaen.
Aber symmetrische Verfahren bieten auch Vorteile. Sie verwenden in der Regel die sogenannte Rckwrtsprdiktion, die die Kompressionsparameter kontinuierlich aufgrund des vorangegangenen Signals berechnet. Da dies gleichermaen im Kodierer wie im Dekodierer geschieht, brauchen die Kompressionsparameter nicht gespeichert werden, was Platz spart und die Kompressionsrate erhht. Und da die Parameter nicht gespeichert werden mssen, knnen sie beliebig oft bzw. schnell an Vernderungen des Audiosignal angepat werden, was die Kompressionsrate weiter erhht. Symmetrische Verfahren mit Vorwrts-Prdiktion dagegen knnen diese Adaption nur in greren Intervallen vornehmen, da andernfalls der Speicherbedarf fr die hufiger aktualisierten Kompressionsparameter den Gewinn der schnellen Anpassung bersteigen wrde.
Anmerkung: Auf die Mglichkeit, beide Verfahren zu kombinieren, soll an dieser Stelle nicht eingegangen werden.
Vergleichstests der Leistung aktuell gngiger verlustfreier Kompressionsprogramme besttigen im groen und ganzen die Vorhersagen, die sich aus den unterschiedlichen Funktionsprinzipien ergeben: Asymmetrische Verfahren dekodieren deutlich schneller, whrend symmetrische Verfahren die hchsten Kompressionsraten erzielen knnen, wenn auch auf Kosten der Dekodiergeschwindigkeit.
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:
Die vom Enkodierer erzeugten komprimierten Frames werden in ein eigenes, proprietres Containerformat verpackt, das folgende Merkmale aufweist:
geplanter Erweiterungen:
Die Position in der Liste wird durch wenistens zwei Faktoren bestimmt: die Prioritt, die eine Erweiterung fr mich (und die Anwender) hat, sowie durch den erforderlichen Aufwand. So messe ich der Untersttzung fr andere Plattformen eigentlich eine recht hohe Bedeutung zu, habe sie aber aufgrund des betrchtlichen Aufwandes zunchst zurckgestellt.
Meine ersten Gehversuche im Bereich (verlustbehafteter) Audiokompression erfolgten bereits 1994. Ich erfoschte eine Reihe eher simpler Verfahren, die zunchst 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 Prdiktion zu. Da ich kaum Ahnung von den Standardverfahren der digitalen Signalverarbeitung hatte, nutzte ich zunchst eine (laaangsame) multiple Regression zur Bestimmung der Pdiktionskoeffizienten.
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 konkurrenzfhig ist, sollte seine Bedeutung fr die Entwicklung der Audiokompression keinesfalls unterschtzt werden. Zum einen war es der erste Quasi-Standard fr den Austauch verlustfrei komprimierter Audiodateien via Internet, zum anderen haben sein Quellcode und die ausfhrliche Dokumentation der eingesetzten Verfahren sicher vielen Entwicklern anderer Kompressoren als Einstig und Anregung gedient. Mir jedenfalls zeigte es ein schnelleres Verfahren zur Berechnung der Prdiktionskoeffizienten, nmlich den Levinson-Durbin-Algorithmus.
Mein anfngliche Euphorie darber, 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 hherer Geschwindigkeit! In den Folgejahren konzentrierte sich meine Entwicklungsarbeit darauf, diesen Vorsprung aufzuholen.
Ende Mrz 2006 war -salopp gesagt- "die Luft raus". Ich hatte meine Ziele erreicht und sah keine Mglichkeit 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. Zunchst versorgte mich die berwiegend positive Resonanz auf die von mir verffentlichten 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 unverffentlichten Programmes postet, darf sich nicht beklagen, wenn ihm die Hlfte der Leser nicht glaubt...
Da ich mich nun in Beweisnot sah, entwickelte ich innerhalb weniger Tage einen funktionsfhigen 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 Untersttzung 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 verffentlicht.