-
TECHNISCHES GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft allgemein Systeme zum Übertragen von Ton über Paketvermittlungsnetze und
insbesondere den Decodier-/Wiedergabe-Teil von empfangenen Ton-Daten in solchen
Systemen.
-
ALLGEMEINER STAND DER TECHNIK
-
In
Paketvermittlungsnetzen, wie beispielsweise dem Internet, unterliegt
die Ankunftszeit von Datenpaketen einem signifikanten Verzögerungsjitter.
Außerdem
können
Datenpakete bei der Übertragung
verloren gehen oder vom Netz absichtlich verworfen werden, um Überlastprobleme
zu lösen.
Für Datenübertragungen
ohne strikte Anforderungen in Bezug auf die Übertragungszeit kann eine fehlerfreie Übertragung
mit einem Übertragungsprotokoll
hergestellt werden, das mit Quittungsaustausch (handshaking) und Übertragungswiederholung
arbeitet.
-
Wenn
Tonsignale, wie beispielsweise Sprache oder Audiodaten über ein
Paketvermittlungsnetz übertragen
werden, werden Signalrahmen, d.h. aufeinander folgende Gruppen von
Signalabtastungen (signal samples) zu Datenpaketen codiert, wobei
jedes Datenpaket einem oder mehreren Signalrahmen entspricht. In
Duplex-Kommunikationssystemen beispielsweise müssen diese Signalrahmen an
der Empfängerseite
ohne übermäßige Verzögerung wiedergegeben
werden. In diesem Fall stellt ein Übertragungsprotokoll mit Handshaking
und Übertragungswiederholung
meistens keine machbare Lösung
dar, um sicherzustellen, dass Signalrahmen für eine durchgehende Wiedergabe
verfügbar
sind.
-
Des
Weiteren stellt ein Verzögerungsjitter
für diese
Signale eine Quelle von Problemen dar: wenn die Verzögerung eines
Datenpakets dazu führt,
dass es für
eine durchgehende Wiedergabe von aufeinander folgenden Signalrahmen
zu spät
eintrifft, treten Probleme auf, die denjenigen ähneln, die auftreten, wenn
das Datenpaket verloren gegangen ist.
-
Paketübertragung
von Sprache ist eine lange Zeit eine wichtige Anwendung für Paketvermittlungsnetze
gewesen. Die meisten Lösungen
für die Probleme
mit Verzögerungsjitter
und verlorenen Paketen wurden in Verbindung mit Paketübertragung von
Sprache vorgeschlagen. Herkömmlicherweise wird
das Jitter-Problem durch den Einsatz eines so genannten Jitterpuffers
reduziert. In dem Jitterpuffer werden eingehende Pakete gespeichert
und in der richtigen Reihenfolge an den Decodierer und die Wiedergabevorrichtung
weitergeleitet. Der Jitterpuffer ist so konfiguriert, dass er einen
nützlichen
Kompromiss zwischen Wiedergabeverzögerung und der Anzahl von verlorenen/verzögerten Paketen
bietet. In dieser Auslegung müssen
zwei Probleme gelöst
werden:
- (a) Wie kann der Jitterpuffer kontinuierlich
in einem guten Betriebszustand gehalten werden, d.h. wie kann eine
kurze Wiedergabeverzögerung
bei gleichzeitigem Minimieren der Menge von Paketen, die für die Wiedergabe
zu spät
empfangen werden, sichergestellt werden?
- (b) Was ist zu tun, wenn ein Datenpaket verloren geht oder Ober
die Verzögerung
der Zwischenspeicherung hinaus verzögert wird?
-
Wir
nennen das erste Problem (a) das Zeitablaufproblem und bezeichnen
Verfahren, die sich mit dem ersten Problem beschäftigen, als Zeitablauf-Wiederherstellungsverfahren.
Wir nennen das zweite Problem (b) das Verlustrahmen-Problem und bezeichnen
Verfahren, die sich mit dem zweiten Problem beschäftigen,
als Verlustrahmen-Substitutionsverfahren. Im Folgenden werden Verfahren
des Stands der Technik zum Lösen
dieser zwei verschiedenen Probleme beschrieben.
-
Beim
Behandeln der Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution
in Verbindung mit paketvermittelter Übertragung von Ton nutzt und
verfeinert die vorliegende Erfindung bzw. eine ihrer Ausführungsformen
ein weiteres Verfahren, das ursprünglich für ein anderes Problem vorgeschlagen wurde:
Oszillator-Modellierung zur Zeitskalierung von Sprache. Dieses Verfahren
wird im Folgenden zusammengefasst.
-
Die
oben genannten bekannten Verfahren verwenden Techniken zum Mischen
oder Glätten
von Signalsegmenten, um Unterbrechungen im Ton für die Wiedergabe zu ver meiden.
Da gleiche oder ähnliche
Techniken von der vorliegenden Erfindung verwendet werden, werden
im Folgenden Techniken zum Mischen oder Glätten beschrieben.
-
I. Verfahren zur Zeitablauf-Wiederherstellung
-
Ein
guter Kompromiss für
die Konfiguration des Jitterpuffers ist eine Funktion der Statistik
des Verzögerungsjitters.
Da der Jitter zeitvariabel ist, wird der Jitterpuffer oft durchgehend
während
einer Übertragung
konfiguriert, z.B. unter Verwendung der ersten ein oder zwei Datenpakete
jedes Talk-Spurts oder aus Verzögerungsstatistiken,
die aus einem vorherigen Talk-Spurt geschätzt werden.
-
In
einem System, das während
einer Stummphase (silence) keine Datenpakete überträgt, leert sich der Jitterpuffer
als natürliche
Konsequenz, und am Beginn jedes neuen Talk-Spurts muss eine ausreichende
Pufferungsverzögerung
eingeführt
werden. Die Einführung
eines Paritäts-Bits
in jedem Datenpaket und die Änderung
seines Werts von einem Talk-Spurt zum nächsten gestatten die unmittelbare Erfassung
des Beginns eines Talk-Spurts im Empfänger. Dadurch kann der Start
der Wiedergabe dieses Talk-Spurts mit einem Intervall verzögert werden,
das als Sperrverzögerung
(retention delay) bezeichnet wird. Damit kann der Jitterpuffer aus
dem Unterlauf wieder in einen guten Betriebszustand gelangen.
-
Bei
einer plötzlichen
Erhöhung
der Übertragungsverzögerung besteht
die Gefahr, dass ein Unterlauf des Jitterpuffers eintritt. Das heißt, im Jitterpuffer
sind zum Zeitpunkt der Decodierung keine Datenpakete verfügbar, um
den Signalrahmen für
eine durchgehende Wiedergabe zu erzeugen. In dieser Situation kann
eine wiederholte Wiedergabe des Signalrahmens, der in dem letzten
Datenpaket in dem Jitterpuffer codiert ist, es dem Jitterpuffer
gestatten, wieder in einen guten Betriebszustand zu gelangen. In
Systemen mit Sprachcodierung und -decodierung kann die wiederholte
Wiedergabe ausgeführt
werden, indem für
den Sprach-Decodierer einige Eingangsparameter konstant gehalten
werden. In einfacheren Systemen bedeutet die wiederholte Wiedergabe
eine einfache Wiederholung des Signalrahmens.
US 5 699 481 offenbart ein leicht
verbessertes Verfahren, bei dem das Signal in Einheiten mit konstanter
Länge wiederholt
wird, wobei die Länge
in der Systemauslegung voreingestellt wird.
-
In
Systemen zur Sprachübertragung,
die Anregungsrahmen (excitation frames) übertragen, die in einen linearen
prädiktiven
Codierungs-(LPC) Filter eingegeben werden, kann die Wiederholung
oder Löschung
von Signalrahmen vorteilhafterweise im Anregungsbereich stattfinden,
wie zum Beispiel in
US 5 699
481 offenbart. Des Weiteren ist es für sprachspezifische Anwendungen
vorteilhaft, Regeln für
die Löschung
oder Wiederholung von Signalrahmen von einer Klassifizierung der
nicht-stummen Signalrahmen als gesprochen (voiced) oder nicht gesprochen
(unvoiced) unabhängig
sein zu lassen. Da eine Wiederholung oder Löschung von untergeordneten
Rahmen mit fester Länge
zu einer ernsten Verschlechterung der gesprochenen Sprache führen kann,
führt die
Implementierung in
US 5 699 481 eine
Modifizierung nur von nicht gesprochenen und stummen Sprachrahmen
durch.
-
Zusätzlich zu
dem Verzögerungsjitter
in der Übertragung
können
auch Differenzen zwischen Takten in den Sende- und Empfangseinrichtungen
einen Unter- oder Überlauf
des Puffers verursachen. Dieses Problem wird durch die vorliegende
Erfindung, aber auch durch den bisherigen Stand der Technik gelöst. Die
vorliegende Erfindung bietet jedoch eine bessere Qualität des sich
daraus ergebenden wiedergegebenen Tonsignals.
-
II. Verlustrahmen-Substitutionsverfahren
-
Es
wurden Verfahren entwickelt für
die Situation, in der Datenpakete verloren gehen, was bedeutet,
dass sie entweder vom Netz verworfen wurden oder den Empfänger später als
für die
durchgehende Wiedergabe des entsprechenden Signalrahmens erforderlich
erreichten, obwohl sich ein Jitterpuffer in einem guten Betriebszustand
befindet. Die für
diese Situation verwendeten Verfahren können im Allgemeinen als Möglichkeiten
gekennzeichnet werden, den verlorenen Signalrahmen durch eine Schätzung dieses
Signalrahmens an Hand von vorgegebenen Signalrahmen früher und
in einigen Fallen später in
dem Signal zu substituieren. Das einfachste dieser Verfahren ist
eine direkte Wiederholung des vorhergehenden Signalrahmens.
-
Ein
fortschrittlicheres Verfahren ist ein Verfahren, das einen linearen
langfristigen Prädiktor, d.h.
einen Abstands-Prädiktor
(pitch predictor) auf den vorhergehenden Signal rahmen, schätzt und
eine langfristige Prädikation
mit der gleichen Länge
wie ein Signalrahmen die Schätzung
des verlorenen Signalrahmens bilden lässt.
-
Ein
drittes Verfahren umfasst einen Zielabgleich mit den L letzten Abtastungen
des letzten Signalrahmens, der das Zielsegment ist, wobei L eine ganze
Zahl ist. Das Verfahren sucht dann an einem früheren Zeitpunkt in dem Signal
nach dem L-Abtastsegment, das diesem Ziel am besten entspricht,
und lässt
die Rahmensubstitution Abtastungen sein, die nach diesem (eventuell
skalierten) L-Abtastsegment folgen, um den gleichen summierten/quadrierten Wert
wie der letzte Signalrahmen zu ergeben. Da für eine vollständige Rahmensubstitution
die gleiche Anzahl von Abtastungen als die Rahmenlänge geschätzt werden
muss, berücksichtigen
einige Verfahren den Abgleich von quadratischen Fehlern der Ziels nur
mit L-Abtastsegmenten, die in dem Signal um wenigstens eine Rahmenlänge zurück liegen,
d.h. Segmente in dem zweiten bis letzten Signalrahmen und noch weiter.
-
Der
L-Abtastungs-Zielabgleich kann auf Kosten einer zusätzlichen
Verzögerung
auch für
die Schätzung
des verlorenen Signalrahmens aus späteren Signalrahmen in dem Signal
verwendet werden. Eine verfeinerte Schätzung für den verlorenen Signalrahmen
kann sich dann als eine glatte Interpolation zwischen der Schätzung aus
vorhergehenden Signalrahmen und der Schätzung aus späteren Signalrahmen
ergeben.
-
Beispiele
der oben beschriebenen Verfahren sind in "The Effect of Waveform Substitution
an the Quality of PCM Packet Communications", O.J. Wasem und andere; IEEE Trans.
Signal Proc., Band SP-36, Nr. 3, S. 432–448, 1988 beschrieben.
-
III. Oszillator-Modell für Zeitskalierung
von Sprache
-
In "Time-Scale Modification
of Speech Based an a Nonlinear Oscillator Model", G. Kubin und W.B. Kleijn, in Proc.
Int. Conf. Acoust. Speech Sign. Process., (Adelaide), S. 1453–1456, 1994,
das hiermit per Verweis integriert wird, wird ein Oszillator-Modell zur
Zeitskalierung vorgeschlagen. In dem Oszillator-Modell sind kurze
Segmente mit fester Lange eines Signals mit einem Zustandsvektor
von Abtastungen mit festen positiven Verzögerungen in Bezug auf die erste
Abtastung in dem Segment verknüpft.
Das Oszillator lator-Modell definiert ein Codebuch mit kurzen Signalsegmenten.
Mit jedem Signalsegment in diesem Codebuch ist ein Zustandsvektor
verbunden.
-
Wenn
das Codebuch des Oszillator-Modells für ein finites Signal, das als
die Verkettung von kurzen Segmenten definiert ist, alle diese kurzen
Segmente und ihre entsprechenden Zustandsvektoren enthält, dann
kann das Oszillator-Modell beginnend mit dem Zustand des ersten
kurzen Signalsegments für
jedes fehlerlose Realwelt-Signal das ursprüngliche Signalsegment durch
ein wiederholtes Auslesen eines nächsten kurzen Signalsegments
erneut generieren.
-
Für ein Signal
von infiniter Länge
kann das Oszillator-Modell das ursprüngliche fehlerlose Signal aus
dem Zustand des ersten kurzen Segments erneut generieren. Dies wird
erreicht, indem das Codebuch periodisch so aktualisiert wird, dass
es finiten untergeordneten Signalen entspricht. Die Zeitskalierung
folgt, wenn ohne Veränderung
der Größe oder des
Inhalts des Codebuchs die Aktualisierungsfrequenz für das Codebuch
geändert
wird. Eine schnellere Aktualisierungsfrequenz führt zu einer Zeitskalierung,
die kleiner als Eins ist, und eine langsamere Aktualisierung zu
einer Zeitskalierung, die größer als Eins
ist. Dies war die Anwendung des Oszillator-Modells, die in dem Artikel
vorgeschlagen wurde, auf den vorher verwiesen worden ist.
-
IV. Mischen und Glätten
-
Um
die Übergänge von
einem Signalrahmen zu dem substituierten Rahmen und von dem substituierten
Rahmen zu dem folgenden Signalrahmen zu verbessern, offenbart der
Artikel von O.J. Wasem und anderen, auf den oben verwiesen wurde,
die Verwendung einer glatten Interpolation zwischen zwei Signalen
in einem kurzen, aber festen (z.B. 8 Abtastungen) Übergangsbereich.
-
In
dem Artikel "Time-Scale
Modification of Speech Based an a Nonlinear Oscillator Model", auf den oben verwiesen
wurde, schlagen die Autoren den Einsatz von linearer prädiktiver
Glättung
vor, um ähnliche Übergangsbereiche
zu reduzieren. In diesem Kontext wird eine lineare prädiktive
Glättung
wie folgt erreicht: die Schätzung
der Signalfortsetzung wird durch einen LPC-Analysefilter gefiltert,
um ein Restsignal zu ergeben. Der Analysefilter wird mit einem Filterzustand
initialisiert, der aus dem Zustands-Codebuch des Oszillator-Modells
erhalten wird. Eine verfeinerte Schätzung der Signalfortsetzung
wird durch LPC-Synthese-Filtern des Restsignals erhalten, wobei
der Synthesefilter mit einem Zustand initialisiert wird, der aus
den letzten Abtastungen in dem Signal vor der Fortsetzung besteht.
-
Im
Glättungskontext
kann beobachtet werden, dass die sprachspezifische Zeitablauf-Wiederherstellung,
die in
US 5 699, 481 offenbart
ist und die Wiederholung oder Löschung
von untergeordneten Signalrahmen mit einer festen Länge in dem
Anregungsbereich eines CELP-(Code Excited Linear Prediction) Codierers
vornimmt, die lineare prädiktive Glättung einsetzt,
um Übergänge zwischen
untergeordneten Signalrahmen zu verbessern.
-
Somit
bestehen die Verfahren des Stands der Technik zur Zeitablauf-Wiederherstellung
und Verlustrahmen-Substitution kurz gesagt aus:
Verfahren ausschließlich zur
Wiederherstellung des Zeitablaufs, mit denen der Zeitablauf durch
Wiederholung oder Löschung
von Signalrahmen oder untergeordneten Rahmen, die eine feste, vorbestimmte Anzahl
von Abtastungen lang sind, modifiziert wird. Die lineare prädiktive
Glättung
wird eingeführt
als Ergebnis der Verarbeitung in dem Anregungsbereich eines CELP-Codierers.
In diesen Verfahren wird keine Signalanpassung oder Schätzungsoptimierung, wie
beispielsweise ein Zielabgleich oder eine Korrelationsmaximierung
vorgenommen.
-
Verfahren
ausschließlich
zur Substitution von verlorenen Rahmen, die verlorene Signalrahmen mit
Schätzungen
substituiert, die in der Länge
gleich sind. Diese Verfahren ändern
den Zeitablauf nicht. Sie verwenden Signalanpassung oder Schätzungsoptimierung,
wie beispielsweise Vektorabgleich oder Korrelationsmaximierung sowie
Mischen durch Überlappen/Addieren.
-
US 5,907,822 betrifft ein
Verfahren und eine Vorrichtung, die verlorene Signalpakete kompensieren,
um die Qualität
der Signalübertragung über drahtlose
Telekommunikationssysteme und Paketvermittlungsnetze zu verbessern.
Gemäß der Offenbarung
werden ein Verfahren und eine Vorrichtung zum Extrapolieren von
früheren
Signalhistorie- Daten zum
Einfügen
in fehlende Datensegmente bereitgestellt, um digitale Sprachrahmenfehler
zu verbergen.
-
EP 459 358 offenbart einen
Sprach-Decodierer, der eine Fehlerkorrektur-Decodierschaltung, eine Interpolationsschaltung
und eine Sprachwiedergabeschaltung umfasst. Wenn die Fehlerkorrektur-Decodierschaltung
einen Übertragungsfehler
erfasst, der nicht korrigiert werden kann, interpoliert die Interpolationsschaltung
zwischen Parameter von früheren
und künftigen
korrekten Rahmen, wobei Parameter aus einem aktuellen Rahmen wiederhergestellt
werden. Die Sprachwiedergabeschaltung gibt ein Sprachsignal auf
der Basis der interpolierten Parameter wieder.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Eine
Aufgabe der vorliegenden Erfindung ist es, eine kontinuierliche
Wiedergabe von Signalabtastungen an einem Empfängerende zu ermöglichen, wenn
ein digitalisiertes Tonsignal in der Form von Datenpaketen von einem
Paketvermittlungsnetz empfangen wird.
-
Eine
weitere Aufgabe ist es, eine bessere Qualität, wie sie von einem Zuhörer interpretiert
wird, der Wiedergabe des digitalisierten Tonsignals, das als Datenpakete
empfangen wird, im Vergleich mit der Qualität einer solchen Wiedergabe
bereitzustellen, die mit den gegenwärtig bekannten Techniken erreicht
wird.
-
Gemäß der vorliegenden
Erfindung werden die Aufgaben durch ein Verfahren, die Verwendung eines
Oszillator-Modells, eine Programm-Speichervorrichtung und eine Anordnung
erfüllt,
die alle verschiedene Gesichtspunkte der vorliegenden Erfindung
sind und die Merkmale aufweisen, wie sie in den Ansprüchen im
Anhang definiert sind.
-
Die
vorliegende Erfindung basiert auf dem Konzept des Durchführens von
Zeitexpansionen und/oder Zeitkompressionen von Signalrahmen statt auf
der Durchführung
von Wiederholungen oder Löschungen
von vollständigen
Signalrahmen oder von Einheiten von Signalrahmen mit einer vordefinierten Länge. Das
bedeutet, dass, wenn ein Bedarf vorhanden ist, einen Teil des Signals
zu wiederholen, die Länge
des wiederholten Signalteils kleiner oder größer als ein Signalrahmen gemacht
werden kann. Wenn ein Bedarf vorhanden ist, einen Teil des Signals
zu löschen,
kann die Länge
des gelöschten
Signalteils dementsprechend kleiner als ein Signalrahmen gemacht
werden. Außerdem
variiert die Zeitdauer des wiederholten oder gelöschten Signalteils mit der
Zeit, d.h. die Erfindung stellt eine zeitlich variierende Länge der
Zeitexpansionen oder Zeitkompressionen bereit. Demzufolge variieren
die Intervalle, mit denen Zeitexpansionen oder Zeitkompressionen
durchgeführt
werden, mit der Zeit und in Beziehung zu Längen der Zeitexpansionen oder
der Zeitkompressionen. Somit werden die Zeitexpansionen und die
Zeitkompressionen von Signalrahmen auf einer asynchronen Basis durchgeführt, da
die Länge der
Expansionen/Kompressionen und die Länge zwischen verschiedenen
Expansionen/Kompressionen mit der Zeit variieren.
-
Gemäß einer
Ausführungsform
der Erfindung sind die Längen
der Zeitexpansionen oder Zeitkompressionen Ergebnisse von Signalanpassung, wie
beispielsweise Vektorabgleich oder Korrelationsmaximierung, auf
dem Signal. Als Ergebnis dessen ändern
sich die Zeitintervalle, in denen Zeitexpansionen oder Zeitkompressionen
durchgeführt
werden, typischerweise mit der Zeit in Abhängigkeit von den daraus resultierenden
Längen
der zeitexpandierten oder zeitkomprimierten Signalrahmen.
-
Vorzugsweise
wird die Länge
einer Zeitexpansion oder einer Zeitkompression mit einer Auflösung einer
Abtastung oder einem Bruchteil einer Zeitdauer zwischen zwei aufeinander
folgenden Abtastungen definiert. Dies ermöglicht im Allgemeinen sehr
kleine oder gar keine Unterbrechungen an der Grenze zwischen einem
Signalrahmen und seiner Expansion. Die partielle Auflösung lässt sich
erreichen durch erneutes Abtasten des ursprünglichen Signals mit der gleichen
Abtastgeschwindigkeit, aber mit neuen Zeit-Instances, und dadurch
werden neue Abtastungen erhalten, die relativ zu den Abtastungen des
ursprünglichen
Signals partiell verzögert
sind, d.h. jede Abtastung wird mit einer Zeitdauer verzögert, die
geringer ist als die Zeitdauer zwischen zwei aufeinander folgenden
ursprünglichen
Abtastungen.
-
Es
wird bevorzugt, die Entscheidungen, Zeitexpansionen und Zeitkompressionen
auszuführen, auf
Echtzeit-Beobachtungen und Statistiken aus dem Jitterpuffer zu basieren.
Diese Echtzeit-Beobachtungen und Statistiken, die beim Überwachen
des Jitterpuffers beobachtet werden, enthalten zum Beispiel die
Anzahl der Datenpakete in dem Puffer, die kurz- und langfristigen
Abweichungen von Paketen in dem Puffer, und den kurz- und langfristigen
Prozentsatz von verlorenen Paketen.
-
Sobald
eine Anzahl von aufeinander folgenden Signalrahmen am Decodierer
verfügbar
ist, wo die Anzahl von Rahmen zeitabhängig ist, und basierend auf
der Echtzeit-Statistik aus dem Jitterpuffer wird vorzugsweise eine
Kompression von zwei oder mehr Rahmen versucht. Dies kann oder kann
nicht zu einem komprimierten Signalrahmen führen, der kürzer als die Summe der Längen der
für die
Kompression eingegebenen Signalrahmen ist. Die Längendifferenz kann eine partielle
Anzahl von Abtastungen sein und ist von der Signalanpassung der
tatsächlichen
Signalrahmen abhängig.
Wenn durch die Signalanpassung kein komprimierter Signalrahmen mit
glatten Übergängen produziert
werden kann, wie durch einen Schwellenwert in z.B. einem Korrelationsmaß oder einem
Vektorabgleich definiert, bleiben die Signalrahmen unverändert. Dieser
Schwellenwert wird vorteilhafterweise mit der Zeit angeglichen, um
ein weniger kritisches Kriterium für die Kompression zu berücksichtigen,
je näher
der Jitterpuffer am Überlaufen
ist. Des Weiteren kann der Schwellenwert in Abhängigkeit von einer Klassifizierung
der Signalrahmen variieren. Für
Sprache wären
die Signalklassen mit verschiedenen Schwellenwerten für die Kompression
typischerweise: gesprochen, nicht gesprochen, Übergang und stumm. Diese Einstellung
gestattet, dass einige Signalklassen nur dann komprimiert werden,
wenn der Jitterpuffer sehr nahe am Überlaufen ist, wogegen andere
Signalklassen sogar unter normalen Betriebsbedingungen für den Jitterpuffer
komprimiert werden, was zu einer Reduzierung der Wiedergabeverzögerung führt.
-
Es
wird bevorzugt, die Rahmenexpansion in jeder der folgenden Situationen
aufzurufen: Unterlauf des Jitterpuffers, Beinahe-Unterlauf des Jitterpuffers, zu
spätes
Eintreffen von Datenpaketen in dem Jitterpuffer und verlorenes Datenpaket.
Beim Aufrufen der Rahmenexpansion muss keine explizite Entscheidung
Ober die auftretende Situation getroffen werden. Die Expansion ist
iterativ wie folgt. Bei jeder Iteration wird der Signalrahmen mit
einer signalabhängigen
und möglicherweise
partiell richtigen Anzahl von Abtastungen expandiert. Diese Abtastungen
sind eine manchmal verstärkungsskalierte
Version des nacheilenden Teils des letzten Rahmens. Zum Ende der
Wiedergabe dieser expandierten Abtastungen hin, wo die Zeit von
der Decodierer-Verarbeitungszeit abhängig ist, wird der Jitterpuffer
geprüft,
um herauszufinden, ob gute Betriebsbedingungen wieder hergestellt
worden sind, d.h. ob der Jitterpuffer sich nicht mehr im Unterlauf
befindet, oder ob ein verspätetes Datenpaket
eingetroffen ist.
-
Wenn
gute Betriebsbedingungen wiederhergestellt worden sind, kann die
Wiedergabe ohne Unterbrechung an der Grenze zwischen dem expandierten
Signalrahmen und dem nächsten
Signalrahmen fortgesetzt werden. Dies gilt, da jede Iteration der Rahmenexpansion
eine manchmal verstärkungsskalierte
Version des nacheilenden Teils des letzten expandierten Rahmens
produziert; von da aus kann ein Übergang
zum nächsten
Signalrahmen immer ohne Unterbrechungen mit Hilfe einer glatten
Verstärkungsskalierung
(smooth gain scaling) des nächsten Signalrahmens
erfolgen.
-
Anderenfalls,
wenn das verspätete
Datenpaket immer noch nicht am Jitterpuffer angekommen ist, und
wenn irgendein Datenpaket, das nach dem letzten Datenpaket folgt,
an dem Jitterpuffer angekommen ist, wobei der Signalrahmen dem verspäteten und
abwesenden entspricht, kann das Datenpaket als verloren erklärt werden.
Die Rahmenexpansion, die an diesem Punkt bereits teilweise wiedergegeben
worden ist, ist in dieser Situation tatsächlich eine Substitution eines
verlorenen Rahmens.
-
Die
Substitution für
einen verlorenen Signalrahmen ist für den ersten Teil gleich einer
Zeitexpansion des vorherigen Signalrahmens: eine Verlustrahmen-Situation
wird nicht von einem Puffer-Unterlauf, einem Beinahe-Unterlauf des
Puffer oder einer Situation eines verspäteten Pakets unterschieden,
bis eine vordefinierte Anzahl von Signalrahmen, z.B. eine, die zur
Zukunft des Signals in Bezug auf den aktuell wiedergegebenen Rahmen
gehört,
am Empfänger
verfügbar
ist. Die Länge
eines Substitutionsrahmens ist nicht auf die Länge der Signalrahmen in dem Übertragungssystem
fixiert. Stattdessen wird die Länge
des Substitutionsrahmens so gewählt, dass
ein glatter Übergang
zu einem folgenden Rahmen erfolgen kann. Diese Wahl basiert auf
der Signalanpassung, wie beispielsweise Vektorabgleich oder Korrelationsmaximierung,
das Ergebnis kann eine Länge
des Substitutionsrahmens sein, der mit einer Genauigkeit eines Bruchteils
einer Abtastung spezifiziert ist.
-
In
der Substitution eines verlorenen Rahmens kann nicht nur der vorherige
Rahmen expandiert werden, sondern auch der nächste Rahmen kann vor dem Mischen
der zwei Rahmen expandiert werden.
-
Es
sollte angemerkt werden, dass die Rahmensubstitution nicht nur länger, sondern
auch kürzer
als die Länge
eines Signalrahmens des Paketübertragungssystems
werden kann, wobei Differenzen in einer Anzahl von Bruchteilen der
Verzögerung zwischen
zwei aufeinander folgenden Abtastungen spezifiziert werden. Daher
beruht diese Rahmen-Substitutionstechnik
erfindungsgemäß auf dem Zusammenwirken
mit der beschriebenen Zeitablauf-Wiederherstellungstechnik. Des
Weiteren wird eine Entscheidung, ob die Verarbeitung auf Grund einer
Zeitablauf-Wiederherstellungssituation oder einer Situation eines
verlorenen Datenpakets durchgeführt
wird, bis zum Ende der tatsächlichen
Situation der beiden verzögert,
wobei die einleitenden Teile der Verarbeitung, die in den zwei unterschiedlichen
Situationen durchgeführt
werden, die gleichen sind.
-
Der
iterierte Vektorabgleich für
die Rahmenexpansion in Übereinstimmung
mit der vorliegenden Erfindung kann als eine Anwendung der Oszillator-Modellierung
betrachtet werden. Diesbezüglich führt die
Erfindung vier neue Konzepte in die Oszillator-Modellierung ein.
Jedes dieser Konzepte nimmt eine Verfeinerung der Oszillator-Modellierung
vor, und jedes Konzept verbessert die Leistung der kombinierten
Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution in Übereinstimmung
mit der Erfindung. Des Weiteren kann jedes Konzept getrennt oder
in Kombination mit den anderen genutzt werden. Die Konzepte lauten
wie folgt:
- – Zustände des Oszillator-Codebuchs
resultieren nicht nur aus ganzzahligen Abtastperioden-Verzögerungen,
sondern auch partiellen Verzögerungen,
d.h. Verzögerungen
mit einer Auflösung
eines Bruchteils der Zeit zwischen zwei aufeinander folgenden Abtastungen.
- – Die
Segmente in dem Oszillator-Modell weisen variable Langen auf und
bilden ein einleitendes oder nacheilendes Segment des Signals, aus dem
das Oszillator-Modell aufgebaut wurde.
- – Der
Vektorabgleich kann vorteilhafterweise einen Verstärkungsskalierungs-Abgleich
nutzen.
- – Eine
Periodizität
der iterierten Rahmenexpansion wird vermieden, indem das gleiche
Segment nur ein Mal für
die Expansion eines Rahmens verwendet wird.
-
Das
erfinderische Verfahren ist gemäß einer anderen
Ausführungsform
der Erfindung sowohl mit Mischen als auch prädiktiver Glättung zur Reduzierung von Unterbrechungen
kompatibel. Die entsprechende Wahl ist ein Kompromiss zwischen Qualität und rechnerischer
Komplexität.
Des Weiteren können
sowohl Mischen als auch prädiktive
Glättung gleichzeitig
verwendet werden, z.B. durch Mischen im Anregungsbereich gewisser
Codier-/Decodierschemata.
-
In
Bezug auf Mischen umfasst die vorliegende Erfindung mehrere verschiedene
Ausführungsformen,
die jeweils auf unterschiedlichen erfinderischen Konzepten basieren:
Gemäß einer
Ausführungsform
wird das zeitlich späteste
Segment beim Mischen durch Überlappen/Addieren
vorzugsweise mit einer Anzahl oder partiellen Anzahl von Abtastungen
zeitlich verschoben, wodurch eine Korrelation oder ein Vektorabgleichs-Kriterium
für den überlappenden
Teil der zwei Segmente optimiert wird. Alternativ kann Mischen durch
Ersetzen des Codebuchs in einem Oszillator-Modell erfolgen. Beide
dieser Alternativen zum Mischen beruhen bei der Anwendung in einer
Situation einer Substitution eines verlorenen Rahmens auf dem Vorhandensein
einer effizienten Zeitablauf-Wiederherstellung, die, wie vorher
beschrieben, in dem erfinderischen Verfahren der vorliegenden Erfindung
enthalten ist.
-
Gemäß einer
anderen Ausführungsform kann
das Mischen vorteilhafterweise eine Korrelation oder ein Vektorabgleichs-Kriterium
optimieren, wenn das zeitlich späteste
Segment mit einer Verstärkung multipliziert
wird, wobei die Verstärkung
ein freier Parameter in der Optimierung ist. Von da aus kann ein glatter Übergang
zurück
zur Gleichverstärkung über den
restlichen Teil des nacheilenden Segments oder über die folgenden Signalrahmen
erhalten werden.
-
Gemäß der vorliegenden
Erfindung wirkt das Verfahren zum Manipulieren des Signals auf das
decodierte Signal im Zeitbereich als eine nachgeschaltete Verarbeitung,
die auf jedes Codier-/Decodiersystem anwendbar ist, oder auf ein
Zeitbereichs-Signal ein, das in dem Decodierprozess des Signals
eine Zwischenstellung (intermediate) einnimmt und für das angewendete
Codier-/Decodierverfahren spezifisch ist. Bei einigen Codierschemata
ermöglicht
diese Einwirkung auf ein Zeitbereichs-Signal in Zwischenstellung
eine Glättung über die
Signalrahmen ohne zusätzliche
rechnerische Komplexität.
Beispiele von Zeitbereichs-Signalen in Zwischenstellung, für die unser
Verfahren verwendet werden kann, sind das Anregungssignal in CELP-Codierem
oder diejenigen Wellenform-Interpolations-
oder Sinus-Codierer, die eine Synthese-Filterung eines Anregungssignals
vornehmen. Das Verfahren kann verfeinert werden, indem z.B. sprachspezifische
Signalmerkmale verwendet werden, wie beispielsweise Sprechen (voicing),
aber der grundlegende Algorithmus wird ohne irgendwelchen quellenspezifischen
Annahmen über
das Signal entwickelt; es kann eine beliebige Tonquelle sein, zum
Beispiel mit Sprache und Audiodaten.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Weitere
Merkmale und Vorteile der Erfindung gehen ohne Weiteres aus den
Ansprüchen
im Anhang und der folgenden ausführlichen
Beschreibung einer Reihe beispielhafter Ausführungsformen der Erfindung
in Verbindung mit den folgenden begleitenden Zeichnungen hervor,
in denen gleiche Bezugszeichen für
gleiche Merkmale verwendet werden:
-
1 zeigt
eine Übersicht über den
sendenden Teil eines Systems zum Übertragen von Ton über ein
Paketvermittlungsnetz;
-
2 zeigt
eine Übersicht über den
empfangenden Teil eines Systems zum Übertragen von Ton über ein
Paketvermittlungsnetz in Übereinstimmung mit
einer Ausführungsform
der vorliegenden Erfindung. Das System verwendet eine Kombination
aus Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution auf
den decodierten Signalrahmen;
-
3 zeigt
eine Übersicht über den
empfangenden Teil eines Systems zum Übertragen von Ton über ein
Paketvermittlungsnetz in Übereinstimmung mit
einer anderen Ausführungsform
der vorliegenden Erfindung. Das System verwendet eine Kombination aus
Zeitablauf-Wiederherstellung und Verlust rahmen-Substitution auf
Zeitbereichs-Signalrahmen, die in der Ton-Decodierung eine Zwischenstellung
einnehmen;
-
4 ist
ein Ablaufdiagramm, das den Gesamtablauf des Prozesses für die Kombination
aus Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution
in Übereinstimmung
mit den Ausführungsformen
veranschaulicht, auf die von 2 und 3 verwiesen
wird;
-
5 ist
ein Ablaufdiagramm des untergeordneten Prozesses für Zeitkompression
von Signalrahmen, auf den in 4 als Zeitkompressions-Unterprozess
verwiesen wird;
-
6 ist
ein Ablaufdiagramm des untergeordneten Prozesses zum Ausgeben von
Signalrahmen mit normaler aufeinander folgender Abfolge, auf den
in 4 als so genannter normaler Unterprozess verwiesen
wird;
-
7 ist
ein Ablaufdiagramm des untergeordneten Prozesses zum Mischen einer
Signalrahmen-Expansion mit einem künftigen, nicht aufeinander
folgenden Signalrahmen, auf den in 4 als Misch-Unterprozess
verwiesen wird;
-
8 ist
ein Ablaufdiagramm des untergeordneten Prozesses zur Expansion eines
Signalrahmens und Ausgabe der erhaltenen Expansion, auf den in 4 als
Expansions-Unterprozess verwiesen wird;
-
9 ist ein Ablaufdiagramm des untergeordneten
Prozesses zum Korrigieren der Verstärkungsskalierung von Signalrahmen
nach einer Expansion oder nach dem Mischen, auf den in 5 und 6 als
Korrektur-Unterprozess der Verstärkungsskalierung
verwiesen wird;
-
10a und 10b sind
schematische Darstellungen, die eine beispielhafte Zeitexpansion eines
Signalrahmens veranschaulichen;
-
11a, 11b und 11c sind beispielhafte schematische Darstellungen,
die veranschaulichen, wie eine partielle Auflösung erhalten wird; und
-
12a und 12b sind
schematische Darstellungen, die eine beispielhafte Zeitkompression
von zwei Signalrahmen veranschaulichen.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORMEN
-
1 ist
ein Blockschaltbild des sendenden Teils eines Systems zum Übertragen
von Ton über ein
Paketvermittlungsnetz. Der Ton wird von einem Mikrofon 10 aufgenommen,
um ein elektrisches Signal 15 zu produzieren, das abgetastet
und von einem A/D-Wandler 20 in ein digitales Format quantisiert wird.
Die Abtastgeschwindigkeit des Tonsignals ist eine Geschwindigkeit,
die der Bandbreite des Signals angemessen ist und beträgt typischerweise
8 oder 16 kHz für
Sprachsignale und 32, 44,1 oder 48 kHz für Audiosignale. Die Quantisierungsgenauigkeit
der digitalen Darstellung ist eine Genauigkeit, die der gewünschten
Qualität
der Übertragung
angemessen ist und beträgt
typischerweise 7 oder 8 Bit einer A- oder μ-Gesetz-Quantisierung, oder
13 oder 16 Bit einer gleichmäßigen Quantisierung.
Alternativ weist der A/D-Wandler 20 den Typ einer überabgetasteten
Differenz-Quantisierung (oversampled differential quantization)
auf. Das abgetastete Signal 25 wird in einen Ton-Codierer 30 eingegeben.
Der Ton-Codierer 30 produziert Datenpakete 35 mit
fester oder variabler Geschwindigkeit und mit fester oder variabler
Größe. Diese
Datenpakete enthalten ausreichende Informationen, damit ein angemessener
Ton-Decodierer ein Tonsignal wiedergeben kann, das eine Wiedergabe mit
ausreichender Qualität
des ursprünglichen
Tonsignals ist. Der Controller 40 fügt Reihenfolgenbildungs- und
Bestimmungsadress-Informationen zu diesen Paketen hinzu, was zu
neuen Datenpaketen 45 führt,
die für
die Übertragung über ein
Paketvermittlungsnetz geeignet sind.
-
In 2 und 3 werden
zwei verschiedene Ausführungsformen
der vorliegenden Erfindung gezeigt. Beide Ausführungsformen zeigen einen empfangenden
Teil eines Systems zum Übertragen von
Ton über
ein Paketvermittlungsnetz. Der Unterschied zwischen den zwei Ausführungsformen
von 2 und 3 liegt in der Position des
kombinierten Verfahrens zur Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution 80.
In beiden Systemen empfängt
ein Controller 50 Datenpakete von dem Paketvermittlungsnetz,
entnimmt Adressinformationen und platziert die Datenpakete angemessen
in einem Jitterpuffer 60. Der Jitterpuffer 60 ist
ein Speichermedium, typischer weise ein RAM, mit einer begrenzten physikalischen
Kapazität.
Gemäß der Erfindung
hält das
empfangende System die Anzahl von Datenpaketen in dem Jitterpuffer 60 niedrig,
aber ungleich Null, wodurch die Verzögerung in dem System durch Regulieren
der Geschwindigkeit, mit der Datenpakete 65 den Jitterpuffer 60 verlassen,
reduziert wird. Die Menge von Paketen in dem Jitterpuffer 60 beträgt typischerweise
ein bis vier Pakete. Diese Anzahl hängt von der Parametrisierung
der Erfindung ab, die später
beschrieben wird. Damit ein guter Betrieb für das gesamten System erreicht
wird, ist es wichtig, dass die physikalische Kapazität des Jitterpuffers 60 solcherart
ist, dass alle eingehenden Datenpakete 65 gespeichert werden
können,
d.h. dass nie ein Überlauf
des zeitgeregelten Systems eintritt. Die Ablauf-Wiederherstellung
und Verlustrahmen-Substitution 80 gibt ein regelmäßig abgetastetes
Tonsignal 85 typischerweise mit der gleichen Abtastgeschwindigkeit
wie das abgetastete Signal 25 in 1 aus, mit Ausnahme
der Unterschiede in den Sende- und Empfangstakten.
-
In
der in 2 veranschaulichten Ausführungsform decodiert ein Ton-Decodierer 70 Datenpakete 65 in
Signalrahmen 75, d.h. feste Längensegmente des decodierten
Tonsignals. Diese Signalrahmen 75 werden in die kombinierte
Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution 80 eingegeben.
Der Ton-Decodierer 70 arbeitet als Übersetzer, über den die Zeitablauf-Wiederherstellung und
Verlustrahmen-Substitution 80 auf Daten vom Jitterpuffer 60 in
Form eines Signalrahmens 75 zugreifen können. Das heißt, die
Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution 80 führen eine
Rahmenanforderung 76 vom Ton-Decodierer 70 durch.
Dies veranlasst den Ton-Decodierer,
eine Paketanforderung 67 von dem Jitterpuffer 60 durchzuführen. Der
Jitterpuffer 60 extrahiert ein Datenpaket 65 und
sendet es an den Ton-Decodierer 70, der es decodiert und
es als Signalrahmen 75 zurückgibt. Die Entscheidung durch
die Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution 80,
einen Signalrahmen abzurufen, basiert auf zusätzlichen Pufferzustands-Informationen 66 einer
Weise, die später zu
beschreiben ist.
-
In
der in 3 veranschaulichten Ausführungsform ist der Ton-Decodierer 70 von 2 durch einen
partiellen Ton-Decodierer 130 ersetzt worden. Der partielle
Ton-Decodierer decodiert
die Datenpakete 65 in Signalrahmen 135 eines Zeitbereich-Signals 145 in
Zwischenstellung. Diese Signalrahmen 135 sind für den Typ
des verwendeten Codier-/Decodier-Systems spezifisch. Typische Beispiele
der Signalrahmen 135, die von der Zeitablauf-Wiederherstellung
und Verlustrahmen-Substitution 80 empfangen werden, sind
das Anregungssignal in CELP-Decodierem oder diejenigen Wellenform-Interpolations- oder
Sinus-Codierer, die eine Synthese-Filterung eines Anregungssignals
vornehmen. Die Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution 80,
die auf diese Signalrahmen 135 einwirken, können hinsichtlich
der Struktur der in 2 gezeigten entsprechen, die
auf die Signalrahmen 75 vom Decodierer 70 in 2 einwirkt,
doch kann die Auswahl von vorteilhaften untergeordneten Verfahren
zur Expansion, zum Mischen und Glätten für die zwei Ausführungsformen
unterschiedlich sein. Entsprechend der Beschreibung unter Bezugnahme
auf 2 setzt die Ausführungsform von 3 Informationen
zur Rahmenanforderung 76, Paketanforderung 67 und
zum Pufferzustand 66 ein. Der restliche Teil 150 des
Ton-Decodierprozesses ist eine Abbildung von dem Zeitbereichs-Signal 145 in
Zwischenstellung auf ein regelmäßig abgetastetes
Tonsignal 155, welches mit dem abgetasteten Signal 85 der Ausführungsform
verglichen wird, die unter Bezugnahme auf 2 beschrieben
wurde. Dieser restliche Teil B 150 schließt den Decodierprozess
mit Hilfe der Nebeninformationen 136 ab, die von dem partiellen
Ton-Decodierer 130 empfangen wurden, d.h. der anfängliche
Teil A des Decodierprozesses.
-
In
beiden oben jeweils unter Bezugnahme auf 2 und 3 beschriebenen
Ausführungsformen
wandelt ein D/A-Wandler 90 jeweils das regelmäßig abgetastete
Tonsignal 85 und 155 in ein analoges elektronisches
Signal 95 um, das ein Tonwiedergabesystem 100,
z.B. einen Lautsprecher, antreibt, einen empfangenen Ton zu erzeugen.
-
Eine
Ausführungsform
der Entscheidungslogik der Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution 80 wird
unter Bezugnahme auf die Ablaufdiagramme von 4, 5, 6, 7, 8 und 9 beschrieben. In der Beschreibung unter der
Anmerkung wird NA(C) verwendet, wobei N
abhängig
vom Kontext eines von Folgendem angibt: eine Anzahl von Signalrahmen;
eine Indexzahl eines bestimmten Signalrahmens, eine Anzahl von Expansionen
eines Signalrahmens; oder eine Anzahl von Signalabtastungen. Die
Interpretation eines spezifischen N wird aus dem Kontext deutlich,
in dem das spezifische N erscheint. C bezeichnet den Typ der Klasse
des Signalrahmens, für
den die Zahl N relevant ist. Der nach N folgende Index (z.B. geschrieben als
NA, NB, NC und so weiter) wird nur zum Unterscheiden
verschiedener Ns voneinander verwendet, da das N in einem Kontext
nicht das gleiche N wie in einem anderen Kontext ist, d.h. zum Beispiel
stehen NA und NB nicht
in Beziehung zueinander.
-
In 4 wird
ein Gesamt-Ablaufdiagramm der Entscheidungslogik in der Zeitablauf-Wiederherstellung
und Verlustrahmen-Substitution 80 von 2 und 3 gezeigt.
Wie in dem Ablaufdiagramm gezeigt, ist die Zeitablauf-Wiederherstellung und
Verlustrahmen-Substitution eine Iteration über einen Signalrahmen mit
dem Index I. Die Iteration wird gestartet, 180, nachdem
eine voreingestellte oder adaptive Anzahl von Rahmen in dem Jitterpuffer zum
Beginn einer Kommunikation oder eines Talk-Spurts verfügbar sind.
Der Rahmen(I) wird zunächst
in eine Klasse C aus einer Reihe von Klassen klassifiziert, 200.
Die Klasse C beeinflusst das Verhalten des restlichen Teils des
Verfahrens in Bezug auf den Signalrahmen. Die vorteilhafte Wahl
von möglichen
Klassen hängt
von der Natur des Tonsignals ab. Für Sprachsignale ist eine Klassifizierung
in stumme, nicht gesprochene und gesprochene Signalrahmen von Vorteil.
Oft kann diese Klassifizierung direkt aus dem Datenpaket, d.h. dem
codierten Signalrahmen, auf eine Weise extrahiert werden, die dem
Fachmann bekannt ist. Falls gewünscht,
können Annahmen über das
Tonsignal vermieden werden, indem zugelassen wird, dass alle Signalrahmen
zu einer einzigen Klasse gehören,
d.h. der Block 200 wird ausgelassen. Wenn dann in Block 210 eine Klasse
und zeitabhängige
Anzahl von aufeinander folgenden Rahmen, bei einfacher Implementierung zwei
Rahmen (NA(C) = 1), an dem Empfänger sind, wird
der Zeitkompressions-Unterprozess 240 eingegeben. Die Zeitabhängigkeit
basiert auf der Echtzeit-Statistik aus dem Jitterpuffer. Anderenfalls
wird in Block 220 geprüft,
ob wenigstens der aktuelle Rahmen, Rahmen(I), an dem Empfänger ist.
Wenn dies der Fall ist, wird der normale Unterprozess 250 eingegeben.
Ist dies nicht der Fall, befindet sich entweder der Jitterpuffer
im Unterlauf, das Paket hat sich verspätet, oder es ist verloren gegangen.
Zu Beginn sollte der Rahmen(I) einige Male expandiert werden, um
dem Rahmen(I) mehr Möglichkeiten
zu geben, in Erscheinung zu treten, wobei jede Expansion in Block 270 durchgeführt wird.
Nach jeder Expansion wird ebenfalls in Block 270 geprüft, ob der
Rahmen(I) angekommen ist, in welchem Fall er wiedergegeben wird,
anderenfalls wird in Block 230 nach NP(C)
Expansionen eine Entscheidung getroffen, ob der Rahmen(I) mit irgendeinem
künftigen
Rahmen gemischt werden soll oder nicht, einschließlich der
möglichen Expansion
des einleitenden Teils dieses künftigen Rahmens
zusätzlich
oder als Alternative zum Erweitern von Rahmen(I-1). Das Ergebnis der Misch-Entscheidung
führt zum
Aufruf entweder des Misch-Unter- Prozesses 260 oder
des Expansions-Unterprozesses 270. Mischen bedeutet, dass
der Rahmen(I) als verloren betrachtet worden ist, und der Rahmenindex
I wird um eine Zahl erhöht,
die davon abhängig ist,
welche nächste
künftige
Rahmen sich an dem Empfänger
befunden hat, d.h. der Index I wird einmal oder mehrmals inkrementiert.
Von diesem Rahmen aus wird der Prozess wiederholt, und der gesamte Prozessfluss
kehrt vom Block 260 zum Block 200 zurück, in dem
noch eine weitere Klassifizierung des Rahmens mit dem inkrementierten
Index I durchgeführt
wird. Alternativ führt
eine Expansion im Block 270 zu der Ausgabe einer signalabhängigen Anzahl von
Abtastungen am Ende des letzten Rahmens, danach kehrt der gesamte
Prozessfluss zum Block 210 zurück, wo geprüft wird, ob irgendwelche Signalrahmen
zwischenzeitlich verfügbar
geworden sind.
-
5 ist
ein Ablaufdiagramm des untergeordneten Prozesses zur Zeitkompression
von Signalrahmen, auf den in 4 als Zeitkompressions-Unterprozess 240 verwiesen
wurde. Dieser untergeordnete Prozess versucht in Block 290 eine
Zeitkompression für
eine Anzahl von Signalrahmen, Rahmen(I) bis Rahmen(I + NB(C)), vorzunehmen, die eine Klasse aufweisen,
die vom Schwellenwert t(C) abhängig
ist. Wenn die Zeitkompression keiner Schwellenwertbedingung entspricht,
führt die
Zeitkompression zu einer einfachen Verkettung von Signalrahmen.
Die Zeitkompression wird des Weiteren zu einem späteren Zeitpunkt
in dieser Spezifikation beschrieben. Der sich daraus ergebende Signalrahmen
wird dann im Block 300 hinsichtlich einer Verstärkung glatt
korrigiert, die eventuell durch Expansion oder Mischvorgänge auf
früheren
Rahmen eingeführt
worden ist. Anschließend
wird der zeitkomprimierte Signalrahmen im Block 310 ausgegeben,
worauf der Rahmenindex I im Block 320 aktualisiert wird.
Ein Ausgabevorgang impliziert, dass die Entscheidungslogik auf eine
Zeitinstanz wartet, die von der Anzahl von ausgegebenen Abtastungen
abhängt,
aber kleiner ist als die Zeit, die der D/A-Wandler 90 braucht,
um diese Abtastungen wiederzugeben. Damit soll eine kontinuierliche
Wiedergabe mit Verarbeitungszeiten ungleich Null für den Ton-Decodierer 70 oder 130, 150 und
die Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution 80 sichergestellt
werden. Der Block 330 gibt an, dass die Entscheidungslogik
dann mit einem neuen Rahmen in 4 fortfährt, d.h.
der Fluss des untergeordneten Prozesses kehrt zum Block 200 des
gesamten Prozessflusses in 4 zurück.
-
6 ist
ein Ablaufdiagramm des untergeordneten Prozesses zum Ausgeben von
Signalrahmen mit normaler aufeinander folgender Abfolge, auf den
in 4 als so genannter normaler Unterprozess 250 verwiesen
wird. Dieser Unterprozess 250 beginnt unter Verwendung
des Unterprozesses 350 mit einer glatten Korrektur einer
Verstärkung,
die eventuell durch Expansions- oder Misch-Vorgänge auf früheren Rahmen eingeführt worden
ist. Wenn der normale Unterprozess eingegeben wird, befindet sich der
Rahmen(I) immer am Empfänger.
Dieser Unterprozess kann durch eine Parameterauswahl eine einfache
Ausgabe des Rahmens(I) sein. In einigen Fallen kann es jedoch von
Vorteil sein, die Ausgabe von einem zweiten Blick auf den Jitterpuffer
abhängig sein
zu lassen wie folgt: Im Block 360 werden die Klasse C,
die Anzahl NC der auf den Rahmen(I) folgenden
Rahmen, die im Jitterpuffer bereit sind, und die Jitterpuffer-Statistik
geprüft.
Danach wird in Abhängigkeit
von den geprüften
Parameter im Block 370 die Anzahl ND von
Zeitexpansionen bestimmt, die am Rahmen(I) vorzunehmen sind. Dann
wird im Block 380 geprüft,
ob diese Anzahl ND größer als 0 ist. Wenn sie es
nicht ist, wird der Rahmen(I) nicht expandiert, sondern vom Block 410 direkt
ausgegeben. Wenn er es ist, wird der Rahmen(I) im Block 390 ND Mal zeitexpandiert, und im Block 400 wird
registriert, ob das Ende des Rahmens(I) eine andere Verstärkung als
1 aufweist. Anschließend
wird der expandierte Rahmen im Block 410 ausgegeben. Nach Block 410 fährt der
Fluss des untergeordneten Prozesses mit Block 420 fort,
wobei der Rahmenindex in diesem Block inkrementiert wird. Block 430 gibt
an, dass die Entscheidungslogik dann mit einem neuen Rahmen in 4 fortfährt, d.h.
der Fluss des untergeordneten Prozesses kehrt zum Block 200 des
gesamten Prozessflusses in 4 zurück. Weitere
Details zur Expansion wird zu einem späteren Zeitpunkt in der Spezifikation
beschrieben.
-
7 ist
ein Ablaufdiagramm des untergeordneten Prozesses zum Mischen einer
Signalrahmen-Expansion mit einem künftigen, nicht darauf folgenden
Signalrahmen, auf den in 4 als Misch-Unterprozess 260 verwiesen
wird. Im Block 450 wird der letzte ausgegebene Rahmen mit
I1 indexiert, und dann wird im Block 460 der nächste Rahmen
am Empfänger
mit I2 indexiert. Dann wird im Block 470 der letzte Rahmen(I1)
unter Verwendung des gleichen Expansionsprozesses wie im Block 390 von 6 zeitexpandiert.
Alternativ werden sowohl der Rahmen(I1) als auch der Rahmen(I2)
unter Verwendung des Expansionsprozesses 390 zeitexpandiert.
Der expandierte Rahmen(I1) wird dann im Block 480 mit dem
Rahmen(I2) gemischt, wobei der Rahmen(I2) entweder entweder expandiert
oder nicht expandiert ist, wie oben angegeben. Weitere Details zum
Mischen werden zu einem späteren
Zeitpunkt beschrieben. Das Mischen des Rahmens(I1) und des Rahmens(I2)
führt zu
einem gemischten neuen Rahmen(I2), der eine andere Verstärkung als Eins
aufweisen kann. Die Verstärkung
des neuen Rahmens(I2) wird dann im Block 500 ausgegeben, worauf
der Index I2 im Block 510 inkrementiert wird. Der Block 520 gibt
an, dass die Entscheidungslogik dann mit einem neuen Rahmen in 4 fortfährt, d.h.
der Fluss des untergeordneten Prozesses kehrt zum Block 200 des
gesamten Prozessflusses in 4 zurück.
-
8 ist
ein Ablaufdiagramm des untergeordneten Prozesses zur Expansion eines
Signalrahmens und Ausgabe der erhaltenen Expansion, auf den in 4 als
Expansions-Unterprozess 270 verwiesen wird. Zuerst wird
im Block 540 geprüft,
ob auf den ersten Signalrahmen(I) gewartet wird (Expansion, wenn
der Index I gleich Eins ist). Wenn I gleich Eins ist, wird eine
Anzahl NE von nullwertigen Abtastungen im Block 570 ausgegeben,
um einen Signalrahmen ankommen zu lassen. Wenn der Rahmenanzahl-Index I angibt, dass
der letzte eine Rahmen angekommen ist, geschieht Folgendes: Der
Rahmen(I – 1)
wird im Block 550 zeitexpandiert, und dann wird im Block 555 die
Verstärkung
am Ende des Rahmens(I – 1),
wobei die Verstärkung
sich von Eins unterscheiden kann, registriert. Im Block 556 wird
ein Dämpfungsfenster
eingeführt,
wenn aufeinander folgende Expansionen des gleichen Rahmens ausgeführt worden
sind, wobei der Grund hierfür
ist, das Signal nach einiger Zeit stumm zu schalten, wenn keine
neuen Signalrahmen mehr von Jitterpuffer 60 empfangen werden
können.
Dann wird der expandierte Rahmen(I – 1) im Block 560 ausgegeben.
Schließlich
gibt der Block 580 an, dass die Entscheidungslogik dann
mit einer neuen Einsicht in den Jitterpuffer 60 fortfährt, d.h.
dass der Fluss des untergeordneten Prozesses dann zum Block 210 des
gesamten Prozessflusses in 4 zurückkehrt.
-
9 ist ein Ablaufdiagramm des untergeordneten
Prozesses zum Korrigieren der Verstärkungsskalierung von Signalrahmen
nach einer Expansion oder nach dem Mischen, auf den in 5 und 6 als
Korrektur-Unterprozess der Verstärkungsskalierung 300 verwiesen
wird. Zuerst wird im Block 600 geprüft, ob eine Verstärkung, die
sich vom Wert 1,0 unterscheidet, für den Rahmen(I – 1) registriert
worden ist. Wenn dies der Fall ist, werden Abtastungen des Rahmens(I)
mit einem Faktor multipliziert, wobei der Faktor zum Beginn des
Rahmens(I) mit der Verstärkung
am Ende des Rah mens(I – 1) gleichgesetzt
wird, und wobei der Faktor am Ende des Rahmens(I) mit 1,0 gleichgesetzt
wird. Für
in Zwischenstellung befindliche Abtastungen des Rahmens(I) wird
eine glatte Interpolation zwischen diesen Faktorwerten durchgeführt, d.h.
Anfangs- und End-Faktorwerten.
Die beschriebene so genannte glatte Verstärkungsskalierung des Rahmens(I)
wird im Block 610 durchgeführt. Der untergeordnete Prozess
fährt dann
mit Block 620 fort. Wenn der Block 600 erfasst,
dass für
den Rahmen keine von 1,0 verschiedene Verstärkung registriert worden ist,
fährt der
untergeordnete Prozess direkt mit Block 620 fort. Für lange
Signalrahmen, z.B. 16 ms oder mehr, wird der Korrektur-Unterprozess
der Verstärkungsskalierung
vorteilhafterweise in Übereinstimmung
mit der obigen Beschreibung durchgeführt. Für kürzere Signalrahmen kann es
jedoch von Vorteil sein, die Verstärkung während einer Zeitspanne von
mehr als einem Signalrahmen auf 1,0 zurückzusetzen. Dies kann durch
eine modifizierte Glättungsfunktion
und durch Modifizieren des Korrektur-Unterprozesses der Verstärkungsskalierung
von 9 erreicht werden, damit Abtastungen
am Ende des Rahmens(I) ebenfalls mit einem Faktor multipliziert
werden, der sich von 1,0 unterscheidet.
-
10a zeigt eine schematische Darstellung, die einen
nacheilenden Teil eines Signalrahmens veranschaulicht, der zeitexpandiert
werden soll. Die letzte Anzahl von Abtastungen innerhalb des mit
x gekennzeichneten Bereichs des nacheilenden Teils bildet einen
Zustand x, den so genannten echten Zustand (true state).
-
Im 10b wird der nacheilende Teil des Rahmens von 10a gezeigt, nachdem die Zeitexpansion durchgeführt worden
ist. Der echte Zustand x ist mit den verschiedenen Zuständen in
dem zu expandierenden Rahmen abgeglichen worden, und es wurde herausgefunden,
dass der Zustand y einen akzeptablen Signalpegel bereitstellt, der
mit den Abtastungen des echten Zustands x zusammenpasst. Das mit
dem Zustand y verknüpfte
Segment, das in 10b als Segment y bezeichnet
ist, wurde dann als Expansionssegment für die Zeitexpansion des Rahmens
verwendet, d.h. das Expansionssegment des Rahmens ist mit dem Segment
y identisch. Des Weiteren wurde das ausgewählte Segment so gewählt, dass
es die Abtastungen des echten Zustands x am Ende aufweist. Wenn
das Segment y als das Expansionssegment verwendet wird, gibt es
demzufolge keine Unterbrechungen in dem Übergang vom Expansionssegment
zu dem folgenden Rahmen.
-
11a–11c sind schematische Darstellungen, die das Konzept
der partiellen Auflösung veranschaulichen,
das von der vorliegenden Erfindung verwendet wird. 11a zeigt einen echten Zustand, für den ein
entsprechender Zustand gefunden werden muss, die Signalpegel für die Abtastungen T1–T4 dieses echten Zustands sind auf der y-Achse zu
sehen, d.h. 1, 2, 1, 0. Im Folgenden angenommen, dass der beste
entsprechende Zustand der in 11b gezeigte
Zustand ist. Wenn die Abtastungen T1–T4 des echten Zustands und die Abtastungen M1–M4 des am besten entsprechenden Zustands mit den
Signalpegeln ½,
1½, 1½, ½ miteinander
verglichen werden, ist die Signalanpassung weit davon entfernt,
perfekt zu sein, beispielsweise wenn ein mittlerer quadratischer
Fehler als ein Maß bei
der Signalanpassung verwendet wird. Jedoch können über die Durchführung einer
erneuten Abtastung Zustände
mit einer partiellen Verzögerung
von ½ erhalten werden.
Nach einer solchen erneuten Abtastung führt der Zustand von 11b zu einem Zustand mit einer Abtastfolge, wie
in 11c gezeigt, d.h. Abtastungen MF1–MF4 mit den Signalpegeln 1, 2, 1, 0. Somit
stellen die Signalanpassung des echten Zustands in 11a und der Zustand in 11c mit
einer partiellen Verzögerung
von ½ eine
perfekte Entsprechung bereit.
-
12a und 12b sind
schematische Darstellungen, die eine beispielhafte Zeitkompression
von zwei Signalrahmen veranschaulichen. In 12a sind
zwei aufeinander folgende nicht komprimierte Rahmen, Rahmen(1) und
Rahmen(2), gezeigt, oder besser gesagt, der nacheilende Teil von Rahmen(1)
und der einleitende Teil von Rahmen(2) sind gezeigt. Die Kriterien,
auf denen die Entscheidung basiert, die zwei Rahmen zu komprimieren,
und anhand derer die Länge
der Kompression entschieden wird, ist oben beschrieben worden. 12b zeigt den sich daraus ergebenden komprimierten Rahmen.
Wie aus 12a und 12b ersichtlich ist,
ist die Länge
t1, die den nacheilenden Teil des Rahmens(1)
aus der Abtastung "a" und den einleitenden
Teil des Rahmens(2) bis zur Abtastung "b" umfasst,
auf die Länge
t2 zeitkomprimiert worden, d.h. die Länge t2 zwischen der Abtastung "a" und "b" in 12b ist
kleiner als die Länge
t1 in 12a.
Weitere Details der Verarbeitungsschritte, die von dem Gesamtprozess
und den oben unter Bezugnahme auf 4–9 beschriebenen untergeordneten Prozessen
durchgeführt
werden, sowie Details, die sich auf die in 10–12 veranschaulichten schematischen Darstellungen
beziehen, werden im Folgenden beschrieben.
-
Gemäß der Erfindung
beruht die kombinierte Zeitablauf-Wiederherstellung und Verlustrahmen-Substitution
unter anderem auf der Zeitexpansion eines Signalrahmens. Die Zeitexpansion
von Signalrahmen wird durch die Entscheidungslogik in den Blöcken 390, 470 und 550 jeweils
in 6, 7 und 8 durchgeführt. Die
Zeitexpansion wird auch als ein Schritt in der Zeitkompression,
die im Block 290 von 5 durchgeführt wird,
auf eine Weise benötigt,
die zu einem späteren
Zeitpunkt ausführlicher spezifiziert
wird.
-
Die
in diesen Blöcken
aufgerufene Zeitexpansion ist im Wesentlichen identisch. Für die Zeitexpansion
können
wenigstens zwei Verfahren verwendet werden: Expansion eines Signalrahmens
unter Verwendung eines modifizierten Oszillator-Modells, und Expansion
eines Signalrahmens unter Verwendung von Abstands-Prädiktion.
Beiden dieser Verfahren ist gemeinsam, dass sie zu einer Zeitexpansion des
Signalrahmens mit einer signalabhängigen Anzahl von Abtastungen
führen.
Diese Abtastungen sind derart, dass mehrere, vorzugsweise 10 Abtastungen
am Ende des expandierten Rahmens mit einem Set von Abtastungen am
Ende des nicht expandierten Signalrahmens gleichgesetzt werden,
mit Ausnahme eines bekannten Verstärkungsfaktors. Dies ermöglicht das
Verfahren der Erfindung mittels der Korrektur der Verstärkungsskalierung
für den nächsten Rahmen
(Block 300 von 5 und 6), um eine
Fortsetzung der Wiedergabe des nächsten Rahmens
ohne Unterbrechung sicherzustellen, vorausgesetzt, dass dieser nächste Rahmen
an dem Empfänger
während
der Wiedergabe der Abtastungen auftritt, die zu dem zeitexpandierten
Rahmen des aktuell wiedergegebenen Signalrahmens gehören.
-
Zum
Zweck der Durchführung
einer Zeitexpansion im Kontext der kombinierten Zeitablauf-Wiederherstellung
und Verlustrahmen-Substitution in Übereinstimmung mit einer Ausführungsform
der vorliegenden Erfindung wird ein neues Oszillator-Modell, das
für die
vorliegende Erfindung angepasst ist, in Übereinstimmung mit Folgendem
definiert:
Die in dem Oszillator-Codebuch gespeicherten Segmente
sind alle nacheilende Segmente des zu expandierenden Signalrahmens.
Die Anzahl von Zuständen
und Segmenten im Codebuch ist von der Anzahl der verwendeten partiellen
Verzögerungswerte abhängig, z.B.
0, ¼, ½, ¾ Abtastung.
Für jeden
Verzögerungswert
wird eine erneute Abtastung vorgenommen. Die ersten (NG – NH) Zustände
und ihre entsprechenden Segmente stehen mit der ersten partiellen
Verzögerung
in Beziehung, die nächsten
(NG – NH) Zustände
und ihre entsprechenden Segmente stehen mit der nächsten partiellen Verzögerung in Beziehung
usw. Der erste Codebucheintrag für
eine partielle Verzögerung
enthält
die NG letzten Abtastungen des entsprechenden
erneut abgetasteten Signalsegments, der n'-te Codebucheintrag enthält die NG + (n – 1)
letzten Abtastungen des entsprechenden erneut abgetasteten Signalsegments,
und der letzte Codebucheintrag speichert die NH letzten
Abtastungen des entsprechenden erneut abgetasteten Signalsegments.
Für Sprachsignale
beträgt
NG vorteilhafterweise 20 Abtastungen und
NH beträgt
vorteilhafterweise 120 Abtastungen. Das Verfahren wird entsprechend
verwendet, wenn der einleitende Teil eines Signalrahmens expandiert
wird, wobei die in dem Codebuch gespeicherten Segmente einleitende
Segmente des Signalrahmens sind.
-
Jedes
Segment des Codebuchs ist mit einem Zustand mit einer festen Länge von
NI Abtastungen verbunden, wobei jeder Zustand
einem Eintrag des Codebuchs entspricht. Der mit dem ersten Segment verbundene
Zustand besteht aus den NG + 1 bis NG + NI letzten Abtastungen
des Signalrahmens, und im Allgemeinen besteht der Zustand, der mit
dem n'-ten Segment
verbunden ist, aus den NG + (n – 1) + 1
bis NG + (n – 1) + NI letzten
Abtastungen des entsprechenden erneut abgetasteten Signalrahmens.
Für Sprachsignale
beträgt
NI vorteilhafterweise 10.
-
In
einer einfachen Implementierung kann die erneute Abtastung auf 0
begrenzt werden. Jedoch können
durch die Verwendung eines Neuabtastungsschemas Segmente mit partieller
Verzögerung
erhalten werden. Um eine Unterbrechung an der Fortsetzung in den
nächsten
Rahmen zu vermeiden, werden künftige
Rahmen partiell mit dem gleichen Bruchteil erneut abgetastet. Zunächst kann
es als übermäßige rechnerische
Belastung scheinen, eine große
Anzahl von künftigen
Rahmen als Ergebnis eines einzelnen Expansionsprozesses erneut abzutasten.
Wie später erläutert wird,
können
partielle Verzögerungen
jedoch auch in den Zeitkompressions- und Mischprozessen eingesetzt
werden. Die rechnerische Last der Verwaltung von partiell verzögerten Abtastspuren (sampling
tracks) rechtfertigt sich dann aus der verbesserten Leistung aller
drei Operationen, und ein Bruchteil wie beispielsweise 1/2, 1/3
oder 1/4 kann in einigen Anwendungen zu einer Verbesserung der Leistung
führen,
die die erhöhte
rechnerische Komplexität
rechtfertigt.
-
Eine
Alternative dazu, dass der Oszillator immer das Segment, dessen
Zustandsvektor den NI letzten Abtastungen
des Signalrahmens am besten entspricht, unter Verwendung eines quadratischen Fehlermaßes wählt, besteht
darin, einen freien Verstärkungsfaktor
auf die Zustände
des Codebuchs anzuwenden, bevor die NI letzten
Abtastungen des Signalrahmens mit den Zuständen abgeglichen werden. Wenn
nach einer solchen Operation eine Übereinstimmung erzielt wird,
wird das Segment mit dem entsprechenden Zustand aus dem Oszillator-Codebuch ausgelesen
und mit dieser Verstärkung
multipliziert. Wie vorher unter Bezugnahme auf die oben genannten
untergeordneten Prozesse beschrieben, wird der Verstärkungsfaktor
des zeitexpandierten Teils des Signalrahmens registriert. Vorteilhafterweise
werden die oben beschriebenen zwei alternativen Verfahren zum Zustandsabgleich
kombiniert, indem das Abgleichverfahren gewählt wird, das den freien Verstärkungsfaktor
wählt,
sobald dies zu einem Verstärkungsfaktor
führt,
der kleiner als 1,0 ist, und indem anderenfalls das Abgleichverfahren
ohne irgendeine Verwendung eines freien Verstärkungsfaktors, d.h. mit einer
fixen Verstärkung
von 1,0 verwendet wird.
-
Der
Abgleich von Zustandsvektoren des Codebuchs mit den NI letzten
Abtastungen des Signalrahmens führt
im Allgemeinen nicht zu einer perfekten Übereinstimmung. Daher ist es
höchstwahrscheinlich,
dass eine Unterbrechung des Signals zwischen den ursprünglichen
Signalrahmen und seine Fortsetzung, d.h. seinen zeitexpandierten
Teil, eingeführt
wird. Wie oben unter Bezugnahme auf Verfahren des Stands der Technik
beschrieben, war es bisher bekannt, eine lineare prädiktive
Glättung
zum Reduzieren dieser Unterbrechung zu verwenden. Gemäß der vorliegenden
Erfindung gibt es jedoch eine rechnerisch einfachere Alternative
zur linearen prädiktiven
Glättung,
wie im Folgenden erläutert
wird. Der gewählte
Zustandsvektor, eventuell mit einem optimierten Verstärkungsfaktor,
ist eine enge Approximation an die NI letzten
Abtastungen des Signalrahmens, von dem aus die Expansion ohne irgendeine Unterbrechung
folgen soll. Indem ein glatter Überlappungs-Additions-Übergang
zwischen den NI letzten Abtastungen des
Signals und dem entsprechenden Zustandsvektor durchgeführt wird,
wird ein Übergang zu
dem Expansionssegment ohne Unterbrechung erreicht. Insbesondere
in der Ausführungsform
von 3 stellt dieses rechnerisch einfachere Verfahren eine
vorteilhafte Alternative zur linearen prädiktiven Glättung bereit.
-
Vorzugsweise
wird eine Einschränkung
auf die Segmentwahl des Oszillators angewendet: bei einer Iteration
wird verhindert, dass der Oszillator das gleiche Segment zum Auslesen
zweimal in einer Reihe wählt.
Der Grund für
diese Einschränkung
ist, eine Verschlechterung auf Grund einer eingeführten Periodizität des expandierten
Signals zu vermeiden. Alternativ kann eine Zeitexpansion mit klassischer
Abstands-Prädiktion
oder einer Abstands-Prädiktion
mit partieller Abstandsverzögerung
vorgenommen werden, ohne vom Umfang des Gedankens der vorliegenden
Erfindung abzuweichen.
-
Gemäß der Erfindung
wird die Verlustrahmen-Substitution durch Mischen eines Expansionssegments
mit einem künftigen
Signalrahmen abgeschlossen, das im Block 480 von 7 durchgeführt wird.
Wenigstens zwei Verfahren können
zum Mischen verwendet werden: Mischen durch Überlappen/Addieren mit maximaler
Korrelationsanpassung, oder Mischen durch Oszillator-Modellierung.
Diesen Verfahren ist gemeinsam, dass sie eine zeitliche Ausrichtung
des künftigen
Signalrahmens auf das Expansionssegment durchführen, um die Unterbrechung
des Übergangs
zwischen den beiden zu minimieren. Diese zeitliche Ausrichtung kann
eine Auflösung
aufweisen, die ein Bruchteil einer Abtastung ist.
-
In
der vorliegenden Erfindung besteht ein Überlappungs-Additions-Mischen
von zwei Segmenten über
m Abtastungen aus Folgendem:
- – Multiplizieren
der nacheilenden m Abtastungen des ersten Segments mit einem glatten
Fenster, das mit dem Wert 1,0 beginnt und mit dem Wert 0,1 endet;
- – Multiplizieren
der m einleitenden Segmente des zweiten Segments mit einem glatten
Fenster, das als Eins minus das erste Fenster definiert ist; und schließlich
- – Überlappen
der zwei Segmente durch ihre Fensterteile und ihr Addieren.
-
Vorteilhafterweise
können
der nacheilende und der einleitende Teil eines Hanning-Fensters
mit 2m Abtastungen für
diesen Zweck verwendet werden.
-
Das Überlappungs-Additions-Mischen
verwendet eine maximale Korrelationsanpassung. Die maximale Korrelationsanpassung
verändert
die Überlappung
m und ermöglicht
das Multiplizieren eines freien Verstärkungsparameters mit dem zweiten Segment,
so dass der mittlere quadratische Fehlerabstand zwischen Abtastungen
der zwei überlappenden
Segmente vor der Fensterung minimiert wird. Durch die Verwendung
des gleichen Neu abtastungsschemas wie während der Expansionsprozedur
kann die maximale Korrelationsanpassung sogar für Überlappungen mit partieller
Genauigkeit optimiert werden.
-
Die
Verwendung eines freien Verstärkungsfaktors
in der optimierten Anpassung ist optional. Wenn ein freier Verstärkungsfaktor
eingesetzt wird, wird er im Block 490 registriert, um zu
ermöglichen, dass
der folgende Rahmen einer entsprechenden Verstärkungsskalierungs-Korrektur
unterzogen wird.
-
Alternativ
wird in einer Ausführungsform
der vorliegenden Erfindung Mischen unter Verwendung eines Oszillator-Modells
durchgeführt.
Dieses Mischen wird auf eine Weise durchgeführt, die der Zeitskalierung
weniger als eine entspricht, die in dem oben genannten Artikel von
G. Kubin und W.B. Kleijn beschrieben wurde. Wenn ein Oszillator-Modell zum Mischen
verwendet wird, ersetzt das Oszillator-Modell das Codebuch, das
dem zweiten Signalrahmen entspricht. Das Ergebnis ist ein zustandsangepasster Übergang
zwischen Segmenten. Das Oszillator-Modell kann vorteilhafterweise
auch mit partiellem Abstand und verstärkungsskalierten Zuständen und
Signalsegmenten arbeiten. Das Ersetzen der Überlappung-Addition maximaler
Korrelationsanpassung durch das Oszillator-Modell zum Durchführen der Mischprozedur
ist eine mögliche
Alternative, die nicht vom Umfang des Gedankens der vorliegenden
Erfindung abweicht.
-
Gemäß der Erfindung
wird die Zeitkompression einer Folge von Signalrahmen iterativ ausgeführt: jede
Iteration komprimiert zwei Signalrahmen in einen Signalrahmen mit
einer Länge
zwischen der Länge
des kürzesten
der zwei Signalrahmen und der Summe der Länge der zwei Signalrahmen,
wobei die sich daraus ergebende Länge vom Erfolg der Kompression
abhängt.
Die Kompression der zwei Signalrahmen wird unter Verwendung der
gleichen Verarbeitungsschritte erhalten wie diejenigen, die beim Durchführen der
beschriebenen Misch-Prozedur verwendet werden mit Ausnahme dessen,
dass der komprimierte Signalrahmen nur dann einem Mischen unterzogen
wird, wenn dieses Mischen einen Schwellenwert erreicht, wobei der
Schwellenwert vorzugsweise von der Klassifizierung der Signalrahmen
abhängt.
Anderenfalls, wenn dieser Schwellenwert nicht erreicht werden kann,
führt der
Versuch zwei Signalrahmen zu komprimieren zu einem kombinierten
Signalrahmen, der einfach die Verkettung der zwei Signalrahmen ist.
Die Definition des Schwellenwerts hängt von dem verwendeten Mischverfahren
ab. Wenn Oszillator-Modellierung verwendet wird, ist der Schwellenwert
ein Maximum des minimierten Fehlers in der Zustandsanpassung. Wenn das
Mischen mit Überlappung-Addition maximaler Korrelationsanpassung
erreicht wird, ist der Schwellenwert ein Minimum des maximierten
Korrelationskoeffizienten.
-
Die
maximale Korrelationsanpassung wird in Übereinstimmung mit dem oben
Beschriebenen durchgeführt.
Vorteilhafterweise kann ein Schwellenwert für den maximierten Korrelationskoeffizienten zwischen
0,7 und 0,9 für
gesprochene Sprachsegmente verwendet werden. Für die Wahrnehmung des Sprachsignals
ist es von Vorteil, eine Zeitkompression von nicht gesprochenen
Segmenten zu vermeiden. In der beschriebenen Struktur kann dies
durch einen Schwellenwert für
den maximierten Korrelationskoeffizienten Ober Eins für diese
Signalrahmen erreicht werden. Signalrahmen, die eine Stummphase
enthalten, kann ein Schwellenwert von Null zugewiesen werden. Wenn
zwei Signalrahmen mit verschiedenen klassenabhängigen Schwellenwerten zeitkomprimiert
werden, ist der Schwellenwert für
die Kompression immer der größere der
zwei Schwellenwerte.
-
Vorzugsweise
wird dieser Schwellenwert geprüft,
um eine Maximierung zu vermeiden, wenn bereits vorher feststeht,
dass der Schwellenwert nicht erreicht werden kann, aber auch, wenn
bereits vorher feststeht, dass der Schwellenwert sogar mit vollständigem Überlappen
der Segmente erreicht werden kann.
-
Vorzugsweise
wird der Schwellenwert für Kompression
verringert, wenn sich der Jitterpuffer einem Überlauf nähert. Dies führt zu einem
schnelleren Auslesen aus dem Jitterpuffer.
-
Wie
dem Fachmann klar ist, wird das erfinderische Verfahren problemlos
unter Verwendung eines Mikroprozessors, z.B. eines digitalen Signalprozessors,
implementiert, wobei der Mikroprozessor auf einem Speicher arbeitet,
z.B. einem RAM-Speicher. Die von dem erfinderischen Verfahren verwendeten Signalsegmente
werden in diesem Speicher gespeichert und aus diesem abgerufen.
-
Auch
wenn die Erfindung unter Bezugnahme auf spezifische beispielhafte
Ausführungsformen
beschrieben worden ist, sind für
den Fachmann viele verschiedene Veränderungen, Modifizierung und dergleichen
offenkundig. Die beschriebenen Ausführungsformen sollen daher nicht
den Umfang der Erfindung begrenzen, der durch die Ansprüche im Anhang
definiert wird.