-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf Kommunikationssysteme und
bezieht sich besonders auf Kommunikationssysteme, geeignet für Transferieren
von sowohl Sprache als auch Daten.
-
Fachgebietshintergrund
-
PSTN-Analogtelefonleitungen
sind noch das dominierende Medium für Kommunikation. Die analoge
Leitung, anfangs entworfen für
analoge Sprache, wird nun extensiv genutzt für digitale Datenkommunikationen
zwischen Computern durch "Modems", d. h. Modulator-Demodulator.
-
In
der Informationsgesellschaft gibt es ein wachsendes Bedürfnis für Menschen,
an verschiedenen Plätzen
miteinander zu kommunizieren, so dass größere Ressourcen geteilt werden
könnten
und synergiert. Herkömmlicherweise,
wenn Sprache und Daten simultan kommuniziert werden sollten zwischen
zwei Plätzen,
würden
zwei Kommunikationskanäle,
z. B. zwei Telefonleitungen, erforderlich sein, eine für analoge
Sprache und die andere für
digitale Daten. Wenn Modems schneller werden und fähiger, öffnen sie
die Tür
zu simultanem Übertragen
digitaler Sprache und digitaler Daten über den gleichen Kanal (Leitung).
-
Auch
ist Forschung und Entwicklung im Gange in der Industrie, um Sprache,
Daten und Videoübertragung
in einer multiplexenden Umgebung für Multimediaanwendungen zu
haben.
-
Solche
Systeme, welche die simultane Echtzeitübertragung von digitalisierter
Sprache und Daten kombinieren, werden DSVD genannt ("Digital Simultaneous
Voice over Data" – digitale
simultane Sprache über
Daten). Die Sprache, als Eingabe in solch ein System, wird abgetastet,
digitalisiert, komprimiert und paketiert, um ein Sprachpaket zu
bilden, welches bezeichnet wird als "codiertes Sprachpaket" (CSP). Die CSPs
können
dann gemultiplext werden mit Datenpaketen und übertragen mit einem Modem durch
eine Telefonleitung zu dem anderen System.
-
Es
ist sollte angemerkt werden, dass in der folgenden Beschreibung
die Begriffe "Paket
(package)" und "Paket (packet)" austauschbar verwendet
werdend und als solche von Fachleuten verstanden werden sollten.
-
Ein
typisches DSVD Kommunikationssystem ist illustriert in einem vereinfachten
Blockschaubild in 1. Ein Kommunikationskanal,
wie eine Telefonleitung 45, ist angeschlossen zwischen
zwei Kommunikationssystemen 1, 2 mit jedem System
habend ein Modem 40, 50, einen Controller 30, 60,
einen Sprachcodec ("Codierer/Decodierer") 10, 80,
und einen Datenterminal 20, 70, respektive. Wenn,
zum Beispiel, Sprache von dem System 1 an der linken Seite übertragen
werden soll zu dem System 2 an der rechten Seite des Schaubildes,
dann kann die Sprache zuerst appliziert werden an den Sprachcodec 10 durch
einen Kopfhörer
mit Mikrofon, einen Handhörer mit
Mikrofon oder ein Mikrofon. Sobald gesprochen, wird die Sprache
abgetastet (typischerweise etwa 8 kHz), digitalisiert und komprimiert.
Der Komprimieralgorithmus, wie eine CELP (Code Excited Linear Prediction – codeangeregte
lineare Prädiktion),
wie es durch Fachleute eingesehen werden würde, unterteilt das Sprachsignal
in Zeiteinheiten, die üblicherweise "Rahmen" genannt werden,
und die Basismerkmale, wie Energie, spektrale Einhüllende,
Pitch, usw., für jeden
Rahmen des Sprachsignals werden extrahiert und quantisiert zu binären Repräsentationen.
Für jeden
Rahmen werden all die binären
Repräsentationen
verkettet in einen Bitstrom, um die CSPs zu bilden.
-
Der
Controller 30 nimmt die Sprachpakete, multiplext sie mit
Datenpaketen von einem Datenterminal 20, falls vorhanden,
für ein
Modem 40, um zu übertragen
zu dem anderen System durch den Kommunikationskanal 45.
-
Das
empfangene Modem 50 demoduliert das analoge Signal, das
empfangen wurde, von der Telefonleitung, und sendet die empfangenen
gemultiplexten digitalen Daten in den Controller 60. Der Controller 60 demultiplext
die Datenpakete von den Sprachpaketen. Die Datenpakete werden gesendet zu
dem Datenterminal 70, während
die Sprachkanäle gesendet
werden zu dem Sprachcodec 80. Der Sprachcodec 80 entpaketiert
das CSP in die binären Repräsentationen
der Sprachparameter und verwendet sie, um die synthetisierte Sprache
zu bilden, welche umgewandelt wird von digital abgetasteten Signalen
(abgetastet bei etwa 8 kHz) zu analogen Signalen, um ausgegeben
zu werdend an einem Handhörer
mit Mikrofon, einem Lautsprecher oder einem Kopfhörer mit
Mikrofon. Es sollte angemerkt werden, dass das ganze System einen
Vollduplexbetrieb vorsehen kann, d. h., Sprachpakete können auch
gesendet werden von dem Sprachcodec 80 zu dem Sprachcodec 10,
und von dem Datenterminal 70 zu dem Datenterminal 20 simultan.
-
Es
sollte auch angemerkt werden, dass Sprachpakete gemultiplext werden
sollten, übertragen,
empfangen und demultiplext in Echtzeitbasis, um ihre Kontinuität zu erhalten.
Datenpakete sollten effizient gehandhabt werden für schnelle Übertragung
und reduziertem Mehraufwand.
-
Videopakete 22 könnten auch
gemultiplext werden mit Sprach- und
Datenpaketen zur Übertragung,
somit die Aufgabe kompli zierend. Ähnlich zu Sprachpaketen könnten Videopakete 21 es
erfordern, in Echtzeit übertragen
zu werden, um die Videoqualität
zu bewahren.
-
Wenn
Sprachpakete verwendet werden für Echtzeitkommunikationen
gemultiplext mit Datenpaketen oder sogar Videopaketen, könnten einige
taktbezogene Probleme auftreten.
-
Zuerst
gibt es das Problem der Taktverschiebung, welches auftritt, wenn
die Codecs 10, 80 der Systeme 1, 2 verschiedenen
Abtastraten unterliegen. Zum Beispiel, wie in 1(a) gezeigt, wenn der Analog-zu-Digital-(A/D)-Takt
des Codec 10 sich verschiebt von dem Digital-zu-Analog-(D/A)-Takt
des Codec 80. Wenn der Takt des A/D des Codec 10 an dem
sendenden System 1 schneller ist als der Takt an dem D/A
Codec 80 an dem empfangenen System 2, wird der
langsamere Codec 80 dem schnelleren Codec 10 nachlaufen.
Die Anzahl der empfangenen CSP wird untolerierbar ansteigen, weil
der langsamere Codec 80 unfähig ist, aufeinanderfolgende
CSP in Echtzeit zu prozessieren. Auf der anderen Seite, wenn der
Takt des A/D des Codec 10 langsamer ist als der Takt des
Codec 80, wird Codec 80 dem langsamen Codec 10 vorlaufen.
Periodisch wird es für den
schnelleren Codec 80 kein empfangenes CSP zu prozessieren
geben, zwingend Codec 80 zu untolerierbar zu pausieren,
bis das nächste
CSP ankommt. Es sollte angemerkt werden, dass für Vollduplexkommunikation mit
Taktverschiebung ein Ende nachlaufen wird, während das andere Ende vorlaufen
wird. Das Taktverschiebungsproblem ist nicht einzigartig für DSVD Anwendungen
und für
Vollduplexbetrieb eines Kommunikationssystems. Jedes Sprachkommunikationssystem,
in welchem der A/D Takt an dem sendenden Ende verschoben ist relativ
zu dem D/A Takt an dem empfangenen Ende, wird dem Nachlauf/Vorlaufphänomen von
Sprachabtastungen unterliegen.
-
Wenn
Taktverschiebung auftritt, ist es eine mögliche Praxis für den Controller
gewesen, eine grobe Korrektur durchzuführen, wann immer erforderlich.
Wenn es mehr Pakete gibt als der Codec prozessieren kann in Echtzeit,
wird das zusätzliche
Paket verworfen. Wenn, auf der anderen Seite, der Codec reguläre Pakete
nicht empfängt,
können
bestimmte Pakete dupliziert werden, um Pausieren zu verhindern.
Wenn die Taktverschiebung nicht zu schwerwiegend ist, dann findet
solch eine Korrektur einmal alle paar Minuten statt, welches wahrnehmungsmäßig akzeptabel
sein könnte.
Wenn, jedoch, die Taktverschiebung schwerwiegend ist, dann könnte eine
Korrektur häufiger
erforderlich sein, bis zu einmal alle paar Sekunden. In diesem Fall
wird eine grobe Korrektur wahrnehmungsmäßig unakzeptable Artefakte
erzeugen. Somit wird es wesentlich für das DSVD System, in der Lage
zu sein, Korrekturen der Sprachpakete so durchzuführen, dass
die Artefakte eliminiert werden.
-
Ein
zweites Problem, verbunden mit dem DSVD System, ist der asynchrone
Betrieb des Controllers und des Sprachdecoderabschnitts des Sprachcodec's. Der Controller 30 empfängt den
Bitstrom von dem Modem 40, demultiplext die Datenpakete
von dem CSP, welches, eines nach dem anderen, in den Puffer 11 gelegt
wird. Der Sprachcodec 10 nimmt das CSP aus dem Puffer 11 und
prozessiert es, um analoge Sprache zu produzieren. Wenn der Sprachcodec 10 Ausgeben
des vorhergehenden Rahmens beendet, sollte ein neues CSP fertig
sein für
den Decoder in dem Puffer 11. Aufgrund des asynchronen
Controller zu Decoder CSP Transfers könnte das nächste CSP nicht verfügbar sein
für den Decoder,
wenn erfordert.
-
Das
dritte Problem entsteht aus den sich widersprechenden Erfordernissen
von Erhalten von Kontinuität
und Minimieren der Verzögerung
der Sprache über
den Kommunikationskanal während
simultanen und effizientem Übertragen
von Daten in einer multiplexenden Umgebung. In der Abwesenheit von
Datenpaketen werden die CSPs empfangen an dem lokalen Decoder und
prozessiert zu regulären Intervallen.
Während
der Datenpaketübertragung fährt der
entfernte Encoder fort, CSP zu produzieren. Um Sprachkontinuität zu erhalten,
werden diese CSPs zu verzögern
sein von dem entfernten Controller, bis die Datenpaketübertragung
vollständig
ist. Während
dieser Zeit wird der lokale Decoder kein CSP empfangen und wird
folglich pausieren, bis das nächste
CSP ankommt, produzierend einen wahrnehmungsmäßig unangenehmen Stottereffekt.
Die maximale Anzahl von anhängigen
CSPs kann vorbestimmt sein für
eine gegebene Kanaldatenübertragungsrate
und Maximumdatenpaketgröße, und
ein Puffer konstruiert an dem entfernten Decoder von gleicher Größe, so dass
der entfernte Decoder immer mindestens ein CSP zu prozessieren haben
wird. Jedoch wird, sogar für
moderate Kanaldatenübertragungsraten
und Datenpaketgröße die entsprechende Decoderpuffergröße von so
einer Größe werden, dass
die Sprachverzögerung
unakzeptabel werden könnte.
Reduzieren der Datenpaketgröße oder
Abbrechen von Datenpaketübertragung
wird diese Verzögerung
minimieren, aber auch die Datenübertragungseffizienz
signifikant reduzieren, weil mehr des Datenpakets aus Mehraufwandssteuerinformation bestehen
wird und weniger Daten oder häufige
Datenpaketwiederübertragungen
erforderlich sein werden, respektive.
-
Deshalb
wird es wünschenswert
sein, das Taktverschiebungsproblem zu lösen, verbunden mit dem Betrieb
irgendeines Sprachkommunikationssystems.
-
Es
wird auch wünschenswert
sein, das Problem zu lösen
von Asynchronität
verbunden mit dem Betrieb von Sprachdecodern und Controllern, ebenso
wie lösend
das Problem des Multiplexens von Sprachpaketen mit Datenpaketen.
-
Weitere
Aufmerksamkeit wird gerichtet auf das Dokument "Packetized Voice Recorder", IBM Technical Disclosure
Bulletin, Band 30, Nr. 12, 1. Mai 1988, Seiten 257 bis 265, XP 00573260,
welches eine Technik beschreibt, wobei ein adaptierter Ansatz implementiert
ist bei Abspielen von Paketen in einer schnellen Paketvermittlungsumgebung.
Ein Netzwerkmodell, Sprachempfängerarchitektur
und Abspielalgorithmus werden beschrieben, welche verwendet werden
können,
ob Sprachaktivitätserfassung
verwendet wird oder nicht.
-
In Übereinstimmung
mit der vorliegenden Erfindung werden vorgesehen eine Vorrichtung
zur Taktrückgewinnung
in einem Kommunikationssystem, wie angegeben in Ansprüchen 1 und
13, und ein Verfahren des Erhaltens von Taktsteuerung, wie angegebenen
in Anspruch 24. Bevorzugte Ausführungsformen
der Erfindung sind in den abhängigen Ansprüchen beansprucht.
-
Zusammenfassung
der Erfindung
-
Ein
Taktrückgewinnungsschema
für Paketsprache
in Kommunikationssystemen im Allgemeinen und in multiplexender Umgebung
im Besonderen wird offenbart. Das Taktrückgewinnungsschema wird ausgeführt durch
den Sprachdecoder und ist transparent für den Controllerbetrieb. Der
Sprachdecoder nutzt die Sprachnatur für glatten und wahrnehmungsmäßig nicht
wahrnehmbare Taktrückgewinnung
sogar unter schwerwiegender Taktverschiebung.
-
Der
Controller und der Sprachdecoder tauschen Paketsprache in der Form
von CSPs aus durch gemeinsame Puffer. Wann immer überschüssige oder
fehlende Sprachpakete erfasst werden durch den Sprachdecoder schaltet
er in einen speziellen korrigierenden Modus um. Wenn überschüssige Sprachdaten
erfasst werden, werden sie "schneller" abgespielt als üblich. Der
Illustration wegen wird dieses Ereignis bezeichnet werden als ein "langsam" Ereignis, weil der
lokale Decoder langsamer ist relativ zu dem entfernten Encoder.
Wenn fehlende Daten erfasst werden, werden die verfügbaren Daten
an dem Decoder "langsamer" abgespielt als üblich. Wir
werden dieses Ereignis bezeichnen als ein "schnell" Ereignis, weil der lokale Decoder schneller
ist als der entfernte Encoder. Für
das langsamere Ereignis muss etwas Sprachinformation verworfen werden, während für das schnellere
Ereignis etwas sprachähnliche
Information synthetisiert werden muss und eingefügt.
-
Das
Verwerfen oder Erzeugen von Sprachinformation wird ausgeführt durch
den Sprachdecoder in Einheiten, welche sein können Rahmen, Subrahmen, Abtastungen
oder irgendeine andere Mehrzahl von Abtastungen. Manipulieren von
ruhe- oder stimmlosen Einheiten resultiert in modifizierter Sprache
mit wahrnehmungsmäßig nicht
wahrnehmbarer Qualitätsverringerung.
In der bevorzugten Ausführungsform
wurden Subrahmen mit 52 Abtastungen gewählt als ein guter Kompromiss
zwischen Komplexität
und Performance.
-
In
fast allen modernen Sprachdecodern, wie CELP, besteht die letzte
Stufe des Decoders aus einem spektral formenden (üblicherweise
LPC genannt – "Linear Prediction
Code" – linearer
Prädiktionscode)
Synthesefilter gefolgt von optionalen Nachfiltern. Manipulieren
des decodierten Signals an der Anregungsphase, bevor den Endfiltern,
trägt bei
zu der wahrnehmungsmäßigen Natürlichkeit
der synthetisierten Sprache. Dieses Taktrückgewinnungsschema, verwendend
die obigen Verfahren, resultiert in einem wahrnehmungsmäßig transparenten
Effekt auf die manipulierte Sprache sogar unter schwerwiegender
Taktverschiebung.
-
Die
Größe des Puffers,
gekoppelt zwischen dem Controller und dem Sprachdecoder, sollte
den Erfordernissen entsprechen des Taktrückgewinnungsschemas. Wenn der
lokale Sprachdecoder langsamer ist als der entfernte Sprachencoder
benötigt
es zusätzlichen
Platzes für
eine extra CSP. Diese überschüssige CSP
wird schnell abgespielt werden, wenn präsentiert. Wenn der lokale Decoder
schneller ist als der entfernte Sprachencoder, bedarf es einer Reserve
von mindestens einem nicht abgespielten CSP. Dieses CSP wird langsam
abgespielt, um zu warten auf die nächste CSP von dem langsameren fernen
Ende. Folglich könnte
die Basisstruktur des Puffers drei Lagen für CSPs umfassen: eine zum Halten
einer Reserve CSP, eine zum Halten der abgespielten CSP und eine
zum Halten zusätzlicher
Lagen. Jedoch können
extra CSP oder fehlende CSP temporär das Resultat sein des Controller-Decoder asynchronen
CSP Trans fers. Weil der Decoder nicht unterscheiden kann zwischen
temporärer
extra/fehlender CSP aufgrund eines asynchronen Controller zu Decoder
CSP Transfers oder aufgrund eines wirklichen Taktverschiebungsproblems,
könnten
vier (4) Auffüll
CSP Lagen hinzugefügt
werden, so dass der Puffer sieben (7) Lagen für CSPs hat. In dieser Struktur
triggert ein extra fehlendes CSP den Decoder nicht für Taktrückgewinnungsbetrieb.
-
Dieser
Taktrückgewinnungspuffer
mit sieben (7) CSP wird auch gezeigt werden, um das Problem zu lösen des
Multiplexens von CSPs und Datenpaketen, während erhaltend Datenpaketübertragungseffizienz,
Sprachkontinuität
und Minimieren von Sprachverzögerung
in einer multiplexenden Umgebung.
-
Kurze Beschreibung
der Zeichnungen
-
Weitere
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden
verstanden werden durch Fachleute in der folgenden Beschreibung, worin:
-
1(a) ist das vereinfachte Systemblockschaubild
eines typischen simultanen Sprach- und Datensystems.
-
1(b) ist ein Schaubild einer Endeinheit, enthaltend
einen Puffer, einen Sprachcodec und einen A/D- und D/A-Wandler.
-
2 ist
das vereinfachte Blockschaubild eines Decoders mit codeangeregter
linearer Prädiktion ("CELP"), welcher Teil sein
könnte
vom Sprachcodec.
-
3(a) zeigt einen Puffer und
-
3(b) zeigt einen Puffer in einer anderen Ausführungsform.
-
4 ist
ein Flussdiagramm, illustrierend den Korrekturprozess in Übereinstimmung
mit der vorliegenden Erfindung.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsform
-
1. Sprachmodifikation,
eingebettet in dem Sprachdecoder.
-
In
fast allen modernen Sprachdecodern und in allen CELP-Typdecodern besteht
die letzte Stufe aus einem spektralen Hüllkurven (LPC) Filter gefolgt von
einem optionalen Nachfilter. Demzufolge, wie oben angemerkt, könnten Sprachmodifikationen
eingebettet sein in den Sprachdecoder für eine wahrnehmungsmäßig natürlicher
modifizierte Sprache.
-
2 illustriert
ein vereinfachtes Blockschaubild eines CELP-Decoders, wie er implementiert
sein könnte
in dem Sprachcodec 10, 80 und in welchen die Sprachmodifikation
eingebettet sein könnte
in Übereinstimmung
mit der vorliegenden Erfindung.
-
Bezugnehmend
auf 2 nimmt der CELP-Decoder das CSP, empfangen durch
einen Controller, mit einem Modem von einem entfernten Modem, und
erzeugt das Sprachsignal 145 zur Ausgabe. Für jeden
Rahmen werden eine Anzahl von Parametercodes übertragen, welche allgemein
umfassen Codebuchindizes, Verstärkung,
Rahmenenergie und LPC-Parameter.
-
Die
Codebücher 100 (CB1), 110 (CB2)
und 130 (CB3) bestehen aus Vektoren, welche verwendet werden,
um das Anregungssignal 125 zu erzeugen. Mehr als drei Codebücher können verwendet
werden in dem CELP-Decoder und ein oder eine Mehrzahl von ihnen
sind üblicherweise
adaptiv. Die Informationen in den Codebüchern werden auch kompensiert von
einigen Verstärkungsfaktoren
g1 bis g3 101, 111, 121, aufsummiert
an einem Addierer 124 und ein gemeinsamer Energiemultiplizierer 129.
Das Resultat wird genannt "Kurzzeitresiduum" oder Anregungssignal 125.
Das LPC Filter 120 erzeugt durch frequenzeinhüllendes
Filtern die synthetisierte Ausgabesprache 145. Zusätzliches
Nachfilter kann verwendet werden für verbesserte Sprachqualität, wie eingesehen
werden wird durch Fachleute.
-
Modifikationen
der Sprache, wie Löschen oder
Einfügen
von Einheiten, kann ausgeführt
werden an dem Anregungssignal 125 oder an dem Sprachsignal 145.
In beiden Fällen
werden Manipulationen von Einheiten kleinerer Dauer und ruhe- oder stimmlosen
Einheiten resultieren in bessere Qualität der modifizierten Sprache.
In der bevorzugten Ausführungsform
wird Einheiten löschen
oder Einfügen ausgeführt an dem
Anregungssignal 125 und die manipulierten Einheiten sind
die Sprachcodierungs-"Subrahmen"-Einheiten. Weil
die Subrahmeneinheiten "natürliche" Einheiten des Sprachdecoders sind,
können
sie leicht manipuliert werden und mit sehr kleiner Komplexität.
-
Es
sollte angemerkt werden, dass das "schnell" oder "langsam" Ereignis erfasst wird, wenn es fehlende/extra
CSP gibt an dem Decoder und weil ein CSP eine Mehrzahl von Korrektureinheiten
repräsentieren
kann, könnte
eine Mehrzahl von Löschungen
oder Einfügungen
erfordert sein, um ein CSP zu korrigieren.
-
Angemerkt
wird, dass die Anregungsmodifikation 130 in Übereinstimmung
mit der vorliegenden Erfindung sowohl modifizieren könnte (a)
das Anregungssignal 125, oder (b) das Sprachsignal 145 am Knoten 142,
wenn eingebettet in eine CELP. Jedoch würde es durch Fachleute einzusehen
sein, dass Modifizieren des Anregungssignals 125 vorteilhafter sein
könnte,
dahingehende dass, seine Ausgabe weiter geglättet werden könnte durch
das LPC-Filter 140.
-
2. Taktverschiebungskorrektur
-
3(a) illustriert den schematischen Entwurf eines
Puffers 30, der implementiert ist für Taktverschiebungskorrektur.
Funktional ist der Puffer 30 gekoppelt zwischen den Sprachdecoderabschnitt des
Codec (10/80) 1(a))
und den Controller (30/60, 1(a)).
Der Puffer 30 wird gefüllt
durch den Controller und geleert durch den Decoder als "zuerst rein, zuerst
raus" (FIFO – First
In, First Out) Puffer. Der Puffer 30 ist partitioniert
in drei Sektionen: langsam 33, normal 34 und schnell 35.
Der Controller schiebt das nächste
CSP 32, welches empfangen wurde von dem Modem, in den Puffer.
Es wird angemerkt, dass bei Initialisierung der Controller zwei CSPs
in den Puffer schiebt. Der Decoder nimmt dann das nächste, oder
erste in der Reihe, undecodierte CSP aus dem Puffer und decodiert
seinen Inhalt, um eine synthetisierte Sprache zu produzieren. Während eine
CSP decodiert wird durch den Decoder, sollte der Controller die
nächste
CSP von dem Modem erhalten, so dass das nächste CSP am Platz sein wird, wenn
das vorige CSP decodiert ist und abgespielt. Es wird angemerkt,
dass die Rate des Abspielens bestimmt ist durch den D/A-Wandlerabtasttakt (1(b), 90) des lokalen
Decoders. Wenn der D/A Takt 90 des lokalen Decoders synchronisiert
ist mit dem A/D Takt des entfernten Encoders, und wenn der Übertragungsweg
vollständig
synchronisiert ist, dann wird der Decoder immer das nächste CSP
finden, genau nachdem er aufhört,
sein gegenwärtiges
CSP zu decodieren.
-
Wenn
der D/A Takt des lokalen Decoders langsamer ist als der A/D Takt
des entfernten Encoders, wird der entfernte Encoder pro Zeiteinheit
mehr Abtastungen erzeugen als der lokale Decoder ausgeben kann.
Zum Beispiel, wenn der A/D Takt des entfernten Endes 8080 Hz ist
und der lokale D/A Takt 8000 Hz ist (eine 10-prozentige Taktverschiebung), dann
werden 80 extra Abtastungen pro Sekunde erzeugt durch das entfernte
Ende. Wenn jedes CSP repräsentiert,
zum Beispiel, 240 Abtastungen, wird ein extra CSP erzeugt werden
alle drei Sekunden.
-
Auf
die sehr gleiche Art wird, wenn der D/A Takt des lokalen Decoders
schneller ist als der A/D Takt des Encoders am entfernten Ende,
der Encoder am entfernten Ende pro Zeiteinheit weniger Abtastungen
erzeugen als der lokale Decoder auszugeben hat, während dieser
Zeitperiode.
-
Bezugnehmend
auf 3(a) wird nun der Betrieb des
Puffers 30 in Übereinstimmung
mit der vorliegenden Erfindung beschrieben werden. Der Puffer 30 wird
betrieben als ein "Zwei wege"-Stapelpuffer: Der
Controller schiebt ein CSP von einer Seite ein, während der
Decoder ein CSP hervorholt aus dem anderen Ende. Es wird angemerkt,
dass der Gesamtbetrieb der eines FIFO Puffers ist. Bei Initialisierung
sollte der Controller 2 CSPs in den Puffer 30 schieben.
Wenn der Decoder und der Controller synchronisiert sind und es keine
Taktverschiebung gibt, dann wird der Decoder ein CSP hervorholen
aus Lage "N" (34), es
decodieren und ausgeben und wird das nächste CSP an der gleichen Lage
finden. Wenn er das nächste
CSP an der Lage "L" (33) findet,
weiß der
Decoder, dass sein D/A zu langsam ist, triggernd ein "LANGSAM" Ereignis. Wenn er
das nächste
CSP an der Lage "S" (35) findet,
weiß der
Decoder, dass sein D/A zu schnell ist, triggernd ein "SCHNELL" Ereignis.
-
Es
sollte verstanden werden durch Fachleute, dass "SCHNELL", "LANGSAM" oder "NORMAL" Modi angezeigt werden
durch Zeiger 31, welcher auf das CSP zeigt im Puffer 30,
das als nächstes
zu decodieren ist. Der Decoder beginnt das erste CSP zu decodieren,
wenn Zeiger 31 auf "N" zeigt. Wenn Zeiger 31 übereinstimmt
mit "N" 34, ist
er "NORMAL". Wenn Zeiger 31 sich
bewegt zu "S" 35, repräsentiert er,
dass der Eingangsfluss langsamer ist als der Ausgangsfluss, demzufolge
ein "SCHNELL" Szenario. Umgekehrt,
wenn Zeiger 31 sich bewegt zu "L" 33,
ist der Eingabefluss schneller als der Ausgabefluss, somit ein "LANGSAM" Szenario.
-
In
dem Fall eines "LANGSAM" Ereignisses hat
der lokale Decoder einige Abtastungen zu löschen, um den Encoder am entfernten
Ende einzuholen. In dem Fall eines "SCHNELL" Ereignisses hat der lokale Decoder
zu schaffen und einzufügen
einige Abtastungen, um sich von dem Encoder am entfernten Ende einholen
zu lassen. Es wird angemerkt, dass Taktverschiebungskorrektur initiiert
wird durch das Erfassen eines extra oder fehlenden CSP, welches
korrespondiert mit einem Rahmen von etwa 120 bis 240 Abtastungen.
Korrekturen können
ausgeführt werden
an irgendeiner Anzahl von Subeinheiten der Sprachdaten in sowohl "SCHNELL" als auch "LANGSAM" Situationen. Die "natürliche" Korrektureinheiten
für den
Decoder sind der Rahmen, der Subrahmen und die Abtastung. Ein Rahmen
stimmt überein mit
einem CSP, und Löschen
oder Einfügen
eines Rahmens wird das ganze CSP korrigieren. Ein Rahmen ist üblicherweise
aufgebaut aus einigen (typischerweise drei bis vier) Subrahmen,
und einige Subrahmenkorrekturen sind erforderlich, um das extra oder
fehlende CSP zu korrigieren. Eine andere Korrektureinheit können die
Sprachabtastungen sein und so viele der Sprachabtastungen in einem
Rahmen werden benötigt
zum Korrigieren des extra oder fehlenden CSP. Die Wahrnehmungsqualität der Korrektur
ist besser für
kleinere Korrektureinheiten.
-
Während Korrekturen
jederzeit stattfinden könnten,
resultieren Korrekturen, ausgeführt
in ruhe- oder stimmlosen Einheiten, in besser wahrnehmender Qualität. Gegenwärtig wird
eine Korrektur ausgeführt
an ruhe- oder stimmlosen Subrahmen. Die Parameter, die verwendet
werden, zur Klassifikation sind die Energie und spektrale Steigung,
d. h., erster Reflektionskoeffizient, welche Teile sind der encodierten
Information, wie eingesehen werden wird durch Fachleute. Die Subrahmeneinheit
ist auch ein guter Kompromiss zwischen Implementationskomplexität, korrigierter
Sprachqualität
und Konvergenzzeit.
-
Eine
Korrektur braucht nicht stattzufinden unmittelbar nachdem sie erfasst
wird. Bezugnehmend auf das vorige Beispiel einer 10-prozentigen Taktverschiebung,
muss eine CSP Korrektur ausgeführt
werden innerhalb von drei Sekunden. Für einen 208-Abtastungsrahmen,
welcher unterteilt ist in vier Subrahmen, gibt es mehr als 100 Rahmen
oder 400 Subrahmen in drei Sekunden, von denen nur vier (4) Subrahmen
korrigiert werden müssen,
um das Taktverschiebungsproblem zu lösen. Statistisch sollte es genug
ruhe- oder stimmlose Einheiten geben in diesen 100 Rahmen, um Korrektur
auszuführen.
Ein robusteres System kann dann erreicht werden durch adaptives
Einstellen der Klassifikationsschwelle.
-
Zum
Beispiel könnte
ein strenges Setzen der Schwelle verwendet werden, wenn die Korrektur
beginnt, so dass nur Ruherahmen wiederholt werden können oder
gelöscht.
Dann nach einer bestimmten Anzahl von Rahmen währenddessen kein Ruherahmen
gefunden wird, kann die Schwelle entspannt werden, so dass stimmlose
Rahmen herausgegriffen werden können,
um Korrektur zu erreichen. Weiterhin könnte eine Absicherung eingerichtet
werden, um eine Korrektur aller 100 Rahmen zu erzwingen, wenn kein
Ruhe- oder stimmloser Rahmen gefunden wird innerhalb dieser Periode.
Für diesen
Zweck könnte eine
Takteinheit vorgesehen werden gekoppelt an Korrekturmittel zum Ausführen einer
Korrektur an einem vorbestimmten Unterbereich eines Anregungsrahmens,
sobald eine vorbestimmte Zeitperiode (z.B. 100 Rahmen) abläuft, wenn
das Korrekturmittel in der vorbestimmten Zeitperiode nicht betrieben
worden ist. Auch kann Korrekturhäufigkeit
verfolgt werden, so dass, wenn sie kleiner als der vorbestimmte
Wert ist, üblicherweise
der schlechteste Fall von 10-prozentiger Verschiebung, eine strengere
Schwelle angewendet werden kann, um sicherzustellen, dass Korrekturen
nur an Ruherahmen erfolgen. Für
diesen Zweck könnte
das Folgende vorgesehen werden: Akkumulationsmittel zum Nachverfolgen
der Häufigkeit von
SCHNELL und LANGSAM Ereignissen in einer vorbestimmten Zeitperiode,
und modifizierte Anregungserfassungsmittel für eines von Verschärfen oder
Entspannen mindestens einer vorbestimmten Schwelle auf eine zweite
vorbestimmte Schwelle, wenn die Häufigkeit der SCHNELL und LANGSAM Ereignisse
in der vorbestimmten Zeitperiode ist eines von unterhalb oder über einer
vorbestimmten Anzahl. Fachleute werden in der Lage sein, ihre eigenen
Korrekturschemata zu bestimmen, basiert auf ihren spezifischen Bedürfnissen
und Ressourcen.
-
Bezugnehmend
auf 2 werden, wie oben beschrieben, Informationen
in Codebüchern 100 bis 120 verstärkungsjustiert
und summiert, um das Anregungssignal 125 zu erzeugen. Der
Anregungsmodifikationsvorgang 130 würde, wenn keine Korrektur benötigt wird,
das Anregungssignal passieren lassen durch das LPC-Filter 140,
um die synthetisierte Sprache zu erzielen. Wenn der lokale Decoder
schneller ist, d. h. Einfügen
von Daten wird benötigt,
wartet der Anregungsmodifikationsvorgang 130, bis das Anregungssignal 125 kleine
Energie hat, vor Duplizieren des ruhe- oder stimmlosen Subrahmens
(oder irgendeine andere Korrektureinheit) und ihn verkettend mit
dem Abtaststrom des Anregungssignals 125. Als ein Resultat
wird, für
einen 208-Abtastungsrahmen, der Rahmen nun 208 Abtastungen haben
+ 52 Abtastungen = 260 Abtastungen zu synthetisieren und auszugeben.
Wenn der lokale Decoder langsamer ist, d. h. ein Löschen von
Daten benötigt
wird, wartet der Anregungsmodifikationsvorgang 130, bis das
Anregungssignal 125 kleine Energie hat, vor Löschen des
ruhe- oder stimmlosen Subrahmens (oder irgendeine andere Korrektureinheit)
von dem Abtaststrom des Anregungssignals 125. Als ein Resultat wird,
für einen
208 Abtastungsrahmen, der Rahmen nun 208 Abtastungen haben – 52 Abtastungen
= 156 Abtastungen zu synthetisieren und auszugeben.
-
Es
wird angemerkt, dass die "Korrektureinheit" angenommen wird
als ein Subrahmen zu sein, d. h. 52 Abtastungen, in diesem Beispiel.
Wenn vier (4) Subrahmen korrigiert sind, ist somit ein ganzer Rahmen
korrigiert. Alternativ kann diese Korrektur auch ein ruhe- oder
stimmloser Rahmen sein, eine Abtastung oder Abtastungen von ruhe-
und stimmlosen Rahmen.
-
4 illustriert
ein Flussdiagramm des Taktrückgewinnungsschemas
in Übereinstimmung
mit der vorliegenden Erfindung. Während Normalbetrieb 45 überwacht
der lokale Decoder (10, 1(a))
den Puffer (30, 3(a) oder 11, 1(a)), um zu bestimmen, ob es ein SCHNELL oder
LANGSAM Ereignis ist. Bei entweder einem SCHNELL oder LANGSAM Ereignis
wartet der Anregungsmodifikationsvorgang (130, 2),
dass eine Einheit auftritt mit ruhe- oder stimmlosem Rahmen, ob
die Einheit ein Rahmen ist, ein Subrahmen, eine Abtastung oder irgendeine Kombination
daraus. Wenn erfasst, wird die ruhe- oder stimmlose Einheit entweder dupliziert
oder gelöscht
bei entweder SCHNELL oder LANGSAM Situation 48. Dieser
Schritt wird wiederholt wie die Anzahl von Einheiten benötigt werden
zur Korrektur, und dann zurückgekehrt
zu Normalbetrieb 45.
-
Das
obige Taktverschiebungsproblem und das Verfahren zu seiner Korrektur
sind präsentiert worden
in dem Rahmen eines DSVD Systems, als ein Zweiwegkommunikationssystem,
welches Sprache multiplext, Daten und gegebenenfalls Video. Jedoch
treten Taktverschiebungen in jedem Kommunikationssystem auf, wo
der Takt des A/D-Wandlers des einen Endes nicht synchronisiert ist
mit dem Takt des D/A-Wandlers des anderen Endes. Das oben beschriebene
Korrekturschema kann angewandt werden auf solch ein System, ungeachtet
der anderen Komponenten, wie dem Controller oder dem Modem, ungeachtet
des Übertragungsmodus
und ungeachtet irgendeines zusätzlichen
Datenmultiplexen.
-
3. Controllerasynchronität.
-
Wie
vorhergehend beschrieben, arbeiten die Controller oft nicht synchron,
weil es allgemein ein Fehlen gibt eines gemeinsamen Gleichlaufschemas unter
den Sprachcodecs 10, 80 und den Controllern 30, 60 für das DSVD
System, wie beschrieben in 1(a).
Ein typische asynchronitätsbezogenes Problem
ist, sogar beim Fehlen von Taktverschiebung, dass der CELP Decoder
einen Rahmen (CSP) aus dem Puffer (30, 3(a)) nehmen könnte
und wenn es erfordert ist, den nächsten
Rahmen zu nehmen, stellt er fest, dass er den Rahmen zu nehmen hat,
angezeigt durch den schneller "S" 25 oder
langsamer "L" 33 Zeiger,
sogar, obwohl es kein Schnell- oder Langsamproblem gibt.
-
3(b) illustriert einen Puffer 35, geeignet zum
Absichern des Systems von den asynchronen Controllern und anderen.
Anstelle von Platzvorsehen für
nur drei Rahmen, wie in 3(a),
ist der Puffer 35 implementiert, um zusätzlichen Schutz vorzusehen von
einem Rahmen an beiden Seiten der schnellen 39 und langsamen 37 Rahmen.
Der Puffer 35 kann deshalb dem Decoder erlauben, in irgendeinem
von zwei Extrarahmen um den Normalrahmen 38 herum zu arbeiten,
ohne ein SCHNELL oder LANGSAM Ereignis deklariert zu haben. Wenn
entweder ein SCHNELL oder LANGSAM Ereignis deklariert wird, kann
der Decoder noch Asynchronität
kompensieren mit den langsam 37, normal 38 und
schnell 39 Rahmen.
-
Mit
dem expandierten Puffer 35 kann der Einfluss von Controllerasynchronie
ebenso wie Taktverschiebung auf das DSVD System eliminiert werden.
-
4. Controllermultiplexen
von Sprache und Datenpaketen
-
Bezug
genommen wird auf 1(a). Der Controller 30 des
DSVD Systems, wie gezeigt, könnte
auch multiplexen Sprachdaten von dem Sprachcodec 10 mit
Daten von dem Datenterminal 20. Wenn Sprachdaten paketiert
sind, wird Massenverzögerung
eingeführt,
während
eine Anzahl von CSPs oft zurückgehalten
werden durch den Controller als Teil des multiplexenden Schemas,
bevor sie übertragen werden
zu dem Decoder in dem Sprachcodec 80.
-
In
der Abwesenheit von Controller-zu-Decoder asynchronen CSP-Transfer und Taktverschiebung
behält
der Puffer in 3(c) konstant vier (4) CSPs,
wenn es keine Zwischendatenpaketübertragung
gibt. Mit Controller-zu-Decoder asynchronen CSP-Transfer könnte der Puffer drei (3) bis
fünf (5) CSPs
enthalten. Mit Taktverschiebung hinzugefügt, könnte der Puffer so wenig wie
ein (1) oder so viel wie sieben (7) CSPs haben.
-
Um
CSP-Pufferleerlauf auszuschließen
während
Datenpaketübertragung
muss die Übertragung abgebrochen
werden, die CSP Puffergröße erhöht werden,
oder die Datenpaketgröße begrenzt
werden für
eine gegebene Kanaldatenübertragungsrate.
Abbrechen der Datenpaketübertragungen
erfordert ineffiziente und häufige
Datenpaketwiederübertragung, und
Erhöhen
der CSP Puffergröße trägt signifikant bei
zu der Sprachverzögerung.
Deshalb wird, um Datenübertragung
effizient zu erhalten und Sprachkontinuität ohne Hinzufügen zu der
Sprachverzögerung, für eine gegebene
Kanaldatenübertragungsrate,
die Datenpaketgröße beschränkt. Nicht
mehr als vier (4) CSPs könnten
prozessiert werden während
einer Datenpaketübertragung.
-
Wenn
die Anfangsanzahl von CSPs in dem Puffer vier ist oder mehr, wenn
das erste Datenpaket übertragen
wird, dann wird der Puffer nicht leerlaufen, weil die Datenpaketgröße beschränkt worden
ist, so dass ein Maximum von vier (4) CSPs prozessiert werden könnte während einer
Datenpaketübertragung.
Es ist möglich,
dass die Anzahl der CSPs in dem Puffer zwei (2) erreichen wird,
an welchem Punkt die Taktverschiebungskorrektur für "SCHNELL" initiiert werden
wird und ein zusätzlicher Sprachrahmen
erzeugt und eingefügt.
Dieser zusätzliche
Sprachrahmen wird entfernt werden, wann immer die CSP Übertragung
wieder beginnt und der CSP Puffer sechs (6) überschreitet, dabei initiierend die
Taktverschiebungskorrektur für "LANGSAM".
-
Wenn,
auf der anderen Seite, die Anfangsanzahl von CSPs in dem Puffer
weniger als vier (4) ist und die maximale Paketgröße verwendet
wird, dann wird die erste Datenpaketübertragung den lokalen Decoder
veranlassen, alle der CSPs zu prozessieren, den Puffer leerend und
konsequenterweise den Decoder pausierend bis die nächsten vier
(4) CSPs empfangen werden und der CSP Zeiger auf "N" (38) zeigt. Nun, da die Anzahl der
CSPs in dem Puffer wieder angelangt ist bei vier (4), wird der CSP
Puffer keinen Mangel an CSP haben und der Decoder wird nicht pausieren
während
folgender alternierender Datenpaket- und CSP Übertragungen.
-
Wenn
die Datenpaketübertragung
vollständig
ist, werden die verzögerten
CSPs übertragen werden
und zusätzliche
CSPS können
erzeugt werden, während
diese Übertragung
auftritt. Deshalb ist es möglich
für den
Decoder, eine Anzahl von aufein anderfolgenden CSPs größer als
vier (4) zu empfangen. Sieben (7) CSPs ist die aktuell benötigte Puffergröße, welche
ausreichend ist, Pufferüberlauf
zu verhindern für
die beschränkte
Datenpaketgröße, die oben
diskutiert wurde. Die Taktverschiebungskorrektur für "LANGSAM" wird initiiert werden,
wenn sechs (6) CSPs in dem Puffer sind, um die Anzahl zurückzubringen
auf vier (4) für
Minimumsprachverzögerung.
-
Es
ist möglich,
dass der Decoder keine CSPs an regulären Intervallen empfangen wird,
ungeachtet der Datenpaketübertragung.
Dieser Verlust von CSPs kann oder kann nicht absichtlich sein. Zum
Beispiel, um den Datenpaketübertragungsdurchsatz
zu erhöhen,
könnte
der entfernte Controller wählen,
keine Encoder CSPs zu übertragen,
während
Perioden mit keiner Sprachaktivität. Die Anzahl der verlorenen CSPs
wird typischerweise viel größer werden,
als vier (4), welche konsequenterweise eine Leerlaufbedingung an
dem Decoderpuffer erzwingt. Bis CSP Übertragung wieder aufgenommen
wird, könnte
der lokale Decoder wählen,
Decodieren zu wiederholen, eine oder mehrere voriger CSPs, deren
encodierte Sprachparameter individuell oder gemeinsam modifiziert
werden könnten
in einer vorbestimmten Art, die Decoderausgabe stummschalten, Erzeugen
und Abspielen eines pseudozufälligen
Rauschsignals oder deterministischen Signals beide mit Energieniveaus, gewählt durch
irgendein vorbestimmtes Mittel, um konsistent zu sein mit der Energie
des Hintergrundrauschens, das von dem entfernten Encoder wahrgenommen
wird, oder irgendeine Kombination des Obigen. Ähnlich zum Empfangen der ersten CSPs,
wird Decodieren wieder aufgenommen, erst nachdem vier (4) CSPs platziert
worden sind in dem Puffer. Wie oben beschrieben, sind vier (4) CSPs
erforderlich für
genauen Taktrückgewinnungsbetrieb.
-
Obwohl
nur einige wenige beispielhafte Ausführungsformen dieser Erfindung
beschrieben worden sind im Detail oben, werden die Fachleute schnell
einsehen, dass viele Modifikationen möglich sind in den beispielhaften
Ausführungsformen, ohne sich
materiell zu entfernen von den neuen Lehren und Vorteilen dieser
Erfindung. Demgemäß ist es
beabsichtigt, alle solche Modifikationen einzuschließen innerhalb
des Rahmens dieser Erfindung, wie definiert in den folgenden Ansprüchen. In
den Ansprüchen
ist beabsichtigt, dass Mittel-plus-Funktion Sätze die hierin beschriebenen
Strukturen abdecken als ausführend
die genannte Funktion und nicht nur strukturelle Äquivalente,
sondern auch äquivalente Strukturen.
Somit, obwohl ein Nagel und eine Schraube keine strukturellen Äquivalente
sein könnten,
weil ein Nagel eine zylindrische Oberfläche nutzt, um Holzteile zusammenzuhalten,
wohingegen eine Schraube eine schraubenförmige Oberfläche nutzt, in
dem Bereich des Befestigens von Holzteilen, könnten ein Nagel und eine Schraube äquivalente
Strukturen sein.