-
Die
vorliegende Erfindung betrifft die Codierung durch Verfahren, die
Sprachcodierung nach dem Prinzip der verallgemeinerten Analyse durch Synthese
verwenden, und spezieller das unter der Bezeichnung Relaxed Code-Excited Linear Prediction
(RCELP) bekannte Verfahren und Ähnliches.
-
Eine
umfangreiche Klasse von Paradigmen der Sprachcodierung beruht auf
dem Konzept der prädiktiven
Codierung. Prädiktive
Sprachcodierer werden von Kommunikations- und Speichersystemen mit
mittleren bis niedrigen Bitraten sehr häufig verwendet.
-
Die
gebräuchlichste
und praktischste Vorgehensweise zur prädiktiven Sprachcodierung ist
das Schema der linearen Prädiktion
(Linear Prediction, LP), bei welchem die aktuellen Signalwerte durch eine
Linearkombination der zuvor gesendeten und decodierten Signalabtastwerte
geschätzt
werden. Zunächst
wurde eine kurzzeitige (Short-Term, ST) lineare Prädiktion,
welche eng mit der Spektralform des Eingangssignals zusammenhängt, für die Codierung
von Sprache verwendet. Darüber
hinaus wurde eine langzeitige (Long-Term, LT) lineare Prädiktion eingeführt, um
die harmonische Struktur des Sprachsignals zu erfassen, insbesondere
für stimmhafte Sprachsegmente.
-
Der
Ansatz "Analyse
durch Synthese" (Analysis-by-Synthesis, AbS) hat
effiziente Mittel für
eine optimale Analyse und Codierung des Restfehlersignals der kurzzeitigen
LP zur Verfügung
gestellt, welche die langzeitige lineare Prädiktion und eine Codebook-Excitation-Suche
(Codebuch-Anregungs-Suche) verwenden. Das Schema der AbS ist die
Grundlage für
eine umfangreiche Familie von Sprachcodierern, darunter Code-Excited
Linear Prediction (CELP) Codierer und Vocoder mit Selbsterregung (Self-Excited
Vocoders) (A. Gersho, "Advances
in Speech and Audio Compression",
Proc. of the IEEE, Bd. 82, Nr. 6, S. 900–918, Juni 1994).
-
Die
Langzeit-LP-Analyse, auch als "Pitch-Prädiktion" bezeichnet, am Codierer
und die Langzeit-LP-Synthese am Decoder haben sich im Einklang mit
den erzielten Fortschritten bei den Sprachcodierungsverfahren weiter
entwickelt. Zunächst
als ein Single-Tap-Filter (Filter mit einem Abgriff) modelliert,
wurde die Langzeit-LP dahingehend erweitert, dass Multi-Tap-Filter
(Filter mit mehreren Abgriffen) verwendet werden (R.P. Ramachandran und
P. Kabal, "Stability
and Performance Analysis of Pitch Filters in Speech Coders", IEEE Trans. on
ASSP, Bd. 35, Nr. 7, S. 937–948,
Juli 1987). Danach wurden "partielle
Verzögerungen" (Fractional Delays) eingeführt, unter
Verwendung von Oversampling und Subsampling mit Interpolationsfiltern
(P. Kroon und B.S. Atal, "Pitch
Predictors with High Temporal Resolution", Proc. ICASSP Bd. 2, April 1990, S.
661–664).
-
Diese
Verallgemeinerungen des ursprünglichen
Single-Tap-Filters
waren dazu bestimmt, die Erfassung der Langzeit-Redundanzen zu verbessern, die
durch die glottale Quelle bei stimmhafter Sprache hervorgerufen
werden. Je besser die Langzeitanpassung und je besser die LP-Anregungs-Codierung
ist, desto besser ist die Leistungsfähigkeit insgesamt. Die Genauigkeit
der Anpassung kann auch durch häufige
Auffrischungen der Langzeitparameter verbessert werden. Ein Multi-Tap-Langzeit-Prädiktor oder
eine höhere
Aktualisierungsrate für
die Langzeitfilter erfordert jedoch die Übertragung einer großen Anzahl
von Bits für
ihre Darstellung und bewirkt eine beträchtliche Erhöhung der
Bitrate. Diese Kosten können
im Falle von Codierern mit niedriger Bitrate unzulässig hoch
werden, so dass hier andere Lösungen
erforderlich werden.
-
Um
einige der Einschränkungen
des oben beschriebenen Ansatzes für die Langzeitprädiktion zu überwinden, wurde
das Konzept der Codierung nach dem Prinzip der Verallgemeinerten
Analyse durch Synthese (Generalized Analysis-by-Synthesis Coding)
eingeführt
(W.E. Kleijn et al., "Generalized Analysis-by-Synthesis
Coding and its Application to Pitch Prediction", Proc. ICASSP, Bd. 1, 1992, S. 337–340). Bei
diesem Schema wird das ursprüngliche
Signal vor dem Codieren modifiziert, mit der Nebenbedingung, dass
das modifizierte Signal dem ursprünglichen Signal perzeptual
nahe kommt oder mit diesem identisch ist. Die Modifikation erfolgt
derart, dass die Parameter des Codierers, genauer, die Parameter
der Pitch-Prädiktion,
Nebenbedingungen unterworfen werden, um sie an eine spezifische
Grundperioden-Kontur (Pitch-Kontur) anzupassen. Die Pitch-Kontur
wird durch Interpolation der Parameter der Pitch-Prädiktion
erhalten, die Frame für
Frame erfolgt, unter Verwendung einer Darstellung mit niedriger
Auflösung
für den
Pitch-Lag, was die für
die Darstellung der Parameter der Langzeitprädiktion benötigte Bitrate begrenzt.
-
Die
Modifikation, die zur Anpassung an die Pitch-Kontur vorgenommen
wird, wird Zeitskalamodifikation oder "Zeitanpassung" (Time Warping) genannt (W.E. Kleijn
et al., "Interpolation
of the Pitch Predictor Parameters in Analysis-by-Synthesis Speech
Coders", IEEE Trans.
on SAP, Bd. 2, Nr. 1, Teil I, Januar 1994, S. 42–54). Das Ziel der Prozedur der
Zeitskalamodifikation ist es, die hauptsächlichen Merkmale des ursprünglichen
Signals mit denjenigen des Beitrags der Langzeitprädiktion
zum Anregungssignal in Einklang zu bringen.
-
RCELP-Codierer
sind von den herkömmlichen
CELP-Codierern unter
Verwendung des oben beschriebenen Konzepts der Verallgemeinerten
Analyse durch Synthese in Anwendung auf die Pitch-Parameter abgeleitet,
wie in W.B. Kleijn et al., "The RCELP
Speech-Coding Algorithm",
European Trans. in Telecommunications, Bd. 4, Nr. 5, September-Oktober
1994, S. 573–582 beschrieben
ist.
-
Die
Hauptmerkmale der RCELP-Codierer sind folgende. Wie bei CELP-Codierern
werden zuerst Kurzzeit-LP-Koeffizienten
geschätzt
(im Allgemeinen einmal in jedem Frame, manchmal mit zwischenzeitlichen
Auffrischungen). Die Frame-Länge kann
normalerweise zwischen 10 und 30 ms variieren. In RCELP-Codierern
wird die Grundperiode (Pitch-Periode) ebenfalls Frame für Frame
geschätzt, mit
einem robusten Algorithmus der Pitch-Detektion. Danach wird eine
Grundperioden-Kontur (Pitch-Kontur) durch Interpolieren der Frame
für Frame
ermittelten Grundperioden erhalten. Das ursprüngliche Signal wird so modifiziert,
dass es an diese Pitch-Kontur angepasst ist. Bei älteren Implementierungen (US-Patentschrift
Nr. 5,704,003) wurde dieser Prozess der Zeitskalamodifikation an
dem Restfehlersignal der Kurzzeit-LP durchgeführt. Eine bevorzugte Lösung ist
jedoch, ein perzeptual gewichtetes Eingangssignal zu verwenden,
das durch Filtern des Eingangssignals durch ein perzeptuales Gewichtungsfilter
erhalten wird, wie in J. Thyssen et al., "A candidate for the ITU-T 4 kbit/s Speech
Coding Standard",
PROC. ICASSP, Bd. 2, Salt Lake City, Utah, USA, Mai 2001, S. 681–684, oder
in Yang Gao et al., "EX-CELP:
A Speech Coding Paradigm",
PROC. ICASSP, Bd. 2, Salt Lake City, Utah, USA, Mai 2001, S. 689–893 beschrieben
ist.
-
Das
modifizierte Sprachsignal kann dann durch inverses Filtern unter
Verwendung des inversen Vorverarbeitungs-Filters erhalten werden, während die
nachfolgenden Codierungsvorgänge
mit denjenigen identisch sein können,
die in einem herkömmlichen
CELP-Codierer ausgeführt
werden.
-
Es
ist anzumerken, dass das modifizierte Eingangssignal tatsächlich in
Abhängigkeit
von der Art der Filterung, die vor der Zeitskalamodifikation durchgeführt wird,
und in Abhängigkeit
von der in dem CELP-Codierer, welcher sich dem Zeitskalamodifikations-Modul
anschließt,
gewählten
Struktur berechnet werden kann.
-
Wenn
das perzeptuale Gewichtungsfilter, das für die feste Codebuchsuche des
CELP-Codierers verwendet wird, die Form A(z)/A(z/γ) hat, wobei A(z)
das LP-Filter und γ ein
Gewichtungsfaktor ist, beinhaltet die Ziel-Berechnung nur eine rekursive Filterung.
Für die
Codebuchsuche wird daher nur das Restfehlersignal benötigt. Im
Falle der RCELP-Codierung ist eine Berechnung des modifizierten
ursprünglichen
Signals möglicherweise
nicht erforderlich, falls die Zeitskalamodifikation an diesem Restfehlersignal
durchgeführt
worden ist. Perzeptuale Gewichtungsfilter der Form A(z/γ1)/A(z/γ2)
mit Gewichtungsfaktoren γ1 und γ2 liefern bekanntlich eine bessere Leistung,
und insbesondere adaptive perzeptuale Filter, d.h. mit variablen γ1 und γ2,
wie in der US-Patentschrift Nr. 5,845,244 beschrieben ist. Wenn
solche Gewichtungsfilter in der CELP-Prozedur verwendet werden,
werden durch die Zielberechnung zwei rekursive Filter eingeführt.
-
Bei
vielen CELP-Strukturen (z.B. R. Salami et al., "Design and description of CS-ACELP:
a toll quality 8 kb/s speech coder", IEEE Trans. on Speech and Audio Processing,
Bd. 6, Nr. 2, März
1998) speist der Prozess der Zwischenfilterung das aktuelle Restfehlersignal
in das LP-Synthesefilter mit dem vergangenen gewichteten Fehlersignal
als Speicher ein. Das Eingangssignal wird sowohl in die Berechnung des
Restfehlers als auch in die Aktualisierung des Fehlersignals am
Ende der Frame-Verarbeitung
einbezogen.
-
Im
Falle von RCELP führt
eine geradlinige Implementierung dieses Schemas zu der Notwendigkeit,
den modifizierten ursprünglichen
Eingang zu berechnen. Es können
jedoch äquivalente
Schemata abgeleitet werden, bei denen das modifizierte Eingangssignal
nicht benötigt
wird. Diese basieren auf der Verwendung entweder des modifizierten
Restfehlersignals, falls eine Zeitskalamodifikation auf das Restfehlersignal
angewendet wurde, oder des modifizierten gewichteten Eingangs, falls
die Zeitskalamodifikation auf die gewichtete Sprache angewendet wurde.
-
In
der Praxis berechnen die meisten RCELP-Codierer nicht wirklich das
modifizierte ursprüngliche
Signal unter Verwendung der oben dargestellten Art von Struktur.
-
Ein
Blockschaltbild eines bekannten RCELP-Codierers ist in 1 dargestellt.
Ein Analysemodul 1 der linearen prädiktiven Codierung (LPC) verarbeitet
zuerst das Eingangsaudiosignal S, um LPC-Parameter zu liefern, die
von einem Modul 2 verwendet werden, um die Koeffizienten
des Vorverarbeitungs-Filters 3 zu berechnen, dessen Übertragungsfunktion
mit F(z) bezeichnet wird. Dieses Filter 3 empfängt das
Eingangssignal S und führt
ein vorverarbeitetes Signal FS einem Pitch-Analysemodul 4 zu.
Die so geschätzten
Pitch-Parameter werden von einem Modul 5 verarbeitet, um
eine Pitch-Trajektorie abzuleiten.
-
Der
gefilterte Eingang FS in ein Zeitskalamodifikations-Modul 6 eingespeist,
welches auf der Basis der vom Modul 5 erhaltenen Pitch-Trajektorie das
modifizierte gefilterte Signal MFS liefert. Auf das modifizierte
gefilterte Signal MFS wird eine inverse Filterung unter Verwendung
eines Filters 7 mit der Übertragungsfunktion F(z)–1 angewendet,
was ein modifiziertes Eingangssignal MS liefert, das in einen herkömmlichen
CELP-Codierer 8 eingespeist wird.
-
Der
Strom digitaler Ausgangsdaten Φ des RCELP-Codierers, der von
einem Multiplexer 9 zusammengesetzt wird, enthält normalerweise
Quantifizierungsdaten für
die LPC-Parameter und den Pitch-Lag, die von den Modulen 1 und 4 berechnet wurden,
CELP-Codebuch-Indizes,
die von dem Codierer 8 erhalten wurden, und Quantifizierungsdaten für mit der
Langzeitprädiktion
und der CELP-Anregung zusammenhängende
Verstärkungen,
die ebenfalls von dem Codierer 8 erhalten wurden.
-
Anstelle
einer Funktion 7 der direkten inversen Filterung kann eine
Konvertierung des modifizierten gefilterten Signals in einen anderen
Wertebereich durchgeführt
werden. Diese Bemerkung gilt für den
hier erörterten
Stand der Technik und auch für die
vorliegende Erfindung, die weiter unten erörtert wird. Beispielsweise
kann ein solcher Wertebereich der Restsignalbereich (Residual Domain)
sein, wobei das inverse Vorverarbeitungs-Filter F(z)–1 in
Verbindung mit einer anderen Verarbeitung verwendet wird, wie etwa
der Kurzzeit-LP-Filterung des CELP-Codierers. Um das Problem konkreter
zu fassen, wird in der nachfolgenden Erörterung der Fall betrachtet,
in dem das modifizierte Eingangssignal tatsächlich berechnet wird, d.h.
wenn das inverse Vorverarbeitungs-Filter 7 explizit verwendet
wird.
-
Bei
den meisten AbS-Sprachcodierungsverfahren wird die Sprachverarbeitung
an Sprach-Frames durchgeführt,
die eine typische Länge
von 5 bis 30 ms aufweisen, welche der Periode der Kurzzeit-LP-Analyse
entspricht. Innerhalb eines Frames wird das Signal als stationär angenommen,
und die mit dem Frame verknüpften
Parameter werden konstant gehalten. Dies gilt normalerweise auch
für das Filter
F(z), und die Koeffizienten desselben werden daher Frame für Frame
aktualisiert. Es ist klar, dass die LP-Analyse mehr als einmal in
einem Frame durchgeführt
werden kann, und dass das Filter F(z) auch Subframe für Subframe
variieren kann. Dies ist zum Beispiel der Fall, wenn eine Interpolation
der LP-Filter innerhalb
eines Frames angewendet wird.
-
Im
Folgenden wird der Begriff "Block" als der Periodizität der Aktualisierung
der Parameter des Vorverarbeitungs-Filters entsprechend verwendet. Für Fachleute
ist klar, dass ein solcher "Block" normalerweise aus
einem LP-Analyse-Frame, einem Subframe eines solchen LP-Analyse-Frames
usw. bestehen kann, in Abhängigkeit
von der Architektur des Codecs.
-
Die
zu einem linearen Filter gehörende
Verstärkung
ist als das Verhältnis
der Energie seines Ausgangssignals zur Energie seines Eingangssignals
definiert. Es ist klar, dass eine hohe Verstärkung eines linearen Filters
einer niedrigen Verstärkung
des inversen linearen Filters entspricht, und umgekehrt.
-
Es
kann der Fall eintreten, dass die Vorverarbeitungs-Filter 3,
die für
zwei aufeinanderfolgende Blöcke
berechnet wurden, signifikant unterschiedliche Verstärkungen
aufweisen, während
die Energien der ursprünglichen
Sprache S in beiden Blöcken ähnlich sind.
Da die Filterverstärkungen
verschieden sind, sind die Energien der gefilterten Signale FS für die zwei
Blöcke
ebenfalls signifikant verschieden. Ohne Zeitskalamodifikation werden
alle Samples (Stichproben) des gefilterten Blockes mit höherer Energie
einer inversen Filterung durch das inverse lineare Filter 7 mit
niedrigerer Verstärkung
unterzogen, während
alle Samples des gefilterten Blockes mit niedrigerer Energie einer
inversen Filterung durch das inverse lineare Filter 7 mit
höherer
Verstärkung unterzogen
werden. In diesem Falle spiegelt das Energieprofil des modifizierten
Signals MS das der Eingangssprache S korrekt wider.
-
Die
Prozedur der Zeitskalamodifikation bewirkt jedoch, dass in der Nähe der Blockgrenze
ein Abschnitt eines ersten Blockes, welcher mehrere Samples (Stichproben)
enthalten kann, zu einem zweiten, benachbarten Block verschoben
werden kann. Die Samples in dem betreffenden Abschnitt des ersten
Blockes werden dann von einem für den zweiten
Block berechneten inversen Filter gefiltert, welches eine signifikant
verschiedene Verstärkung aufweisen
könnte.
Falls Samples eines modifizierten gefilterten Signals MFS von hoher
Energie somit einem inversen Filter 7 zugeführt werden,
das eine hohe Verstärkung
anstelle einer niedrigen Verstärkung
aufweist, tritt eine plötzliche
Energieerhöhung in
dem modifizierten Signal auf. Ein Zuhörer nimmt eine solche Energieerhöhung als
ein unangenehmes "Klick"-Geräusch wahr.
-
2 veranschaulicht
dieses Problem, wobei N eine Blocknummer, gd(N)
die Verstärkung
des Vorverarbeitungs-Filters 3 für Block
N und gi(N) = 1/gd(N)
die Verstärkung
des inversen Filters 7 für Block N bezeichnet.
-
Eine
Aufgabe der vorliegenden Erfindung ist es, eine Lösung bereitzustellen,
um die oben erörterte
Fehlanpassung zwischen inversen Vorverarbeitungs-Filtern (die explizit oder implizit
vorhanden sind) und dem einer Zeitskalamodifikation unterzogenen
Signal zu vermeiden, wobei diese Lösung durch den unabhängigen Verfahrensanspruch
1 und den unabhängigen
Vorrichtungsanspruch 9 beschrieben wird.
-
Die
vorliegende Erfindung wird auf der Codiererseite eines Sprachcodecs
verwendet, der eine Vorgehensweise vom Typ EX-CELP oder RCELP anwendet,
wobei das Eingangssignal durch einen Prozess der Zeitskalamodifikation
modifiziert wurde. Die Zeitskalamodifikation wird auf eine perzeptual
gewichtete Version des Eingangssignals angewendet. Danach wird das
modifizierte gewichtete Signal in einen anderen Wertebereich konvertiert,
z.B. zurück zum
Sprachbereich oder zum Restsignalbereich (Residual Domain), wobei
ein entsprechendes inverses Filter verwendet wird, direkt oder indirekt,
z.B. kombiniert mit einem anderen Filter.
-
Die
vorliegende Erfindung beseitigt Artefakte, die aus einer Fehlabstimmung
zwischen der einer Zeitskalamodifikation unterzogenen Sprache und
der Aktualisierung der Parameter des inversen Filters resultieren,
indem die zeitliche Steuerung der Aktualisierungen des inversen
Filters, das an der oben erwähnten
Konvertierung in einen anderen Bereich beteiligt ist, angepasst
wird.
-
Bei
der Prozedur der Zeitskalamodifikation wird vorteilhafterweise eine
Zeitverschiebungsfunktion berechnet, um die Blockgrenzen innerhalb
des modifizierten gefilterten Signals festzulegen, an welchen die
Aktualisierungen der Parameter des inversen Filters stattfinden
sollen. Die Prozedur der Zeitskalamodifikation verschiebt im Allgemeinen
diese Blockgrenzen bezüglich
ihrer Positionen in dem ankommenden gefilterten Signal. Die Zeitverschiebungsfunktion
berechnet die Positionen der Samples in dem modifizierten gefilterten
Signal, welche den Blockgrenzen des ursprünglichen Signals entsprechen,
um die Aktualisierungen der Parameter des inversen Vorverarbeitungs-Filters
an den geeignetsten Positionen durchzuführen. Durch das Aktualisieren der
Filterparameter an diesen Positionen wird die Synchronität zwischen
dem inversen Filter und dem einer Zeitskalamodifikation unterzogenen
gefilterten Signal aufrechterhalten, und die Artefakte werden beseitigt,
wenn das modifizierte gefilterte Signal in den anderen wertebereich
konvertiert wird.
-
Die
Erfindung schlägt
somit ein Sprachcodierungsverfahren mit den folgenden Schritten
vor:
- – Auswerten
eines Eingangsaudiosignals zur Bestimmung eines entsprechenden Satzes
von Filterparametern für
jeden Block einer Folge von Blöcken
des Audiosignals;
- – Filtern
des Eingangssignals durch ein perzeptuales Gewichtungsfilter, das
für jeden
Block durch den bestimmten Satz von Filterparametern zur Erzeugung
eines perzeptual gewichteten Signals definiert wurde;
- – Modifizieren
einer Zeitskala des perzeptual gewichteten Signals auf Basis der
Informationen über
den grundlegenden Zeitraum des Signals zur Erzeugung eines modifizierten
gefilterten Signals;
- – Festlegen
von Blockgrenzen innerhalb des modifizierten gefilterten Signals;
und
- – Verarbeiten
des modifizierten gefilterten Signals, um Codierungsparameter zu
erhalten.
-
Das
letztgenannte Verarbeiten beinhaltet einen dem perzeptualen Gewichtungsfilter
entsprechenden inversen Filtervorgang. Der inverse Filtervorgang
wird durch die aufeinanderfolgenden Sätze von Filterparametern definiert,
die an den festgelegten Blockgrenzen aktualisiert wurden.
-
Bei
einer Ausführungsform
des Verfahrens beinhaltet der Schritt des Auswertens des Eingangssignals
eine lineare Prädiktionsanalyse,
die auf aufeinanderfolgenden Signalframes ausgeführt wird, wobei jeder Frame
aus einer Anzahl p von aufeinanderfolgenden Subframes (p ≥ 1) besteht.
Jeder der "Blöcke" kann dann aus einem
dieser Subframes bestehen. Der Schritt des Festlegens von Blockgrenzen beinhaltet
dann das Bestimmen eines Vektors von p + 1 Werten für jeden
Frame zum Festlegen der Grenzen seiner p Subframes innerhalb des
modifizierten gefilterten Signals.
-
Die
lineare Prädiktionsanalyse
wird vorzugsweise an jedem der p Subframes mittels einer auf diesen
Subframe zentrierten Analysenfensterfunktion ausgeführt, wobei
der Schritt des Auswertens des Eingangssignals für den laufenden Frame ferner
eine vorausschauende lineare Prädiktionsanalyse
mittels einer asymmetrischen vorausschauenden Analysenfensterfunktion
beinhaltet, die eine Stütze
aufweist, die sich hinsichtlich der Stütze der Analysenfensterfunktion,
die auf den letzten Subframe des laufenden Frames zentriert ist,
nicht weiter in die Zukunft erstreckt, und die ein auf einen Zeitpunkt
ausgerichteten Maximum aufweist, der hinsichtlich des Mittelpunkts
dieses letzten Subframes vorauseilend festgelegt ist. Als Reaktion
darauf, dass der (p + 1)-te Wert des Vektors, der für den laufenden
Frame bestimmt wurde, vor dem Ende des Frames ankommt, wird der
inverse Filtervorgang vorteilhafterweise an der durch diesen (p
+ 1)-ten Wert festgelegten Blockgrenze aktualisiert, der durch einen
Satz von Filterkoeffizienten, die aus der vorausschauenden Analyse bestimmt
werden, zu definieren ist.
-
Ein
weiterer Aspekt der vorliegenden Erfindung betrifft einen Sprachcodierer,
der Mittel aufweist, die so beschaffen sind, dass mit ihnen das oben
umrissene Verfahren implementiert werden kann.
-
Weitere
Merkmale und Vorteile der Erfindung werden aus der nachfolgenden
Beschreibung nicht einschränkender
beispielhafter Ausführungsformen derselben
in Verbindung mit den beigefügten
Zeichnungen ersichtlich, wobei:
-
1,
die bereits erörtert
wurde, ein Blockschaltbild eines RCELP-Codierers entsprechend dem
Stand der Technik ist;
-
2,
die bereits erörtert
wurde, ein Zeitablaufdiagramm ist, welches das Problem des "Klick-Geräusches" veranschaulicht,
das bei manchen RCELP-Codierern des unter Bezugnahme auf 1 beschriebenen
Typs auftritt;
-
3 ein
zu 2 ähnliches
Diagramm ist, das die Funktionsweise eines RCELP-Codierers gemäß der vorliegenden
Erfindung zeigt;
-
4 ein
Blockschaltbild eines Beispiels eines RCELP-Codierers gemäß der vorliegenden
Erfindung ist;
-
5 ein Zeitablaufdiagramm ist, das Analysenfenster
zeigt, die bei einer speziellen Ausführungsform der Erfindung verwendet
werden.
-
3 zeigt,
wie das aus 2 ersichtliche Problem der Fehlanpassung
verringert werden kann.
-
Anstelle
von Blöcken
der inversen Filterung von einer konstanten Länge, die mit der Länge des Frames
oder Subframes des Eingangssignals zusammenhängt, wird eine inverse Filterung
mit variabler Länge
angewendet. Die Grenze, an welcher das inverse Filter F(z, N + 1)
das inverse Filter F(z, N) ersetzt, hängt von der Prozedur der Zeitskalamodifikation
ab. Wenn T0 die Position des ersten Samples (Stichprobe)
des Frames N + 1 in dem gefilterten Signal FS vor der Zeitskalamodifikation
bezeichnet, wird die entsprechende Sample-Position in dem modifizierten
gefilterten Signal in 3 mit T1 bezeichnet.
Diese Position T1 wird als ein Ausgang der
Prozedur der Zeitskalamodifikation bereitgestellt. Bei dem vorgeschlagenen
Verfahren wird während
des inversen Filtervorgangs das inverse Filter F(z, N)–1 durch
das nächste
inverse Filter F(z, N + 1)–1 beim Sample T1 anstelle des Samples T0 ersetzt.
Daher wird jedes Sample einer inversen Filterung durch das Filter
unterzogen, das dem perzeptualen Gewichtungs-Vorverarbeitungs-Filter entspricht,
welches verwendet wurde, um das Sample zu erzeugen, was das Risiko
einer Fehlanpassung der Verstärkung
verringert.
-
Falls
eine Verschiebung nach links festgestellt wird (T1 < T0),
müssen
die Samples des modifizierten Signals nach T1 durch
das inverse Filter gefiltert werden, das dem nächsten Frame des Eingangssignals
entspricht. Im Allgemeinen ist eine gute Approximation dieses Filters
bereits aufgrund einer vorausschauenden Analyse bekannt, die im
Stadium der LPC-Analyse durchgeführt
wurde. Durch die Verwendung des aus der vorausschauenden Analyse
resultierenden Filters wird in diesem Falle bei Anwendung der vorliegenden
Erfindung verhindert, dass eine zusätzliche Verzögerung hervorgerufen
wird.
-
Eine
solche Verbesserung des RCELP-Schemas wird in einem Codierer auf
die in 4 beispielhaft dargestellte Art und Weise erreicht.
Die Änderungen
gegenüber
dem in 1 dargestellten bekannten Aufbau betreffen die
Module der Zeitskalamodifikation und der inversen Filterung 16, 17.
Die anderen Elemente 1–5 und 8–9 wurden mit
denselben Bezugszeichen dargestellt, da sie im Wesentlichen dieselben
sein können
wie bei dem bekannten RCELP-Codierer.
-
Beispielsweise
kann der Codierer gemäß der Erfindung,
der in 4 dargestellt ist, ein Schmalband-Sprachcodierer mit
niedriger Bitrate sein, der die folgenden Merkmale aufweist:
- – Die
Frame-Länge
beträgt
20 ms, d.h. 160 Samples bei einer Samplingrate von 8 kHz;
- – jeder
Frame ist in p = 3 Subframes (Blöcke)
von 53, 53 bzw. 54 Samples unterteilt, mit einem Vorausschau-Fenster
von 90 Samples. 5 zeigt die verschiedenen
Analysenfenster, die im LPC-Analyse-Modul 1 verwendet
werden. Die durchgehenden vertikalen Linien sind die Frame- Grenzen, während die
gestrichelten vertikalen Linien die Subframe-Grenzen sind. Die symmetrischen,
mit durchgehenden Linien dargestellten Kurven entsprechen den Subframe-Analysenfenstern,
und die symmetrische, mit einer Strichpunktlinie dargestellte Kurve
stellt das Analysenfenster für
den vorausschauenden Teil dar. Dieses vorausschauende Analysenfenster
weist dieselbe Stütze
auf wie das zu dem dritten Subframe des Frames gehörende Analysenfenster,
ist jedoch auf den Vorausschaubereich zentriert (d.h. sein Maximum
ist nach vorn verschoben, so dass es auf den Mittelpunkt des ersten
Subframes des nächsten
Frames ausgerichtet ist);
- – von
dem LPC-Analyse-Modul 1 wird ein Modell der Kurzzeit-LP
der Ordnung 10 verwendet, um die Spektralhülle des
Signals darzustellen. Das entsprechende LP-Filter A(z) wird für jeden
Subframe berechnet;
- – das
Vorverarbeitungs-Filter 3 ist ein adaptives perzeptuales
Gewichtungsfilter der Form F(z) = A(z/γ1)/A(z/γ2),
mitwobei die ai die
Koeffizienten des unquantisierten LP-Filters 10-ter Ordnung sind.
Der Betrag der perzeptualen Gewichtung, der durch γ1 und γ2 gesteuert
wird, ist adaptiv abhängig
von der Spektralform des Signals, wie z.B. in der US-Patentschrift
Nr. 5,845,244 beschrieben ist.
-
Es
wurde bereits darauf hingewiesen, dass eine der Ursachen der Beeinträchtigung
des Signals die Differenz zwischen den Verstärkungen von zwei aufeinanderfolgenden
perzeptualen Gewichtungsfiltern ist. Je größer die Differenz ist, desto
größer ist das
Risiko einer hörbaren
Beeinträchtigung.
Obwohl eine signifikante Änderung
der Verstärkung
sogar dann eintreten könnte,
wenn ein nicht adaptives Gewichtungsfilter verwendet wird, d.h.
konstante Werte von γ1 und γ2, erhöht
das adaptive Gewichtungsfilter die Wahrscheinlichkeit dafür, dass
die zwei aufeinanderfolgenden Filterverstärkungen signifikant verschieden
sind, da sich die Werte von γ1 und γ2 recht schnell ändern können, was eine signifikante Änderung
der Verstärkung
von einem Frame zum nächsten
verursachen kann. Die vorgeschlagene Erfindung ist daher von besonderem
Interesse, wenn ein adaptives Gewichtungsfilter verwendet wird.
-
Die
gewichtete Sprache wird erhalten, indem das Eingangssignal S mittels
des perzeptualen Filters 3 gefiltert wird, dessen Koeffizienten,
die durch die ai, γ1 und γ2 definiert
sind, an den ursprünglichen Subframe-Grenzen
aktualisiert werden, d.h. an den digitalen Sample-Positionen 0,
53, 106 und 160. Die Langzeitanalyse, die vom Modul 4 an
der gewichteten Sprache vorgenommen wird, beinhaltet eine Klassifizierung
jedes Frames entweder als stationär stimmhaft oder nicht. Für stationäre stimmhafte
Frames wird die Pitch-Trajektorie zum Beispiel vom Modul 5 mittels
einer linearen Interpolation des Pitch-wertes, der dem letzten Sample
des Frames entspricht, und des Pitch-Wertes des Endes des vorhergehenden
Frames berechnet. Für
nichtstationäre Frames
kann die Pitch-Trajektorie
auf irgendeinen konstanten Pitch-Wert gesetzt werden.
-
Das
Modul der Zeitskalamodifikation 16 kann, falls erforderlich,
die Zeitskalamodifikation der gewichteten Sprache auf der Basis
von Grundperioden vornehmen, wie es bei RCELP-Codierern oft der Fall
ist. Die Grenze zwischen zwei Perioden wird in einem Bereich niedriger
Energie zwischen den zwei Pitch-Impulsen gewählt. Danach wird ein Zielsignal für die gegebene
Periode durch fraktionale Langzeitfilterung der vorhergehenden gewichteten
Sprache gemäß der gegebenen
Pitch- Trajektorie
berechnet. Die modifizierte gewichtete Sprache sollte mit diesem
Zielsignal übereinstimmen.
Die Zeitskalamodifikation der gewichteten Sprache besteht aus zwei Schritten.
Im ersten Schritt wird der Impuls der gewichteten Sprache verschoben,
so dass er mit dem Impuls des Zielsignals übereinstimmt. Der optimale Wert
der Verschiebung wird bestimmt, indem die normierte Kreuzkorrelation
zwischen dem Zielsignal und der gewichteten Sprache maximiert wird.
Im zweiten Schritt werden die Samples, die dem gegebenen Impuls
vorangehen und welche sich zwischen den letzten zwei Impulsen befinden,
einer Zeitskalamodifikation auf der gewichteten Sprache unterzogen.
Die Positionen dieser Samples werden in Abhängigkeit von dem Verschiebungsvorgang
des ersten Schrittes proportional komprimiert oder gestreckt. Die
kumulierte Verzögerung
wird auf der Basis des erhaltenen Wertes der lokalen Verschiebung
aktualisiert und wird am Ende jedes Subframes gespeichert.
-
Die
Ausgänge
des Moduls der Zeitskalamodifikation 16 sind (1) das der
Zeitskalamodifikation unterzogene gewichtete Sprachsignal MFS und
(2) die modifizierten Subframe-Grenzen, die in einem Vektor i0 mit
p + 1 = 4 Elementen i0[0], i0[1], i0[2], i0[3] dargestellt sind.
Diese modifizierten Subframe-Grenzen werden unter Verwendung der
gespeicherten kumulierten Verzögerungen
berechnet, mit der Nebenbedingung: 0 ≤ i0[0] < i0[1] < i0[2] < i0[3] ≤ 160. Falls die kumulierten Verzögerungen
alle null sind, sind die ursprünglichen
Positionen der Grenzen unverändert,
d.h. i0[0] = 0, i0[1] = 53, i0[2] = 106, i0[3] = 159.
-
Bei
der dargestellten Ausführungsform
erfolgt die Rückkehr
zum Sprachbereich mittels des inversen Filters 17, dessen Übertragungsfunktion F(z)–1 =
A(z/γ2)/A(z/γ1) ist, wobei die Koeffizienten ai, γ1 und γ2 an den durch den Vektor i0 gegebenen Sample-Positionen
auf die folgende Art und Weise geändert werden:
- – Für die Sample-Positionen
0 bis i0[0] – 1
werden die Filterkoeffizienten des dritten Subframes des vorhergehenden
Frames verwendet. Daher müssen
die Filter des dritten Subframes für die Dauer wenigstens eines
weiteren Subframes gespeichert werden;
- – für die Sample-Positionen
i0[0] bis i0[1] – 1
werden die Filterkoeffizienten des ersten Subframes des aktuellen
Frames verwendet;
- – für die Sample-Positionen
i0[1] bis i0[2] – 1
werden die Filterkoeffizienten des zweiten Subframes des aktuellen
Frames verwendet;
- – für die Sample-Positionen
i0[2] bis i0[3] – 1
werden die Filterkoeffizienten des dritten Subframes des aktuellen
Frames verwendet; und
- – für die Sample-Positionen
i0[3] bis 159 (falls i0[3] < 160)
werden die Filterkoeffizienten verwendet, die dem vorausschauenden
Analysenfenster entsprechen. Das so modulierte Filter ist eine gute Approximation
des Filters des ersten Subframes des nächsten Frames, da beide Filter
auf Analysenfenstern berechnet werden, die auf den nächsten Subframe
zentriert sind. Durch die Verwendung dieser Approximation wird die
Notwendigkeit umgangen, eine zusätzliche
Verzögerung einzuführen. Andernfalls
sind 54 zusätzliche Samples
nötig,
um die LP-Analyse des ersten Subframes des nächsten Frames durchzuführen.
-
Dementsprechend
wird jeder Bereich der gewichteten Sprache einer inversen Filterung
durch die richtigen Filter 17 unterzogen, d.h. durch die
inversen Filter der Filter, welche für die Analyse verwendet wurden.
-
Dadurch
werden plötzliche
Energiestöße aufgrund
einer Fehlabstimmung der Filter (wie in 2) vermieden.