Codec2
Aus Amateurfunk Wiki
Inhaltsverzeichnis |
Was ist ein Codec?
Zuerst muß man von einem Datenstrom ausgehen: Wenn Sprache synthetisiert wird, liegt das Sprachsignal in Form eines binären, unkomprimierten und lediglich gesampelten Bitstrom vor. Dieser Datenstrom ist zwar im Rahmen der Samplingrate originalgetreu, aber enthält sehr viel Information, die eigentlich weggelassen werden kann. Daher gibt es Verfahren, den Datenstrom auf wesentliche Merkmale zu reduzieren. MP3 ist ein derartiges Verfahren, in dem bei der Kompression vor allem Frequenzbereiche unterdrückt werden, die das menschliche Ohr nicht mehr oder zumindest nicht mehr gut wahrnehmen kann. Im Player muß das komprimierte (coderte) Signal wieder in einen Datenstrom zurückverwandelt werden. Bei MP3 klingt es hinreichend gut, um für nicht so anspruchsvolle Musikanwendungen tauglich zu sein.
Andere Codecs sind noch restriktiver: Der GSM-Codec reduziert das Eingangssignal nur auf die NF-Bandbreite der menschlichen Stimme und kann daher noch deutlich reduziertere Datenströme erzeugen.
Ziel eines jeden Codecs ist, einen Kompromiss zwischen minimalem Qualitätsverlust und maximaler Kompression zu finden. Der Grad des Qualitätsverlusts hängt dabei von der Anwendung ab, für die man den Codec einsetzt. Niemand würde bei einem Handy erwarten, daß es Musik in HIFI-Qualität übertragen muß.
Was ist Codec2?
Die meisten Codecs sind kommerziell und kostenpflichtig. Es gibt aber auch freie Codecs. Aber nicht jeder Codec ist für jeden Zweck geeignet. Für D-Star wird ein kommerzieller Codec verwendet (AMBE); MELP, der bei DRM verwendet wird, ist ebenfalls kein freier Codec. Daher hat Dave Rowe, VK5DGR, einen freien Codec mit hoher Kompression namens Codec2 entwickelt.
Der Codec komprimiert Sprachsignale auf eine Bandbreite von 2400 bit/s.
Der Autor schreibt mehr dazu in seinem Blog:
Wie kann ich Codec2 nutzen?
Der Codec besteht aus einem Kompressionsprogramm (Encoder) und einem Dekompressionsprogramm. Wie der größte Teil kostenfreier Software wurde der Codec unter Linux entwickelt. (Wer gerne Geld für Software zahlen will, der sei auf die kommerziellen Codecs verwiesen. Es gibt ja so Zeitgenossen, die lieber Geld zahlen, selbst wenn es gute freie Software gibt.) Man braucht also Linux, muß sich die Quellen des Codecs herunterladen oder aus dem Subversion-Repository auschecken und kompilieren. Es ist davon auszugehen, daß mittelfristig auch fertig vorkompilierte Pakete zur Verfügung stehen, aber für die gängigen Distributionen dürfte das noch eine ziemliche Zeit dauern, da es sich um eine Spezialanwendung handelt.
$ svn co https://freetel.svn.sourceforge.net/svnroot/freetel/codec2 codec2 $ cd codec2/src $ ./configure $ make
Danach erhält man zwei Programmchen namens c2enc und c2dec, die man direkt zur Kodierung oder Dekodierung von RAW-Audio-Signalen verwenden kann:
$ ./c2enc ../raw/hts1a.raw hts1a_c2.bit $ ./c2dec hts1a_c2.bit hts1a_c2.raw
Ein Testbefehl dient der Abschätzung der Qualität bzw. des Qualitätsverlusts, der im Rahmen der (verlustbehafteten) Kompression akzeptiert wurde:
$ ../scripts/menu.sh ../raw/hts1a.raw hts1a_c2.raw
Weiterführende Informationen
Mehr Info erhält man auf den Seiten des Autors:
Subversion-Repository:
