PatentDe  


Dokumentenidentifikation DE69834093T2 14.12.2006
EP-Veröffentlichungsnummer 0000922278
Titel SPRACHÜBERTRAGUNGSSYSTEM MIT VERÄNDERLICHER BITRATE
Anmelder Koninklijke Philips Electronics N.V., Eindhoven, NL
Erfinder TAORI, Rakesh, NL-5656 AA Eindhoven, NL;
GERRITS, Johannes, Andreas, NL-5656 AA Eindhoven, NL
Vertreter Volmer, G., Dipl.-Ing., Pat.-Anw., 52066 Aachen
DE-Aktenzeichen 69834093
Vertragsstaaten DE, ES, FR, GB, IT, SE
Sprache des Dokument EN
EP-Anmeldetag 05.03.1998
EP-Aktenzeichen 989043278
WO-Anmeldetag 05.03.1998
PCT-Aktenzeichen PCT/IB98/00293
WO-Veröffentlichungsnummer 1998045833
WO-Veröffentlichungsdatum 15.10.1998
EP-Offenlegungsdatum 16.06.1999
EP date of grant 05.04.2006
Veröffentlichungstag im Patentblatt 14.12.2006
IPC-Hauptklasse G10L 19/00(2006.01)A, F, I, 20051017, B, H, EP
IPC-Nebenklasse H03M 7/30(2006.01)A, L, I, 20051017, B, H, EP   

Beschreibung[de]

Die vorliegende Erfindung betrifft einen Sprachcodierer, der ein Analysemittel zum Bestimmen von Analysekoeffizienten aus einem Eingangssprachsignal und ein Erzeugungsmittel zum Erzeugen von Datenrahmen, die das Eingangssprachsignal darstellen, umfasst.

Die vorliegende Erfindung betrifft auch ein Sprachcodierungsverfahren, einen Sender und ein Übertragungssystem.

Ein Übertragungssystem, das einen Sprachcodierer nach dem Oberbegriff umfasst, ist aus der US-Patentschrift Nr. 4 379 949 bekannt.

Derartige Übertragungssysteme werden in Anwendungen verwendet, bei denen Sprachsignale über ein Übertragungsmedium mit einer begrenzten Übertragungskapazität übertragen werden müssen, oder auf Speichermedien mit einer begrenzten Speicherkapazität gespeichert werden müssen. Beispiele derartiger Anwendungen sind die Übertragung von Sprachsignalen über das Internet, die Übertragung von Sprachsignalen von einem Mobiltelefon zu einer Basisstation und umgekehrt, und die Speicherung von Sprachsignalen auf einer CD-ROM, in einem Festkörperspeicher oder auf einem Festplattenlaufwerk.

In einem Sprachcodierer wird das Sprachsignal durch ein Analysemittel analysiert, das mehrere Analysekoeffzienten für einen Block von Sprachabtastungen, auch als ein Rahmen bekannt, bestimmt. Eine Gruppe dieser Analysekoeffizienten beschreibt das Kurzzeitspektrum des Sprachsignals. Ein anderes Beispiel eines Analysekoeffizienten ist ein Koeffizient, der die Tonhöhe eines Sprachsignals darstellt. Die Analysekoeffizienten werden über das Übertragungsmedium zum Empfänger übertragen, wo diese Analysekoeffizienten als Koeffizienten für ein Synthesefilter verwendet werden.

Neben den Analyseparametern bestimmt der Sprachcodierer auch eine Anzahl von Anregungsabfolgen (z.B. 4) pro Rahmen von Sprachabtastungen. Der durch eine derartige Anregungsabfolge abgedeckte Zeitabstand wird Subrahmen genannt. Der Sprachcodierer ist dazu eingerichtet, das Anregungssignal zu finden, das zur besten Sprachqualität führt, wenn das Synthesefilter, das die oben erwähnten Analysekoeffizienten verwendet, mit den Anregungsabfolgen angeregt wird. Eine Darstellung der Anregungsabfolgen wird über den Übertragungskanal zum Empfänger übertragen. Im Empfänger werden die Anregungsabfolgen aus dem empfangenen Signal wiedergewonnen und an einen Eingang des Synthesefilters angelegt. Am Ausgang des Synthesefilters kann ein synthetisches Sprachsignal erhalten werden.

Die Bitrate, die benötigt wird, um ein Sprachsignal mit einer bestimmten Qualität zu beschreiben, hängt vom Sprachinhalt ab. Falls die Analysekoeffizienten über einen längeren Zeitraum hinweg im Wesentlichen konstant sind, konnte die Bitrate, die benötigt wird, um sie zu übertragen, verringert werden. Diese Möglichkeit wird im Übertragungssystem nach der oben erwähnten US-Patentschrift verwendet. Diese Patentschrift beschreibt ein Übertragungssystem mit einem Sprachcodierer, wobei die Analysekoeffizienten nicht jeden Rahmen übertragen werden. Sie werden nur übertragen, wenn der Unterschied zwischen zumindest einem der tatsächlichen Analysekoeffizienten in einem Rahmen und einem entsprechenden Analysekoeffizienten, der durch Interpolation der Analysekoeffizienten von benachbarten Rahmen erhalten wird, einen vorbestimmten Schwellenwert überschreitet. Dies führt zu einer Verringerung der Bitrate, die zum Übertragen des Sprachsignals benötigt wird. Im bekannten Übertragungssystem kann die Bitrate durch Erhöhen oder Verringern des Schwellenwerts auf willkürliche Werte eingestellt werden, was zu einer Abnahme oder einer Zunahme der Bitrate führt. Die durchschnittliche Bitrate hängt jedoch nach wie vor stark vom Sprachinhalt ab.

Eine Aufgabe der vorliegenden Erfindung ist, ein Übertragungssystem nach dem Oberbegriff bereitzustellen, bei dem die Bitrate auf willkürliche Werte eingestellt werden kann, und das im Wesentlichen vom Sprachinhalt unabhängig ist.

Daher ist der Sprachcodierer nach der Erfindung dadurch gekennzeichnet, dass der Sprachcodierer ein Steuermittel umfasst, um aus einer Bitrateneinstellung einen Anteil der Datenrahmen zu berechnen, die mehr Informationen über die Analysekoeffizienten als eine verbleibende Anzahl der Datenrahmen tragen sollen, und um die Übertragung des Anteils der Datenrahmen und der verbleibenden Anzahl der Datenrahmen zu steuern. Durch Bestimmen einer Bitrateneinstellung und Steuern des tatsächlichen Teils der Rahmen, die Informationen über die Analysekoeffizienten tragen, als Reaktion auf diese Bitrateneinstellung ist es möglich, im Wesentlichen unabhängig vom Sprachinhalt eine durchschnittliche Bitrate zu erhalten. Es ist sogar möglich, die durchschnittliche Bitrate durch Verändern der Bitrateneinstellung während der Laufzeit zu verändern.

Der tatsächliche Anteil kann auf verschiedene Weisen gesteuert werden. Eine erste Weise ist, einen Modulo-M-Zähler zu verwenden, der für jeden Rahmen mit Schritten N erhöht wird. Jedes Mal, wenn der Zähler überläuft, werden die Analysekoeffizienten in den Rahmen aufgenommen. Folglich ist der Anteil der Rahmen, die Analysekoeffizienten tragen, N/M.

In der US-Patentschrift Nr. 5 414 796 sind eine Vorrichtung und ein Verfahren für eine Codierung mit veränderlicher Rate von Rahmen von digitalisierten Sprachabtastungen offenbart. Zuerst wird der Pegel der Sprachaktivität für jeden Rahmen der digitalisierten Sprachabtastungen bestimmt. Als nächstes wird auf Basis des bestimmten Pegels eine Ausgangsdatenpaketrate aus einem Satz von Raten gewählt. Jeder Rahmen wird dann nach einem vorbestimmten Codierformat für die gewählte Rate codiert.

Eine Ausführungsform der Erfindung ist dadurch gekennzeichnet, dass das Steuermittel ein Vergleichsmittel zum Vergleichen eines Maßes für eine tatsächliche Bitrate mit einem Maß für die Bitrateneinstellung umfasst, wobei das Steuermittel dazu eingerichtet ist, den tatsächlichen Anteil der Rahmen, die mehr Informationen über die Analysekoeffizienten als die verbleibenden Rahmen tragen, zu erhöhen, wenn das Maß für die tatsächliche Bitrate kleiner als das Maß für die Bitrateneinstellung ist, und den tatsächlichen Anteil der Rahmen, die mehr Informationen über die Analysekoeffizienten als die verbleibenden Rahmen tragen, zu verringern, wenn das Maß für die tatsächliche Bitrate größer als das Maß für die Bitrateneinstellung ist. Nach dieser Ausführungsform ist stets sichergestellt, dass die durchschnittliche Bitrate des codierten Sprachsignals der Bitrateneinstellung im Wesentlichen gleich ist.

Eine weitere Ausführungsform der Erfindung ist dadurch gekennzeichnet, dass das Steuermittel dazu eingerichtet ist, jene Analyseparameter anzugeben, die ein Maß der Entfernung von Werten, welche von Analyseparametern interpoliert wurden, die in umgebenden Rahmen übertragen wurden, aufweisen, welches einen Schwellenwert überschreitet, um die Schwelle zu verringern, wenn das Maß für die tatsächliche Bitrate kleiner als das Maß für die Bitrateneinstellung ist, und um die Schwelle zu erhöhen, wenn das tatsächliche Maß für die Bitrate größer als das Maß für die Bitrateneinstellung ist. Bei dieser Ausführungsform werden die Analyseparameter übertragen, die sich am meisten von den interpolierten Werten unterscheiden. Durch Erhöhen des Schwellenwerts, wenn die tatsächliche Bitrate größer als die Bitrateneinstellung ist, und Verringern des Schwellenwerts im anderen Fall wird erreicht, dass die durchschnittliche Bitrate der Bitrateneinstellung im Wesentlichen gleich ist.

Eine weitere Ausführungsform der Erfindung ist dadurch gekennzeichnet, dass der Anteil der Rahmen, die mehr Informationen über die Analysekoeffizienten als die verbleibende Anzahl der Rahmen tragen, größer als oder gleich wie 0,5 und kleiner als 1 ist. Versuche haben gezeigt, dass Referenzanteile zwischen 0,5 und 1 zu einem ausreichenden Steuerbereich ohne einen wesentlichen Verlust in der Codierqualität führen.

Eine weitere Ausführungsform der Erfindung ist dadurch gekennzeichnet, dass der Sprachcodierer dazu eingerichtet ist, als Reaktion auf eine grobe Bitrateneinstellung eine Rahmenlänge aus mehreren Rahmenlängen und eine Anzahl von Anregungssubrahmen pro Rahmen aus mehreren Anzahlen von Anregungssubrahmen pro Rahmen auszuwählen. Durch Auswählen der Rahmenlänge und der Anzahl von Subrahmen aus einer Anzahl von möglichen Werten als Reaktion auf die Bitrateneinstellung ist es möglich, eine fortlaufend veränderliche Bitrate mit einem wesentlich erhöhten Bereich der Bitrate zu erhalten.

Eine weitere Ausführungsform der Erfindung ist dadurch gekennzeichnet, dass die ausgewählte Rahmenlänge 10 msek beträgt, und dass die ausgewählte Anzahl von Anregungssubrahmen pro Rahmen 4 beträgt. Eine andere Ausführungsform der Erfindung ist dadurch gekennzeichnet, dass die ausgewählte Rahmenlänge 15 msek beträgt, und dass die ausgewählte Anzahl von Anregungsrahmen pro Rahmen 6, 8 oder 10 beträgt. Durch das Verwenden der oben erwähnten Parameter wird es möglich, einen Sprachcodierer zu erhalten, der eine fortlaufend veränderliche Bitrate aufweist, die von 16,3 kbit/sek bis 21,8 kbit/sek verändert werden kann.

Die Erfindung wird nun unter Bezugnahme auf die Zeichnungen beschrieben werden. Hierbei zeigt

1 ein Übertragungssystem, in dem die Erfindung verwendet werden kann;

2 eine Ausführungsform des Sprachcodierers 4 nach der Erfindung;

3 eine erste Ausführungsform der Bitratensteuerung 30 nach 2;

4 eine zweite Ausführungsform der Bitratensteuerung 30 nach 2;

5 eine Ausführungsform des Sprachdecodierers 18 von 1.

Beim Übertragungssystem nach 1 wird das zu codierende Sprachsignal an einen Eingang eines Sprachcodierers 4 in einem Sender 2 angelegt. Ein erster Ausgang des Sprachcodierers 4, der ein Ausgangssignal LPC trägt, das die Analysekoeffizienten darstellt, ist mit einem ersten Eingang eines Multiplexers 6 verbunden. Ein zweiter Ausgang des Sprachcodierers 4, der ein Ausgangssignal F trägt, ist mit einem zweiten Eingang eines Multiplexers 6 verbunden. Das Signal F stellt ein Kennzeichen dar, das angibt, ob das Signal LPC übertragen werden muss, oder nicht. Ein dritter Ausgang des Sprachcodierers 4, der ein Signal EX trägt, ist mit einem dritten Eingang des Multiplexers 6 verbunden. Das Signal EX stellt ein Anregungssignal für das Synthesefilter in einem Sprachdecodierer dar. Ein Bitratensteuersignal R wird an einen zweiten Eingang des Sprachcodierers 4 angelegt.

Ein Ausgang des Multiplexers 6 ist mit einem Eingang eines Übertragungsmittels 8 verbunden. Ein Ausgang des Übertragungsmittels 8 ist über ein Übertragungsmedium 10 mit einem Empfänger 12 verbunden.

Im Empfänger 12 ist der Ausgang des Übertragungsmediums 10 mit einem Eingang eines Empfangsmittels 14 verbunden. Ein Ausgang des Empfangsmittels 14 ist mit einem Eingang eines Demultiplexers 16 verbunden. Ein erster Ausgang des Demultiplexers 16, der das Signal LPC trägt, ist mit einem ersten Eingang eines Sprachdecodiermittels 18 verbunden, und ein zweiter Ausgang des Demultiplexers 16, der das Signal EX trägt, ist mit einem zweiten Eingang des Sprachdecodiermittels 18 verbunden. Am Ausgang des Sprachdecodiermittels 18 kann das wiederhergestellte Sprachsignal erhalten werden. Die Kombination aus dem Demultiplexer 16 und dem Sprachdecodiermittel 18 bildet den Sorachdecodierer nach dem vorliegenden erfinderischen Konzept.

Der Betrieb des Übertragungssystems nach der Erfindung wird unter der Annahme erklärt, dass ein Sprachcodierer vom CELP-Typ verwendet wird, doch wird bemerkt, dass der Umfang der vorliegenden Erfindung nicht darauf beschränkt ist.

Der Sprachcodierer 4 ist dazu eingerichtet, von Rahmen von Abtastungen eines Sprachsignals ein codiertes Sprachsignal zu erlangen. Der Sprachcodierer erlangt von den Rahmen von Abtastungen der Sprachsignale Analysekoeffizienten, die z.B. das Kurzzeitspektrum des Sprachsignals darstellen. Im Allgemeinen werden LPC-Koeffizienten, oder eine umgewandelte Darstellung davon, verwendet. Nützliche Darstellungen sind Log Area Ratios (LARs), Arcsinuse von Reflexionskoeffizienten, oder Linienspektralfrequenzen (LSFs), die auch als Linienspektralpaare (LSPs) bezeichnet werden. Die Darstellung der Analysekoeffizienten kann als das Signal LPC am ersten Ausgang des Sprachcodierers 4 erhalten werden.

Im Sprachcodierer 4 ist das Anregungssignal einer Summe von gewichteten Ausgangssignalen eines oder mehrerer fester Codebücher und eines adaptiven Codebuchs gleich. Die Ausgangssignale des festen Codebuchs sind durch einen festen Codebuchindex angegeben, und der Gewichtungsfaktor für das feste Codebuch ist durch eine feste Codebuchverstärkung angegeben. Die Ausgangssignale des adaptiven Codebuchs sind durch einen adaptiven Codebuchindex angegeben, und der Gewichtungsfaktor für das adaptive Codebuch ist durch eine adaptive Codebuchverstärkung angegeben.

Die Codebuchindizes und -verstärkungen werden durch eine Analyse nach dem Syntheseverfahren bestimmt, d.h., die Codebuchindizes und -verstärkungen werden so bestimmt, dass ein Maß des Unterschieds zwischen dem ursprünglichen Sprachsignal und einem auf Basis der Anregungskoeffizienten und der Analysekoeffizienten synthetisierten Sprachsignal einen minimalen Wert aufweist. Das Signal F gibt an, ob die Analyseparameter, die dem gegenwärtigen Rahmen von Sprachsignalabtastungen entsprechen, übertragen werden, oder nicht. Diese Koeffizienten können im gegenwärtigen Datenrahmen oder in einem früheren Datenrahmen übertragen werden.

Der Multiplexer 6 setzt Datenrahmen mit einem Datenkopf und den Daten, die das Sprachsignal darstellen, zusammen. Der Datenkopf umfasst einen ersten Anzeiger (das Kennzeichen F), der angibt, ob der gegenwärtige Datenrahmen ein unvollständiger Datenrahmen ist, oder nicht. Der Datenkopf umfasst optional einen zweiten Anzeiger, der angibt, ob der gegenwärtige Datenrahmen Analyseparameter trägt. Der Rahmen umfasst ferner die Anregungsparameter für mehrere Subrahmen. Die Anzahl der Subrahmen hängt von der Bitrate ab, die durch das Signal R am Steuereingang des Sprachcodierers 4 gewählt wurde. Die Anzahl der Subrahmen pro Rahmen und die Rahmenlänge können ebenfalls im Datenkopf des Rahmens codiert sein, doch ist es auch möglich, dass die Anzahl der Subrahmen pro Rahmen und die Rahmenlänge während der Verbindungsherstellung vereinbart werden. Am Ausgang des Multiplexers 6 können die fertiggestellten Rahmen, die das Sprachsignal darstellen, erhalten werden.

Im Übertragungsmittel 8 werden die Rahmen am Ausgang des Multiplexers 6 in ein Signal umgewandelt, das über das Übertragungsmedium 10 übertragen werden kann. Die im Übertragungsmittel durchgeführten Vorgänge umfassen die Fehlerkorrekturcodierung, das Verschachteln, und die Modulation.

Der Empfänger 12 ist dazu eingerichtet, das durch den Sender 2 übertragene Signal vom Übertragungsmedium 10 zu empfangen. Das Empfangsmittel 14 ist für eine Demodulation, eine Entschachtelung und eine Fehlerkorrekturdecodierung eingerichtet. Der Demultiplexer extrahiert die Signale LPC, F und EX aus dem Ausgangssignal des Empfangsmittels 14. Falls nötig, führt der Demultiplexer 16 eine Interpolation zwischen zwei Sätzen von hintereinander empfangenen Sätzen von Koeffizienten durch. Die fertiggestellten Sätze von Koeffizienten LPC und EX werden dem Sprachdecodiermittel 18 bereitgestellt. Am Ausgang des Sprachdecodiermittels 18 kann das wiederhergestellte Sprachsignal erhalten werden.

Im Sprachcodierer nach 2 wird das Eingangssignal an einen Eingang eines Rahmungsmittels 20 angelegt. Ein Ausgang des Rahmungsmittels 20, der ein Ausgangssignal Sk+1 trägt, ist mit einem Eingang des Analysemittels verbunden, das hier ein linear vorhersagender Analysator 22 ist, und mit einem Eingang eines Verzögerungselements 28 verbunden. Der Ausgang des linear vorhersagenden Analysators 22, der ein Signal &agr;k+1 trägt, ist mit einem Eingang eines Quantisierers 24 verbunden. Ein erster Ausgang des Quantisierers 24, der ein Ausgangssignal Ck+1 trägt, ist mit einem Eingang eines Verzögerungselements 26 und mit einem ersten Ausgang des Sprachcodierers 4 verbunden. Ein Ausgang des Verzögerungselements 26, der ein Ausgangssignal Ck trägt, ist mit einem zweiten Ausgang des Sprachcodierers verbunden.

Ein zweiter Ausgang des Quantisierers 24, der ein Signal &agr;^ k+1 trägt, ist mit einem Eingang des Steuermittels 30 verbunden. Ein Eingangssignal R, das eine Bitrateneinstellung darstellt, wird an einen zweiten Eingang des Steuermittels 30 angelegt. Ein erster Ausgang des Steuermittels 30, der ein Ausgangssignal F trägt, ist mit einem Ausgang des Sprachcodierers 4 verbunden.

Ein dritter Ausgang des Steuermittels 30, der ein Ausgangssignal &agr;' k trägt, ist mit einem Interpolator 32 verbunden. Ein Ausgang des Interpolators 32, der ein Ausgangssignal &agr;' k[m) trägt, ist mit einem Steuereingang eines Wahrnehmungsgewichtungsfilters 34 verbunden.

Der Ausgang des Rahmungsmittels 20 ist auch mit einem Eingang eines Verzögerungselements 28 verbunden. Ein Ausgang des Verzögerungselements 28, der ein Signal Sk trägt, ist mit einem zweiten Eingang des Wahrnehmungsgewichtungsfilters 34 verbunden. Der Ausgang des Wahrnehmungsgewichtungsfilters 34, der ein Signal rs[m] trägt, ist mit einem Eingang eines Anregungssuchmittels 36 verbunden. Am Ausgang des Anregungssuchmittels 36 kann eine Darstellung des Anregungssignals EX, die den festen Codebuchindex, die feste Codebuchverstärkung, den adaptiven Codebuchindex und die adaptive Codebuchverstärkung umfasst, erhalten werden.

Das Rahmungsmittel erlangt vom Eingangssignal des Sprachcodierers 4 Rahmen, die mehrere Eingangsabtastungen umfassen. Die Anzahl der Abtastungen innerhalb eines Rahmens kann nach der Bitrateneinstellung R verändert werden. Der linear vorhersagende Analysator 22 erlangt von den Rahmen der Eingangsabtastungen mehrere Analysekoeffizienten, die Vorhersagekoeffizienten &agr;k+1[p] umfassen. Diese Vorhersagekoeffizienten können durch den wohlbekannten Levinson-Durbin-Algorithmus gefunden werden. Der Quantisierer 24 wandelt die Koeffizienten &agr;k+1[p] in eine andere Darstellung um und quantisiert die umgewandelten Vorhersagekoeffizienten in quantisierte Koeffizienten Ck+1[p], die über das Verzögerungselement 26 als Koeffizienten Ck[p] zum Ausgang weitergegeben werden. Der Zweck des Verzögerungselements 26 ist, sicherzustellen, dass die Koeffizienten Ck[p] und das Anregungssignal EX, die dem gleichen Rahmen von Spracheingangsabtastungen entsprechen, dem Multiplexer 6 gleichzeitig präsentiert werden. Der Quantisierer 24 stellt dem Steuermittel 30 ein Signal &agr;^ k+1 bereit. Das Signal &agr;^ k+1 wird durch eine inverse Transformation der quantisierten Koeffizienten Ck+1 erhalten. Diese inverse Transformation ist die gleiche wie die im Sprachdecodierer im Empfänger durchgeführte. Die inverse Transformation der quantisierten Koeffizienten wird im Sprachcodierer durchgeführt, um dem Sprachcodierer für die lokale Synthese genau die gleichen Koeffizienten bereitzustellen, die für einen Decodierer im Empfänger verfügbar sind.

Das Steuermittel 30 ist dazu eingerichtet, den Anteil der Rahmen, in denen mehr Informationen über die Analysekoeffizienten als in den anderen Rahmen übertragen wird, zu erlangen. Im Sprachcodierer 4 nach der vorliegenden Erfindung tragen die Rahmen die vollständigen Informationen über die Analysekoeffizienten, oder tragen sie überhaupt keine Informationen über die Analysekoeffizienten. Die Steuereinheit 30 stellt ein Ausgangssignal F bereit, das angibt, ob der Multiplexer 6 das Signal LPC in den gegenwärtigen Rahmen einbringen muss, oder nicht. Es wird jedoch bemerkt, dass es möglich ist, dass die Anzahl von Analyseparametern, die durch jeden Rahmen getragen werden, schwanken kann.

Die Steuereinheit 30 stellt dem Interpolator 32 die Vorhersagekoeffizienten &agr;' k bereit. Die Werte von &agr;' k sind den am jüngsten bestimmten (quantisierten) Vorhersagekoeffizienten gleich, wenn die LPC-Koeffizienten für den gegenwärtigen Rahmen übertragen werden. Wenn die LPC-Koeffizienten fÜr den gegenwärtigen Rahmen nicht übertragen werden, wird der Wert von &agr;' k durch Interpolieren der Werte von &agr;' k-1 und &agr;' k+1 gefunden.

Der Interpolator 32 stellt für jeden der Subrahmen im vorliegenden Rahmen linear interpolierte Werte &agr;'k[m] von &agr;' k-1 und &agr;' k bereit. Die Werte von &agr;'k[m] werden an das Wahrnehmungsgewichtungsfilter 34 angelegt, um vom gegenwärtigen Subrahmen m des Eingangssignals Sk ein "Restsignal" rs[m] zu erlangen. Das Suchmittel 36 ist dazu eingerichtet, den festen Codebuchindex, die feste Codebuchverstärkung, den adaptiven Codebuchindex und die adaptive Codebuchverstärkung zu finden, was zu einem Anregungssignal führt, das die beste Übereinstimmung mit dem gegenwärtigen Subrahmen m des "Restsignals" rs[m] ergibt. Für jeden Subrahmen m können der feste Codebuchindex, die feste Codebuchverstärkung, der adaptive Codebuchindex und die adaptive Codebuchverstärkung der Anregungsparameter am Ausgang EX des Sprachcodierers 4 erhalten werden.

Ein beispielhafter Sprachcodierer nach 2 ist ein Breitband-Sprachcodierer zum Codieren von Sprachsignalen mit einer Bandbreite von 7 kHz mit einer Bitrate, die von 13,6 kbit/sek bis 24 kbit/sek schwankt. Der Sprachcodierer kann auf vier sogenannte Ankerbitraten gestellt werden. Diese Ankerbitraten sind Anfangswerte, von denen ausgehend die Bitrate durch Verringern des Anteils der Rahmen, die Vorhersageparameter tragen, verringert werden kann. In der nachstehenden Tabelle sind die vier Ankerbitraten und die entsprechenden Werte der Rahmendauer, der Anzahl von Abtastungen in einem Rahmen und der Anzahl von Subrahmen pro Rahmen angegeben.

Durch Verringern der Anzahl von Rahmen, in denen LPC-Koeffizienten vorhanden sind, kann die Bitrate in kleinen Schritten gesteuert werden. Wenn der Anteil der Rahmen, die LPC-Koeffizienten tragen, von 0,5 bis 1 schwankt, und die Anzahl der Bits, die benötigt werden, um die LPC-Koeffizienten für einen Rahmen zu übertragen, 66 beträgt, kann die maximal erhaltbare Bitratenverringerung berechnet werden. Bei einer Rahmengröße von 10 msek kann die Bitrate für die LPC-Koeffizienten von 3,3 kbit/sek bis 6,6 kbit/sek schwanken. Bei einer Rahmengröße von 15 msek kann die Bitrate für die LPC-Koeffizienten von 2,2 kbit/sek bis 4,4 kbit/sek schwanken. In der nachstehenden Tabelle sind die maximale Bitratenverringerung und die Mindestbitrate für die vier Ankerbitraten angegeben.

Im Steuermittel 30 nach 3 ist ein erster Eingang, der das Signal &agr;^ k+1 trägt, mit einem Eingang eines Verzögerungselements 40 und einem Eingang eines Wandlers 44 verbunden. Ein Ausgang des Verzögerungselements 40, der das Signal &agr;^ k trägt, ist mit einem Eingang eines Verzögerungselements 42 und mit einem Eingang eines Wandlers 50 verbunden. Ein Ausgang des Verzögerungselements 42, der ein Ausgangssignal &agr;^ k-1 trägt, ist mit einem Eingang eines Wandlers 46 verbunden. Ein Ausgang des Wandlers 44, der ein Ausgangssignal ik+1 trägt, ist mit einem ersten Eingang eines Interpolators 48 verbunden. Ein Ausgang des Wandlers 46, der ein Ausgangssignal ik-1 trägt, ist mit einem zweiten Eingang des Interpolators 48 verbunden. Der Ausgang des Interpolators 48, der ein Ausgangssignal i^ k trägt, ist mit einem ersten Eingang eines Selektors 52 verbunden. Ein Ausgang des Wandlers 50, der ein Ausgangssignal ik trägt, ist mit einem zweiten Eingang des Selektors 52 verbunden. Am Ausgang des Selektors 52 kann ein Signal i~ k erhalten werden. Der Ausgang des Selektors 52 ist mit einem Eingang eines Wandlers 53 verbunden. Der Ausgang des Wandlers 53, der das Signal &agr;' k trägt, das durch den Interpolator 32 in 2 verwendet werden soll, ist mit dem Ausgang des Steuermittels 30 verbunden.

Ein zweiter Eingang des Steuermittels 30, der das Signal R trägt, wird an ein Berechnungsmittel 54 angelegt. Der Ausgang des Berechnungsmittels 54 ist mit einem Eingang eines Addierers 56 verbunden. Ein Ausgang des Addierers 56 ist mit einem Eingang eines zentralen Rechenregisters 58 verbunden. Ein erster Ausgang des zentralen Rechenregisters 58, der den gesammelten Wert trägt, ist mit einem zweiten Eingang des Addierers 56 verbunden. Ein zweiter Ausgang des zentralen Rechenregisters 58, der ein Überlaufsignal trägt, ist mit einem Steuereingang des (Wort fehlt, vermutlich "Selektors 5") verbunden. Im Steuermittel 30 bestimmt das Berechnungsmittel aus dem Bitrateneinstellsignal R die Ankerbitrate und den Anteil der Rahmen, die LPC-Informationen tragen. Falls eine bestimmte Bitrate R von zwei unterschiedlichen Ankerbitraten ausgehend erreicht werden kann, wird die Ankerbitrate gewählt, die zur besten Sprachqualität führt. Es ist günstig, den Wert der Ankerbitrate als Funktion als das Signal R in einer Tabelle zu speichern. Wenn die Ankerbitrate gewählt wurde, kann der Anteil der Rahmen, die LPC-Koeffizienten tragen, bestimmt werden.

Zuerst werden die Werte BMAX und BMI N, die den Höchstwert und den Mindestwert für die Anzahl von Bits pro Rahmen darstellen, gemäß BMAX = bDATENKOPF + bANREGUNG + bLPC(1) BMIN = bDATENKOPF + bANREGUNG(2) bestimmt. In (1) und (2) ist bDATENKOPF die Anzahl von Datenkopfbits in einem Rahmen, bANREGUNG die Anzahl von Bits, die das Anregungssignal darstellen, und bLPC die Anzahl von Bits, die die Analysekoeffizienten darstellen. Wenn das Signal R eine benötigte Bitrate BREQ darstellt, kann für den Anteil von Rahmen r, die LPC-Parameter tragen, Folgendes geschrieben werden:

Es wird bemerkt, dass der Mindestwert von r bei der vorliegenden Ausführungsform 0,5 ist.

Eine Zahl FR, die den Anteil von Rahmen darstellt, welche LPC-Parameter tragen, wird an den Addierer 56 angelegt. Der Addierer 56 ist dazu eingerichtet, jeden Rahmenabstand die Zahl FR zum Inhalt des zentralen Rechenregisters 58 zu addieren. Die Zahl FR und der Höchstinhalt A des zentralen Rechenregisters 58 sind so gewählt, dass FR/A = r ist. Folglich wird das zentrale Rechenregister für einen Anteil r der Rahmenabstände überlaufen. Durch Verwenden eines Überlaufsignals des zentralen Rechenregisters 58, um den Multiplexer 6 in 2 zu steuern, wird erreicht, dass ein Anteil r der Rahmen am Ausgang des Multiplexers 6 LPC-Koeffizienten trägt.

Die Verzögerungselemente 40 und 42 stellen vom Satz der Reflexionskoeffizienten &agr;^ k+1. verzögerte Sätze von Reflexionskoeffizienten &agr;^ k und &agr;^ k-1 bereit. Die Wandler 44, 50 und 46 berechnen Koeffizienten iK+1, iK und iK-1, die für die Interpolation geeigneter als die Koeffizienten &agr;^ k+1, &agr;^ k und &agr;^ k-1 sind. Nützliche Koeffizienten sind Log Area Ratios, Arcsinuse von Reflexionskoeffizienten, oder Linienspektralpaare. Der Interpolator 48 erlangt gemäß dem Ausdruck (ik+1[n] + iK-1[n])/2 interpolierte Werte i^ k[n] von den Werten iK+1[n] and iK-1[n].

Wenn das zentrale Rechenregister 58 überläuft, werden LPC-Koeffizienten übertragen, und wird der Selektor 52 dazu eingerichtet sein, den Satz von Vorhersagekoeffizienten iK zum Wandler 53 weiterzugeben. Wenn keine LPC-Koeffizienten übertragen werden, wird der Selektor 52 dazu eingerichtet sein, den interpolierten Wert i^ k zum Wandler 53 weiterzugeben. Der Wandler 53 wandelt den Satz von Vorhersagekoeffizienten i~ k in einen Satz von Vorhersagekoeffizienten &agr;' K um, die für das Filter 34 geeignet sind. Wie vorher erklärt wird die lokale Interpolation im Sprachcodierer 4 durchgeführt, um für jeden Subrahmen im Codierer 4 und im Decodierer 6 genau die gleichen Vorhersagekoeffizienten zu erhalten.

Im Steuermittel 30 nach 4 ist ein erster Eingang, der das Signal &agr;^ k+1 trägt, mit einem Eingang eines Verzögerungselements 60 und mit einem Eingang eines Wandlers 64 verbunden. Ein Ausgang des Verzögerungselements 60, der das Signal &agr;^ k trägt, ist mit einem Eingang eines Verzögerungselements 62 und mit einem Eingang eines Wandlers 70 verbunden. Ein Ausgang des Wandlers 64, der ein Ausgangssignal ik+1 trägt, ist mit einem ersten Eingang eines Interpolators 68 verbunden. Ein Ausgang des Wandlers 66, der ein Ausgangssignal ik-1 trägt, ist mit einem zweiten Eingang des Interpolators 68 verbunden. Der Ausgang des Interpolators 68, der ein Ausgangssignal i^ k trägt, ist mit einem ersten Eingang eines Entfernungsrechners 72 und mit einem ersten Eingang eines Selektors 80 verbunden. Ein Ausgang des Wandlers 70, der ein Ausgangssignal ik trägt, ist mit einem zweiten Eingang des Entfernungsrechners 72 und mit einem zweiten Eingang des Selektors 80 verbunden.

Ein Eingangssignal R des Steuermittels ist mit einem Eingang eines Berechnungsmittels 74 verbunden. Ein erster Ausgang des Berechnungsmittels 74 ist mit einer Steuereinheit 76 verbunden. Das Signal am ersten Ausgang des Berechnungsmittels 74 stellt den Anteil r der Rahmen dar, die LPC-Parameter tragen. Folglich ist dieses Signal ein Signal, das die Bitrateneinstellung darstellt. Ein zweiter und dritter Ausgang des Berechnungsmittels tragen Signale, die die Ankerbitrate darstellen, die in Abhängigkeit vom Signal R festgesetzt ist. Ein Ausgang der Steuereinheit 76, der das Schwellensignal t trägt, ist mit einem ersten Eingang eines Vergleichers 78 verbunden. Ein Ausgang des Entfernungsrechners 72 ist mit einem zweiten Eingang des Vergleichers 78 verbunden. Ein Ausgang des Vergleichers 78 ist mit einem Steuereingang des Selektors 80, mit einem Eingang der Steuereinheit 76 und mit einem Ausgang des Steuermittels 30 verbunden.

Im Steuermittel nach 4 stellen die Verzögerungselemente 60 und 62 aus dem Satz der Reflexionskoeffizienten &agr;^ k+1 verzögerte Sätze von Reflektionskoeffizienten &agr;^ k von &agr;^ k-1 bereit. Die Wandler 64, 70 und 66 berechnen Koeffizienten iK+1, iK und iK-1, die für die Interpolation geeigneter als die Koeffizienten &agr;^ k+1, &agr;^ k und &agr;^ k-1 sind. Der Interpolator 68 erlangt von den Werten iK+1 und iK-1 einen interpolierten Wert i^ k.

Der Entfernungsrechner 72 bestimmt ein Entfernungsmaß d zwischen dem Satz von Vorhersageparametern ik und dem Satz von Vorhersageparametern i^ k, die aus iK+1 und iK-1 interpoliert wurden. Ein geeignetes Entfernungsmaß d ist durch gegeben. In (4) ist H(&ohgr;) das durch die Koeffizienten ik beschriebene Spektrum und H^ (&ohgr;) das durch die Koeffizienten i^ k beschriebene Spektrum. Das Maß d wird gemeinschaftlich verwendet, doch haben Versuche gezeigt, dass die leichter berechenbare L1-Norm vergleichbare Ergebnisse ergibt. Für diese L1-Norm kann Folgendes geschrieben werden:

In (5) ist die Anzahl der Vorhersagekoeffizienten durch das Analysemittel 22 bestimmt. Das Entfernungsmaß d wird durch den Vergleicher 78 mit der Schwelle t verglichen. Wenn die Entfernung d größer als die Schwelle t ist, gibt das Ausgangssignal c des Vergleichers 78 an, dass die LPC-Koeffizienten des gegenwärtigen Rahmens übertragen werden müssen. Wenn das Entfernungsmaß d kleiner als die Schwelle t ist, gibt das Ausgangssignal c des Vergleichers 78 an, dass die LPC-Koeffizienten des gegenwärtigen Rahmens nicht übertragen werden. Durch Zählen über einen vorbestimmten Zeitraum (z.B. über k Rahmen, wobei k einen typischen Wert von 100 aufweist) hinweg wird die Anzahl der Zeiten a, zu denen das Signal c die Übertragung der LPC-Koeffizienten angegeben hat, ein Maß a für den tatsächlichen Anteil der Rahmen, die LPC-Parameter umfassen, erhalten. Sofern die Parameter der gewählten Ankerbitrate entsprechen, ist dieses Maß a auch ein Maß für die tatsächliche Bitrate.

Das Steuermittel 30 ist dazu eingerichtet, ein Maß für die tatsächliche Bitrate mit einem Maß für die Bitrateneinstellung zu vergleichen, und die tatsächliche Bitrate einzustellen, falls dies erforderlich ist. Das Berechnungsmittel 74 bestimmt aus dem Signal R die Ankerbitrate und den Anteil r. Die Steuereinheit 76 bestimmt den Unterschied zwischen dem Anteil r und dem tatsächlichen Anteil a der Rahmen, die LPC-Parameter tragen. Um die Bitrate gemäß dem Unterschied zwischen der Bitrateneinstellung und der tatsächlichen Bitrate einzustellen, wird die Schwelle t erhöht oder verringert. Wenn die Schwelle t erhöht wird, wird das Unterschiedsmaß d die Schwelle t um eine kleinere Anzahl von Rahmen überschreiten, und wird die tatsächliche Bitrate verringert werden. Wenn die Schwelle t verringert wird, wird das Unterschiedsmaß d die Schwelle um eine größere Anzahl von Rahmen überschreiten, und wird die tatsächliche Bitrate erhöht werden. Die Aktualisierung der Schwelle t in Abhängigkeit vom Maß r für die Bitrateneinstellung und vom Maß b für die tatsächliche Bitrate wird durch die Steuereinheit 76 gemäß durchgeführt.

In (6) ist t' der ursprüngliche Wert der Schwelle, und sind c1 und c2 Konstante.

Im Decodiermittel 18 nach 5 ist ein Eingang, der ein Signal LPC trägt, mit einem Eingang eines Subrahmen-Interpolators 87 verbunden. Der Ausgang des Subrahmen-Interpolators 87 ist mit einem Eingang eines Synthesefilters 88 verbunden.

Ein Eingang des Sprachdecodiermittels 18, der ein Eingangssignal EX trägt, ist mit einem Eingang eines Demultiplexers 89 verbunden. Ein erster Ausgang des Demultiplexers 89, der ein Signal FI trägt, das den festen Codebuchindex darstellt, ist mit einem Eingang eines festen Codebuchs 90 verbunden. Ein Ausgang des festen Codebuchs 90 ist mit einem ersten Eingang eines Multiplikators 92 verbunden. Ein zweiter Ausgang des Demultiplexers 89, der ein Signals FCBG (feste Codebuchverstärkung) trägt, ist mit einem zweiten Eingang des Multiplikators 92 verbunden.

Ein dritter Ausgang des Demultiplexers 89, der ein Signal AI trägt, das den adaptiven Codebuchindex darstellt, ist mit einem Eingang eines adaptiven Codebuchs 91 verbunden. Ein Ausgang des adaptiven Codebuchs 91 ist mit einem ersten Eingang eines Multiplikators 93 verbunden. Ein zweiter Ausgang des Demultiplexers 89, der ein Signal ACBG (adaptive Codebuchverstärkung) trägt, ist mit einem zweiten Eingang des Multiplikators 93 verbunden. Ein Ausgang des Multiplikators 92 ist mit einem ersten Eingang eines Addierers 94 verbunden, und ein Ausgang des Multiplikators 93 ist mit einem zweiten Eingang des Addierers 94 verbunden. Der Ausgang des Addierers 94 ist mit einem Eingang des adaptiven Codebuchs und mit einem Eingang des Synthesefilters 88 verbunden.

Im Sprachdecodiermittel 18 nach 5 stellt der Subrahmen-Interpolator 87 für jeden der Subrahmen interpolierte Vorhersagekoeffizienten bereit und gibt diese Vorhersagekoeffizienten zum Synthesefilter 88 weiter.

Das Anregungssignal für das Synthesefilter ist einer gewichteten Summe der Ausgangssignale des festen Codebuchs 90 und des adaptiven Codebuchs 91 gleich. Die Gewichtung wird durch die Multiplikatoren 92 und 93 durchgeführt. Die Codebuchindizes FI und AI werden durch den Demultiplexer 89 aus dem Signal EX extrahiert. Die Gewichtungsfaktoren FCBG (feste Codebuchverstärkung) und ACBG (adaptive Codebuchverstärkung) werden ebenfalls durch den Demultiplexer 89 aus dem Signal EX extrahiert. Das Ausgangssignal des Addierers 94 wird in das adaptive Codebuch verschoben, um die Adaptierung bereitzustellen.

Fig. 1
4 ENC
Sprachcodierer
6 MUX
Multiplexer
8 TX
Übertragungsmittel
14 TX
Übertragungsmittel
16 MUX
Demultiplexer
18 DEC
Sprachdecodiermittel
Fig. 2
20 FR
Rahmungsmittel
22 LPC
linear vorhersagender Analysator
24 Q
Quantisierer
26 D
Verzögerungselement
28 D
Verzögerungselement
30 CONTR
Steuermittel
32 INT
Interpolator
36 SEARCH
Suchmittel
Fig. 3
40 D
Verzögerungselement
42 D
Verzögerungselement
48 INT
Interpolator
52 SEL
Selektor
54 CALC
Berechnungsmittel
58 ACCUMULATOR
zentrales Rechenregister
Fig. 4
60 D
Verzögerungselement
62 D
Verzögerungselement
64 C
Wandler
66 C
Wandler
68 INT
Interpolator
70 C
Wandler
74 CALC
Berechnungsmittel
76 CONTR
Steuereinheit
78 COMP
Vergleicher
80 SEL
Selektor
Fig. 5
87 I
Subrahmen-Interpolator
89 DE MUX
Demultiplexer
90 FCB
festes Codebuch
91 ACB
adaptives Codebuch
FI
fester Codebuchindex
AI
adaptiver Codebuchindex
FCBG
feste Codebuchverstärkung
ACBG
adaptive Codebuchverstärkung


Anspruch[de]
Sprachcodierer (4), umfassend

– ein Analysemittel (22) zum Bestimmen von Analysekoeffizienten aus einem Eingangssprachsignal; und

– ein Erzeugungsmittel (20) zum Erzeugen von Datenrahmen, die das Eingangssprachsignal darstellen;

dadurch gekennzeichnet, dass der Sprachcodierer (4) ein Steuermittel (30) umfasst, um aus einer Bitrateneinstellung einen Anteil der Datenrahmen zu berechnen, die mehr Informationen über die Analysekoeffizienten als eine verbleibende Anzahl der Datenrahmen tragen sollen, und um die Übertragung des Anteils der Datenrahmen und der verbleibenden Anzahl der Datenrahmen zu steuern.
Sprachcodierer (4) nach Anspruch 1, wobei das Steuermittel (30) ein Vergleichsmittel (76) zum Vergleichen eines Maßes für eine tatsächliche Bitrate mit einem Maß für die Bitrateneinstellung umfasst, wobei das Steuermittel (30) dazu eingerichtet ist, den tatsächlichen Anteil der Rahmen, die mehr Informationen über die Analysekoeffizienten als die verbleibenden Rahmen tragen, zu erhöhen, wenn das Maß für die tatsächliche Bitrate kleiner als das Maß für die Bitrateneinstellung ist, und den tatsächlichen Anteil der Rahmen, die mehr Informationen über die Analysekoeffizienten als die verbleibenden Rahmen tragen, zu verringern, wenn das Maß für die tatsächliche Bitrate größer als das Maß für die Bitrateneinstellung ist. Sprachcodierer (4) nach Anspruch 2, wobei das Steuermittel (30) dazu eingerichtet ist, jene Analyseparameter anzugeben, die ein Maß der Entfernung von Werten, welche von Analyseparametern interpoliert wurden, die in umgebenden Rahmen übertragen wurden, aufweisen, welches einen Schwellenwert überschreitet, um die Schwelle zu verringern, wenn das Maß für die tatsächliche Bitrate kleiner als das Maß für die Bitrateneinstellung ist, und um die Schwelle zu erhöhen, wenn das tatsächliche Maß für die Bitrate größer als das Maß für die Bitrateneinstellung ist. Sprachcodierer (4) nach Anspruch 1, wobei der Anteil der Rahmen, die mehr Informationen über die Analysekoeffizienten als die verbleibende Anzahl der Rahmen tragen, größer als oder gleich wie 0,5 und kleiner als 1 ist. Sprachcodierer (4) nach Anspruch 1, wobei der Sprachcodierer (4) dazu eingerichtet ist, als Reaktion auf eine grobe Bitrateneinstellung eine Rahmenlänge aus mehreren Rahmenlängen und eine Anzahl von Anregungssubrahmen pro Rahmen aus mehreren Anzahlen von Anregungssubrahmen pro Rahmen auszuwählen. Sprachcodierer nach Anspruch 5, wobei die ausgewählte Rahmenlänge 10 msek beträgt, und die ausgewählte Anzahl von Anregungssubrahmen pro Rahmen 4 beträgt. Sprachcodierer nach Anspruch 5, wobei die ausgewählte Rahmenlänge 15 msek beträgt, und die ausgewählte Anzahl von Anregungsrahmen pro Rahmen 6, 8 oder 10 beträgt. Sprachcodierungsverfahren, umfassend:

– das Bestimmen von Analysekoeffizienten aus einem Eingangssprachsignal;

– das Erzeugen von Datenrahmen, die das Eingangssprachsignal darstellen; dadurch gekennzeichnet, dass das Sprachcodierungsverfahren ferner Folgendes umfasst:

– das Berechnen aus einer Bitrateneinstellung eines Anteils der Datenrahmen, die mehr Informationen über die Analysekoeffizienten als eine verbleibende Anzahl der Datenrahmen tragen sollen; und

– das Steuern der Übertragung des Anteils der Datenrahmen und der verbleibenden Anzahl der Datenrahmen.
Sender (2) zum Übertragen von Datenrahmen, die ein Sprachsignal darstellen, wobei der Sender (2) Folgendes umfasst:

– einen Sprachcodierer (4) nach einem der Ansprüche 1 bis 7, um die Datenrahmen von einem Eingangssprachsignal zu erlangen.
Übertragungssystem, umfassend

– einen Sender (2) nach Anspruch 9; und

– einen Empfänger (12) zum Empfangen der Datenrahmen durch ein Übertragungsmedium (10), wobei der Empfänger (12) einen Sprachdecodierer (18) zum Erlangen eines wiederhergestellten Sprachsignals von den Datenrahmen umfasst.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com