- CS-ACELP
-
G.729 bezeichnet einen von der ITU-T beschriebenen Codec zur Komprimierung von Sprache in digitale Signale. Die technische Bezeichnung lautet auch „Conjugate Structure Algebraic Code Excited Linear Prediction“ (CS-ACELP). G.729 wird beispielsweise bei IP-Telephonie-Verbindungen (Internet-Telefonie) eingesetzt.
Inhaltsverzeichnis
Technische Daten
G.729 ist ein hybrides Kompressionsverfahren, das sich auf die Untersuchung und Übertragung von Sprachparametern, mit einem so genannten Vocoder, sowie Differenzinformationen und anschließende Sprachsynthese stützt. Dabei setzt der Codec auf Frames von 10 ms Größe, die er auf sprachtypische Eigenschaften untersucht. Diese werden in Parameter für eine spätere Synthese gefasst. Zudem überträgt der Codec Differenzinformationen, die sich aus dem künstlich generierten und dem tatsächlichen Signal ergeben. In einem Sprachpaket werden je zwei Frames à 10 ms zusammen übertragen, wodurch der Delay bei ca. 25 ms liegt.
Audiosignale, welche als Quelle nicht menschliche Sprache darstellen, kann dieser Codec hingegen nur schlecht verarbeiten. So kann er beispielsweise die in der Analogtelefonie genutzten Multifrequenztöne nur unzureichend verarbeiten. Hier kann man sich behelfen, indem die Multifrequenztöne aus dem Signal herausgefiltert werden und nach RFC 2833 im Informationskanal übertragen werden („outband“).
Weiterhin unterdrückt G.729 Sprachpausen. Damit dies bei dem Zuhörer nicht wie ein Verbindungsabbruch klingt, besitzt der Decoder die Fähigkeit zur Auffüllung von Sprachpausen mit so genannten Komfortrauschen. Der Standard umfasst mögliche Implementierungen sowohl im Festkommaformat als auch im technisch aufwendigeren Gleitkommaformat, was den Einsatz in verschieden komplexen DSP-Plattformen erleichtert. Aus diesen Gründen ist G.729 je nach verwendeter Variante vergleichsweise rechenaufwändig; er benötigt je nach Implementierung und den darin enthaltenen Optionen etwa 50 MIPS. Eine etwas vereinfachte Variante mit niedriger Komplexität stellen die Varianten G.729A und G.729B dar, die in einer Implementierung auf dem Mikrocontroller MicroBlaze rund 10,3 MIPS an Rechenleistung benötigt [1]. Die MIPS-Angaben können allerdings je nach verwendeter Architektur und Art der Optimierung von den angegebenen Werten abweichen und stellen nur grobe Richtwerte dar.
Varianten
G.729 ist in verschiedene Varianten, im Standard als Anhänge (engl. Annexes), unterteilt. Diese Anhänge sind mit unterschiedlichen Buchstaben und weiteren Symbolen zur Unterscheidung gekennzeichnet [2]. Jeder Anhang beschreibt verschiedene mögliche Kombinationen die sich im Implementierungsaufwand, der benötigen Rechenleistung und dem funktionellen Umfang des Codecs unterscheiden. Für eine korrekte Decodierung muss der Encoder und Decoder aufeinander abgestimmt sein.
Folgende Varianten stehen im Rahmen von G.729 zur Verfügung:
Anhang (Annex) Funktionalität - A B C D E F G H I C+ J Niedrige Komplexität X X Festkommaarithmetik X X X X X X X X X X Fliesskommaarithmetik X X Datenrate 8 kbit/s X X X X X X X X X X X X Datenrate 6,4 kbit/s X X X X X Datenrate 11,8 kbit/s X X X X X DTX X X X X X Variable Bitrate X Die Option DTX steht für Discontinuous transmission, in Deutsch etwa unterbrochene Verbindung, und beschreibt die Möglichkeit relativ unempfindlich gegenüber Paketverlusten zu sein. Dies ist vor allem für VoIP wesentlich. Beim MOS erreicht G.729 eine empfundene Qualität von 3,98 von 5 Punkten, wobei die Variante G.729A nur 3,7 von 5 Punkten erreicht.
Der Codec verwendet für das codierte Sprachsignal üblicherweise eine fixe Bitrate von 8 kbit/s, jedoch sind in manchen Varianten auch fixe Bitraten von 6,4 kbit/s und 11,8 kbit/s möglich. Das Frequenzspektrum umfasst dabei 300 bis 3400 Hz, wobei durch das Kodierungskonzept nur Sprachdaten akkurat übertragen werden.
Die letzte Erweiterung G.729J, diese Variante entspricht der Arbeitsbezeichnung G.729.1, besitzt die Fähigkeit zur breitbandigen Sprach- und Audiocodierung: Die übertragene Frequenzbandbreite wurde auf den Bereich 50 Hz bis 7 kHz vergrößert. Der G.729J-Codec ist hierarchisch organisiert und die konkrete Bitrate und damit auch die Sprach-/Audioqualität lassen sich durch einfache „Beschneidung“ des Bitstroms auf variable Bitraten einstellen.
Einzelnachweise
- ↑ Russell Klein, Rajat Moona: Migrating Software to Hardware on FPGAs. Indian Institute of Technology Kanpur, 2005 (http://www.cse.iitk.ac.in/~moona/papers/icfpt04.pdf).
- ↑ Recommendation G.729, Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP). ITU-T, 2007 (SERIES G: TRANSMISSION SYSTEMS AND MEDIA, DIGITAL SYSTEMS AND NETWORKS - Digital terminal equipments – Coding of analogue signals by methods other than PCM).
Quellen
- ITU-T G.729 Standard. Der Standard umfasst eine komplette Referenzimplementierung der ITU-T in C für alle G.729-Varianten.
Wikimedia Foundation.