Content
Sv translation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
G.729 is a royalty-free audio codec (actually vocoder, voice coder, see Parametric Audio Coding) for compressing speech into digital signals. The technical name is "Conjugate Structure Algebraic Code Excited Linear Prediction" (CS-ACELP). G.729 Annexes A and B are used in Internet telephony , for example, due to their high compression and low computational effort. Technical SpecificationsG.729 is a hybrid compression method based on the investigation and transmission of speech parameters, with a so-called vocoder, as well as differential information and subsequent speech synthesis. The codec splits the audio signal into frames of 10 milliseconds length, which it examines for typical speech characteristics. These are set in parameters for later synthesis. In addition, the codec transmits differential information resulting from the artificially generated signal and the actual signal. Typically, two frames of 10 milliseconds each are transmitted together in a language packet, resulting in a delay of approximately 25 milliseconds. This codec can only process audio signals that do not represent human speech as a source with difficulty. For example, it cannot process the multifrequency sounds used in analog telephony adequately. Here you can make do by filtering the multifrequency tones out of the signal and transmitting them according to RFC 2833 in the information channel ("outband"). G.729 also suppresses speech pauses. To prevent this from sounding like a disconnection to the listener, the decoder has the ability to fill speech pauses with so-called comfort noise. The standard includes possible implementations in both fixed-point and technically more complex floating point formats, which facilitates use in various complex DSP platforms. For these reasons, depending on the variant used, G.729 is comparatively computationally complex; depending on the implementation and the options it contains, it requires about 50 MIPS. The G.729A and G.729B variants have a low computing complexity and, for example, require around 10.3 million clock cycles for 80 audio samples in the non-optimized reference implementation of the ITU-T on the MicroBlaze microcontroller. However, depending on the architecture and type of optimization used, the MIPS specifications may deviate from the specified values and represent only rough guidelines. VariantsG.729 is divided into different variants, in the standard as Annexes. These appendices are marked with different letters and other symbols for differentiation. Each appendix describes different possible combinations, which differ in the implementation effort, the required computing power and the functional scope of the codec. For correct decoding, the encoder and decoder must be matched to each other. The following variants are available within G.729:
The acronym DTX stands for discontinuous transmission, where on the transmitter side speech pauses, in which actually only contentless noise would have to be transmitted, are detected and transmitted in the form of bandwidth-saving pause signals, which are reproduced on the receiver side as locally generated comfort noise. In the Mean Opinion Score (MOS) G.729 achieves a perceived quality of 3.98 out of 5 points, whereas the variant G.729A achieves only 3.7 out of 5 points. The most commonly used variants of the codec are Annex A and B, which use a fixed bit rate of 8 kbit/s for the coded voice signal, but in some variants fixed bit rates of 6.4 kbit/s and 11.8 kbit/s are also possible. The frequency spectrum ranges from 300 to 3400 Hz, whereby only voice data are transmitted accurately due to the coding concept. G.729.1 (G.729J)The latest extension G.729J - this variant corresponds to the working designation G.729.1 - has the capability for broadband speech and audio coding: The transmitted frequency bandwidth was increased to the range 50 Hz to 7 kHz. The G.729J codec is hierarchically organized and the concrete bit rate and thus also the voice/audio quality can be set to variable bit rates by simply "cutting" the bit stream. Overhead when used with RTP in an IPv4 networkThe mentioned data rate of 8 kbit/s is nominal, it refers exclusively to the audio data itself. If a data stream is now sent through a network, the overhead of the switching data for the data packets in which the data stream is packed is added. When using RTP in an IPv4 network this is 40 bytes per IPv4 data packet (60 bytes with IPv6). The frame length at G.729 is 10 ms and such a frame is encoded with 10 bytes. Typically 2 frames are sent per IPv4 data packet. Consequently, this setting effectively requires 60 bytes (40 + 10 + 10 bytes) for 20 ms voice data. This is 3000 bytes per second, i.e. 24 kbit/s (3000 bytes * 8 / 1000 = 24 kbit). If you pack more than 2 frames into one packet, the relative share of the IP data decreases and the overhead becomes smaller. With 3 frames per packet you would only need 18.7 kbit/s. However, the disadvantage is a longer delay: If this is still 25 ms (10 ms per frame + 5 ms processing time) at 2 frames per packet, this is already 35 ms at three frames. If the delay becomes too great, users may find it disturbing.
|
Sv translation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
G.729 ist ein seit Anfang 2017 lizenzgebührenfreier Audio-Codec (eigentlich Vocoder, Voice Coder, siehe Parametrische Audiokodierung) zur Komprimierung von Sprache in digitale Signale. Die technische Bezeichnung lautet „Conjugate Structure Algebraic Code Excited Linear Prediction“ (CS-ACELP). G.729 Annex A und B werden aufgrund ihrer starken Komprimierung bei gleichzeitig geringem Rechenaufwand beispielsweise bei Internet-Telefonie eingesetzt. Technische DatenG.729 ist ein hybrides Kompressionsverfahren, das sich auf die Untersuchung und Übertragung von Sprachparametern, mit einem sogenannten Vocoder, sowie Differenzinformationen und anschließende Sprachsynthese stützt. Dabei zerlegt der Codec das Audiosignal in Frames von 10 Millisekunden Länge, 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 typischerweise je zwei Frames zu 10 Millisekunden zusammen übertragen, wodurch die Verzögerung bei ca. 25 Millisekunden liegt. Audiosignale, welche als Quelle nicht menschliche Sprache darstellen, kann dieser Codec 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 zum Auffüllen von Sprachpausen mit sogenanntem Komfortrauschen. Der Standard umfasst mögliche Implementierungen sowohl im Festkomma- 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. Die Varianten G.729A und G.729B haben eine geringe Rechenkomplexität und benötigen beispielsweise in der nicht optimierten Referenzimplementierung der ITU-T auf dem Mikrocontroller MicroBlaze rund 10,3 Millionen Taktzyklen für 80 Audioabtastwerte. 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. VariantenG.729 ist in verschiedene Varianten, im Standard als Anhänge (englisch Annexes), unterteilt. Diese Anhänge sind mit unterschiedlichen Buchstaben und weiteren Symbolen zur Unterscheidung gekennzeichnet.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 müssen der Encoder und Decoder aufeinander abgestimmt sein. Folgende Varianten stehen im Rahmen von G.729 zur Verfügung:
Das Akronym DTX steht für Discontinuous transmission, zu Deutsch nichtkontinuierliche Übertragung, bei der senderseitig Sprachpausen, in denen eigentlich nur inhaltsloses Rauschen übertragen werden müsste, erkannt und in Form von bandbreitensparenden Pausensignalen übertragen werden, die auf Empfängerseite als lokal erzeugtes Komfortrauschen wiedergegeben werden. Beim Mean Opinion Score (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. Die meisterverwendeten Varianten des Codecs sind Annex A und B, die für das codierte Sprachsignal eine fixe Bitrate von 8 kbit/s verwenden, 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. G.729.1 (G.729J)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. Overhead bei Verwendung mit RTP in einem IPv4-NetzwerkDie genannte Datenrate von 8 kbit/s ist nominell, sie bezieht sich ausschließlich auf die Audiodaten selbst. Wird nun ein Datenstrom durch ein Netzwerk verschickt, kommt noch der Overhead der Vermittlungsdaten für die Datenpakete, in die der Datenstrom verpackt ist, hinzu. Bei der Verwendung von RTP in einem IPv4-Netzwerk sind das 40 Bytes pro IPv4-Datenpaket (60 Bytes bei IPv6). Die Framelänge bei G.729 beträgt 10 ms und ein solcher Frame wird mit 10 Bytes kodiert. Typischerweise werden 2 Frames pro IPv4-Datenpaket verschickt. Folglich braucht man mit dieser Einstellung für 20 ms Sprachdaten effektiv 60 Bytes (40 + 10 + 10 Bytes). Pro Sekunde sind das 3000 Bytes, also 24 kbit/s (3000 Bytes * 8 / 1000 = 24 kbit). Packt man nun mehr als 2 Frames in ein Paket, dann sinkt der relative Anteil der IP-Daten und der Overhead wird kleiner. Mit 3 Frames pro Paket würde man nur mehr 18,7 kbit/s brauchen. Der Nachteil ist allerdings eine größere Verzögerung: Beträgt diese bei 2 Frames pro Paket noch 25 ms (10 ms pro Frame + 5 ms Verarbeitungszeit), so sind das bei drei Frames schon 35 ms. Wird die Verzögerung zu groß, kann diese von den Anwendern als störend empfunden werden.
Include Page |
|