-
HINTERGRUND
DER ERFINDUNG
-
I. Gebiet
der Erfindung
-
Die
vorliegende Erfindung betrifft im Allgemeinen das Gebiet von Paketdatenkommunikationen unter
Verwendung von Verschlüsselungstechnologie zum
Schützen
von Information, und insbesondere das Vorsehen eines Verfahrens
und einer Vorrichtung zum Erreichen von Krypto-Synchronisation in solch
einem Kommunikationssystem.
-
II. Hintergrund
-
Das
Gebiet der Paketdatenkommunikationen hat weit verbreitete Akzeptanz
mit der Popularität des
Internets erlangt. Anfänglich
wurden Paketdatenkommunikationen über Drähte übertragen, mit verschiedenen
Kommunikationskomponenten, welche durch Drähte verbunden sind. Kürzlich traten
Anwendungen welche drahtlose Sendung von Paketdaten benötigen in
Erscheinung, in der Form von drahtlosen Telefonen und anderen drahtlosen
Kommunikationsgeräten,
wie drahtlosen Modems. Jüngst
entstand ein Bedarf bei diesen drahtlosen Kommunikationsgeräten dafür, dass
sie Techniken verwenden, um sicher zu stellen, dass bestimmte Sendungen
nicht durch nicht beabsichtigte Parteien abgefangen werden. Solche
Schutztechniken verwenden oft Verschlüsselungstechnologie, und sind
nützlich
in solchen Anwendungen wie Militär,
Polizei und andere Sicherheitsanwendungen.
-
Eine
Technik zum Verwenden von Verschlüsselungstechnologie in einem
drahtlosen Kommunikationsgerät
ist analoge Signale in diskrete Datenpakete, oder Rahmen, zu digitalisieren,
einen Zufallscode für
jeden Rahmen zu generieren, dann den Code auf jeden Rahmen zum Verschlüsseln der
darin enthaltenen Information anzuwenden. Die Zufallscodes welche
durch die Technik generiert wurden können unter Verwendung von gut
bekannten Verschlüsselungstechniken
mit öffentlichem
Schlüssel
ausgeführt
werden, welche Information unter Verwendung eines öffentlichen
Schlüssels,
oder Co des, verschlüsseln, und
die Information unter Verwendung eines privaten Schlüssels entschlüsseln.
-
Die
Verschlüsselungstechnik,
welche oben stehend beschrieben wurde, ist insbesondere zur Verwendung
in Datenkommunikationssystemen geeignet, aufgrund der Art von vielen
Datensendeprotokollen wie TCP oder IP. In solchen Systemen werden Daten
als diskrete Segmente, oder Datenrahmen, gesendet, wobei jeder Datenrahmen
im Allgemeinen eine vorbestimmte Anzahl von Informationsbits enthält. Alternativ
sind andere Datenrahmen durch eine vorbestimmte Zeitdauer definiert,
welche eine variable Anzahl von Informationsbits innerhalb jedes
Rahmens enthalten. Traditionell wurden solche Datenkommunikationssysteme
verwendet, um Information zu senden, welche nicht zeitkritisch ist,
wie E-Mail, Datendateien und Internetwebseiteninformation.
-
Kürzlich wurden
Datenkommunikationssysteme verwendet um auch zeitkritische Information
zu senden, einschließlich
Audioinformation, wie menschliche Sprache, und Videoinformation.
In solchen Systemen wird zeitkritische Information in digitale Information
konvertiert, oft in Datenrahmen wie oben stehend beschrieben. Die
Datenrahmen können
dann über
ein Computernetzwerk wie das Internet unter Verwendung von gut bekannten
Datensendeprotokollen wie TCP und IP gesendet werden.
-
Eines
der hauptsächlichen
Probleme des Sendens von zeitkritischer Information unter Verwendung
von Datenprotokollen ist die Verzögerung, welche mit dem Sendevorgang
verbunden ist. Viele Datenprotokolle verwenden einen erneuten Sendevorgang
wenn die Datensegmente nicht korrekt empfangen wurden. Der erneute Übertragungsvorgang
fügt eine
Verzögerung,
oder Latenzzeit, in nachfolgend gesendeten Datenrahmen ein, was
wiederum die zeitkritischen Daten beeinflusst. Zum Beispiel können Verzögerungen
von mehr als ein paar hundert Millisekunden in Sprache zu einer
nicht akzeptablen Sprachqualität
führen.
-
Eine
Lösung
um das Problem der Latenzzeit zu reduzieren, wenn zeitkritische
Information unter Verwendung eines Datenkommunikationssystems gesendet
wird, ist Datenrahmen fallen zu lassen, entweder bei einem Sender
oder einem Empfänger, wenn
die Latenzzeit eine vorbestimmte Schwelle übersteigt. In einem Sender
werden Rahmen fallen gelassen durch die Sendung von nur eines Teils
der gesamten Anzahl von Rahmen, welche zur Sendung verfügbar sind.
In einem Empfänger
werden Rahmen fallen gelassen durch Ignorieren eines Teils der gesamten
Anzahl von empfangenen Rahmen.
-
Während das
Fallen lassen von Datenrahmen das Problem der Latenzzeit reduziert
fügt es
ein anderes Problem in Kommunikationssysteme ein, welche die oben
erklärte
Kryptographietechnik verwenden. Wenn nämlich ein Datenrahmen bei einem Sender
fallen gelassen wird ist die Entschlüsselung von nachfolgenden Rahmen
bei dem Empfänger nicht
möglich,
weil die sequentielle Nummerierung von jedem Rahmen als ein Ergebnis
des Verschlüsselungsvorgangs
gestört
ist. Der Entschlüsselungsvorgang
hängt von
einem Strom von aufeinanderfolgend nummerierten Rahmen ab, wie sie
durch den Verschlüsselungsprozess
bei dem Sender generiert wurden. Wenn deshalb Rahmen bei dem Sender
vor der Verschlüsselung
fallen gelassen werden sind die Rahmen, welche durch den Entschlüsselungsprozess
empfangen wurden nicht länger
mit dem Verschlüsselungsprozess
synchronisiert, was zu Rahmen führt,
welche nicht korrekt entschlüsselt
werden.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung ist ein Verfahren und eine Vorrichtung zum
Erreichen von Krypto-Synchronisation in einem Paketdatenkommunikationssystem
zwischen einem Sender und einem Empfänger. In einem Sender wird
Information in Datenrahmen digitalisiert und dann zu einem Vocoder
geliefert, welcher Vocoderrahmen generiert. Die Vocoderrahmen werden
in einem Speicher gespeichert, und dann zu einem Verschlüsselungsmodul
zum Verschlüsseln
von jedem Vocoderrahmen vor der Sendung geliefert. Vocoder rahmen
werden durch Kombinieren von jedem Rahmen mit einem einzigartigen Code,
oder Codebuch, welches durch das Verschlüsselungsmodul generiert wird,
verschlüsselt.
Das Codebuch wird unter Verwendung von mindestens einem Zustandsvektor
generiert, welcher im Allgemeinen eine sequentielle Zählung ist,
welche bei einer vorbestimmten Rate, normalerweise ein Vielfaches der
Rate mit welcher Vocoderrahmen generiert werden, erhöht wird.
-
Wenn
Rahmen bei dem Sender fallen gelassen werden, oftmals um Sendelatenzzeit
zu verringern, wird der Zustandsvektor für eine Zeit, welche proportional
ist zu der Anzahl von fallen gelassenen Rahmen, gesperrt. Wenn ein
Rahmen fallen gelassen wird, wird deshalb der Zustandsvektor nicht
erhöht.
Wenn die gewünschte
Anzahl von Rahmen fallen gelassen wurde wird der Zustandsvektor
wieder frei gegeben, und nimmt die Erhöhung mit der vorbestimmten
Rate wieder auf.
-
Der
Effekt des Festhaltens des Zustandsvektors während Perioden des Fallen Lassens
von Rahmen erlaubt sequentielle Verschlüsselung für jeden Rahmen, welcher zu
dem Verschlüsselungsmodul geliefert
wird. Die Technik erlaubt, dass jede Anzahl von Rahmen bei dem Sender
vor der Verschlüsselung
fallen gelassen wird, während
sichergestellt wird, dass der Entschlüsselungsvorgang bei dem Empfänger mit
dem Verschlüsselungsprozess
synchronisiert ist.
-
Bei
dem Empfänger
werden Rahmen empfangen und in einer Warteschlange gespeichert.
Rahmen werden zu dem Entschlüsselungsmodul
geliefert, um Entschlüsselungsvocoderrahmen
zu generieren. Ein Zustandsvektorgenerator welcher innerhalb des
Empfängers
angeordnet ist wird mit der vorbestimmten Rate erhöht. Wenn
jeder Rahmen zu dem Entschlüsselungsmodul
geliefert wird wird er unter Verwendung eines Codebuchs welches
von dem derzeitigen Zustandsvektor abgeleitet ist entschlüsselt.
-
Wenn
eine Anzahl von Rahmen, welche innerhalb der Warteschlange gespeichert
sind, zu dem Punkt reduziert wird, wo es keine Rahmen mehr gibt, welche
zur Entschlüsselung
verfügbar
sind, bekannt als ein Unterlaufzustand, wird ein Löschungs-
bzw. Auslöschungsrahmen
direkt zu einem Vocoder geliefert, und der Zustandsvektorgenerator
wird gesperrt, was den Zustandsvektor vom erhöht bzw. inkrementiert werden
abhält.
Wenn Rahmen zur Entschlüsselung
verfügbar
werden in der Warteschlange zu einer späteren Zeit, wird der Zustandsvektorgenerator
frei gegeben, wodurch erlaubt wird, dass sich der Zustandsvektor
erhöht,
wodurch nachfolgende Zustandsvektoren zu dem Entschlüsselungsmodul
geliefert werden und Krypto-Synchronisation
mit dem Verschlüsselungsprozess
aufrecht erhalten wird.
-
Wenn
viele Rahmen in der Warteschlange vor der Entschlüsselung
zu einer gegebenen Zeit gespeichert sind, kann eine Verzögerung,
oder Latenzzeit, resultieren. Während
Telefonkommunikationen verursacht Latenzzeit eine ärgerliche
Verzögerung zwischen
der Zeit, wenn ein Benutzer in einen Sender spricht und der Zeit,
wenn die Sprache durch den Empfänger
gehört
wird. Um das Problem der Latenzzeit zu reduzieren werden einige
der Rahmen, welche in der Warteschlange gespeichert sind, nicht durch
das Entschlüsselungsmodul
verarbeitet, oder durch irgend ein anderes Element in dem Empfänger. Dies
ist als Rahmen fallen lassen bekannt.
-
Wenn
Rahmen von der Warteschlange fallen gelassen werden wird der Zustandsvektor
derart angepasst, dass Krypto-Synchronisation von nachfolgenden
Rahmen aufrecht erhalten wird. Um dies zu Erreichen wird der Zustandsvektor
durch die Anzahl von aufeinander folgenden fallen gelassenen Rahmen
plus eins angepasst.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
ein funktionales Blockdiagramm eines drahtlosen Senders unter Verwendung
von kryptographischen Sicherheitstechniken wie in der vorliegenden
Erfindung verwendet;
-
2a, 2b und 2c zeigen
die Beziehung zwischen Vocoderrahmen und einem Zustandsvektor wie
in dem Sender von 1 verwendet;
-
3 zeigt
ein funktionales Blockdiagramm eines drahtlosen Empfängers unter
Verwendung von kryptographischen Sicherheitstechniken wie in der vorliegenden
Erfindung verwendet;
-
4a, 4b und 4c zeigen
die Beziehung zwischen Vocoderrahmen und einem Zustandsvektor wie
in dem Empfänger
von 3 verwendet;
-
5 ist
ein Flussdiagramm, welches das Verfahren der vorliegenden Erfindung
wie in dem Sender von 1 verwendet zeigt;
-
6 ist
ein Flussdiagramm, welches das Verfahren der vorliegenden Erfindung
wie in dem Empfänger
von 3 während
einem Unterlaufzustand verwendet zeigt; und
-
7 ist
ein Flussdiagramm, welches das Verfahren der vorliegenden Erfindung
wie bei dem Empfänger
von 3 während
eines Zustands des Fallenlassens von Rahmen zeigt.
-
DETAILIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
Die
hierin beschriebenen Ausführungsbeispiele
sind mit Bezug auf ein drahtloses Kommunikationssystem, welches
gemäß der Verwendung
von CDMA Signalverarbeitungstechniken der IS-95, IS-707 und IS-99 Übergangsstandards
betrieben wird. Während
die vorliegende Erfindung besonders durch Verwendung innerhalb eines
solchen Kommunikationssystems geeignet ist soll es verstanden werden,
dass die vorliegende Erfindung in verschiedenen anderen Typen von
Kommunikationssystemen, welche Information in diskreten Paketen
senden, auch bekannt als Datenpakete, Datenrahmen oder einfach Rahmen,
verwendet werden kann, einschließlich sowohl drahtloser wie
auch drahtgebundenen Kommunikationssystemen und satellitenbasierten
Kommunikationssystemen. Zusätzlich
werden während
der Beschreibung verschiedene gut bekannte Systeme in Blockform
dargelegt. Dies wird zum Zweck der Klarheit getan.
-
Ein
funktionales Blockdiagramm eines drahtlosen Senders 100 unter
Verwendung von kryptographischen Sicherheitstechniken ist in 1 gezeigt. Audioinformation,
wie Sprache, wird von akustischer Energie in elektrische Energie
durch den Wandler 102, typischerweise ein Mikrofon, konvertiert.
Der Wandler 102 kann alternativ ein Videogerät, zum Beispiel
eine Digitalkamera oder einen Videorekorder zum Aufnehmen von Lichtenergie
und Konvertieren der Lichtenergie in elektrische Signale aufweisen. Die
elektrische Energie, welche durch den Wandler 102 generiert
wird, wird zu einem Vocoder 104 geliefert, welcher im Allgemeinen
die Bandbreite, welche zum Senden der Audioinformation notwendig
ist, reduziert. Alternativ wird ein Verarbeitungsgerät, welches
für den
Typ von Wandler geeignet ist, anstelle des Vocoders 104 verwendet,
wie ein Videoverarbeitungsgerät
in dem Fall dass eine Kamera als Wandler 102 verwendet
wird. Typischerweise generiert der Vocoder 104 Datenrahmen
bei einer konstanten, festen Rate, welche die ursprüngliche
Audioinformation repräsentiert.
Alternativ generiert der Vocoder 104 Datenrahmen mit einer
variablen Rate. Jeder Datenrahmen ist normalerweise in der Länge fixiert,
gemessen in Millisekunden. Die Datenrahmen werden zu einem Speicher 106 in
dem exemplarischen Ausführungsbeispiel
geliefert, wo sie kurz vor der Verschlüsselung gespeichert werden
und weiter verarbeitet werden durch andere funktionale Elemente des
Senders 100. In dem exemplarischen Ausführungsbeispiel speichert der
Speicher 106 jeweils bzw. zu einem Zeitpunkt nur einen
Vocoderrahmen. In einem anderen Ausführungsbeispiel wird der Speicher 106 nicht
zum Speichern von Vocoderrahmen, wie sie durch den Vocoder 104 erzeugt
wurden, verwendet. Vielmehr werden Rahmen direkt zu dem Verschlüsselungsmodul 108 geliefert.
-
Der
Vocoder 104 kann ferner verbessert werden durch zur Verfügung stellen
von variablen Datenraten innerhalb der Datenrahmen welche er erzeugt. Ein
Beispiel eines solchen Vocoders mit variablen Datenrahmen findet
sich in dem US Patent Nummer 5,414,796 (das '796 Patent), benannt „VARIABLE RATE
VOCODER"; dem Bevollmächtigten
der vorliegenden Erfindung zugeordnet. Wenn wenige oder keine Information
zur Sendung verfügbar
ist erzeugen Vocoder mit variablen Raten Datenrahmen mit reduzierten
Datenraten, wodurch die Sendekapazität des drahtlosen Kommunikationssystems
erhöht
wird. In dem Vocoder mit variabler Datenrate wie in dem '796 Patent beschrieben
weisen Datenrahmen Daten zu entweder der vollen, einer halben, einer
viertelten oder einer achtelten der Datenrate der höchsten Datenrate,
welche in dem Kommunikationssystem verwendet wird, auf.
-
Das
Verschlüsselungsmodul 108 ist
zum Verschlüsseln
von jedem Datenrahmen mit einem einzigartigen Code, oder Codebuch,
verantwortlich. Im Allgemeinen wird ein Codebuch für jeden
Datenrahmen welcher verschlüsselt
werden soll erzeugt, im Allgemeinen mit derselben Rate mit der Rahmen durch
den Vocoder 104 generiert werden. Deshalb ist ein Codebuch
im Allgemeinen für
jeden Datenrahmen welcher verschlüsselt werden soll verfügbar. Andere
Techniken erlauben, dass zwei Datenrahmen mit einem Codebuch verschlüsselt werden,
wobei das Codebuch zweimal so viele Bits wie ein Datenrahmen hat.
-
Das
Codebuch wird unter Verwendung von einer von mehreren gut bekannten
Techniken erzeugt. Unter diesen ist der Datenverschlüsselungsstandard
(GES), FEAL, und der internationale Datenverschlüsselungsalgorithmus (IDEA =
International Data Encryption Algorithm). In dem exemplarischen Ausführungsbeispiel
der vorliegenden Erfindung wird DES verwendet um Codebücher zu
erzeugen, unter Verwendung eines Zustandsvektors zusammen mit einem
oder mehreren Verschlüsselungsschlüssel, wie
in 1 gezeigt ist. Der Zustandsvektor ist in seiner
einfachsten Form eine Zellsequenz, welche mit einer vorbestimmten
Rate erhöht
wird, im Allgemeinen gleich zu einem Vielfachen der Rate mit welcher Datenrahmen
durch den Vocoder 104 generiert werden. Der Zustandsvektor
wird durch den Zustandsvektorgenerator 110 generiert, unter
Verwendung von gut bekannten Techniken, wie diskrete elektronische
Komponenten, oder ein digitaler Mikroprozessor in Kom bination mit
einem Satz von Softwareanweisungen. Andere Techniken, welche im
Stand der Technik bekannt sind, können auch betrachtet werden.
-
Das
Verschlüsselungsmodul 108 erzeugt
ein Codebuch jedes Mal, wenn der Zustandsvektorgenerator 110 erhöht wird.
Jedes Codebuch wird digital mit einem Datenrahmen, welcher in dem
Speicher 106 gespeichert ist, kombiniert, im Allgemeinen
in der Reihenfolge der Datenrahmen, welche im Speicher 106 gespeichert
sind, um einen verschlüsselten
Datenrahmen für
jeden Datenrahmen, welcher zu dem Verschlüsselungsmodul 108 geliefert
wird, zu erzeugen. Codebücher
werden mit Datenrahmen unter Verwendung von gut bekannten Techniken
wie das Addieren von einem Datenrahmen zu einem Codebuch unter Verwendung
von Modulo 2 Arithmetik kombiniert. In einem anderen Ausführungsbeispiel werden
zwei Datenrahmen zu einem einzigen Codebuch addiert, wobei das Codebuch
in diesem Ausführungsbeispiel
zweimal die Anzahl von Bits wie ein einziger Datenrahmen hat.
-
In
der vorliegenden Erfindung werden nicht alle Vocoderrahmen, welche
durch den Vocoder 104 erzeugt wurden, zu einem Empfänger gesendet.
Einige der Rahmen werden eliminiert, oder „fallen gelassen", bevor sie durch
das Verschlüsselungsmodul 108 verschlüsselt werden.
Rahmen werden fallen gelassen, um den Effekt der Latenzzeit, oder
Verzögerung,
zwischen einem Sender und einem Empfänger zu reduzieren. Latenzzeit
kann ein Problem sein, wenn Echtzeit, oder nahe Echtzeitinformation
unter Verwendung von Datenprotokollen gesendet wird, weil die Datenprotokolle
im Allgemeinen erneute Sendung von Rahmen anfordern, um einen hohen Prozentsatz
von fehlerfrei empfangenen Rahmen sicherzustellen. Erneute Sendungen
von Rahmen verursachen einen Rückstau
in der Anzahl von Rahmen, welche gesendet werden sollen, was zu
erhöhter
Latenzzeit führt.
Durch Reduzierung der gesamten Anzahl von Rahmen, welche gesendet
werden sollen, wird die Latenzzeit reduziert oder eliminiert.
-
Unter
Bezugnahme auf 1 steuert ein Prozessor 120 im
Allgemeinen den Vorgang des Fallen lassens von Rahmen, wie auch
die Anzahl von sol chen Vorgängen
innerhalb des Senders 100. Der Prozessor 120 weist
ein digitales Verarbeitungsgerät wie
einen gut bekannten Mikrocomputer, DSP, oder benutzerspezifischen
integrierten ASIC auf. Rahmen können
in einer Anzahl von Verfahren fallen gelassen werden. Zum Beispiel
können
Rahmen mit einer einzigen festen Rate, einer zweifachen festen Rate,
mit einer variablen Rate oder einer Kombination von jeder dieser
Techniken fallen gelassen werden.
-
Wenn
eine einzige, feste Rate des Fallen-lassens von Rahmen verwendet
wird, werden Rahmen durch den Prozessor 120 mit einer vorbestimmten,
festen Rate fallen gelassen. In dem exemplarischen Ausführungsbeispiel
ist die Rate, mit der ein Rahmen fallengelassen wird, ein Rahmen
pro hundert Rahmen, die durch den Vocoder 104 generiert
wurden, oder 1 %. Der Prozessor 120 zählt die Anzahl von Rahmen,
welche durch den Vocoder 104 generiert wurden. Wenn der
einhundertste Rahmen generiert wurde lässt der Prozessor 120 den
Rahmen dadurch fallen, dass er ihn nicht im Speicher 106 speichert,
wenn ein solcher Speicher verwendet wird. Wenn der Speicher 106 nicht
verwendet wird wird der einhundertste Rahmen ganz einfach nicht
zu dem Verschlüsselungsmodul 108 geliefert.
Der nächste Rahmen
wird durch den Vocoder 104 erzeugt, der einhunderterste
Rahmen wird dann zu dem Speicher 106 oder direkt zu dem
Verschlüsselungsmodul 108 geliefert,
wie auch immer. Alternativ können
andere vorbestimmte festen Raten verwendet werden, jedoch haben
Tests gezeigt, dass das Fallen lassen von mehr als 10 % der Rahmen
zu schlechter Sprachqualität
bei dem Empfänger
führt.
-
In
dem Fall eines Schemas zum Fallen lassen von Rahmen mit einer einzigen
festen Rate werden Rahmen ohne Berücksichtigung davon, wie viel oder
wie wenig Kommunikationskanallatenzzeit zwischen dem Sender und
dem Empfänger
existiert, fallen gelassen. Jedoch überwacht in einem anderen Ausführungsbeispiel
der Prozessor 120 die Kommunikationskanallatenzzeit und
implementiert die Technik zum Fallen lassen von Rahmen mit fester
Rate nur, wenn die Kommunikationskanallatenzzeit eine vorbestimmte
Schwelle übersteigt.
Die Kommunikationskanallatenzzeit wird im Allgemeinen durch Überwachen
der Kommunikationskanalqualität
bestimmt. Die Kommunikationskanalqualität wird durch Verfahren bestimmt,
welche im Stand der Technik gut bekannt sind und unten stehend beschrieben
werden. Wenn die Kommunikationskanallatenzzeit unter die vorbestimmte
Schwelle fällt
fährt der
Prozessor 120 nicht mit dem Vorgang des Fallen lassens
von Rahmen fort.
-
Fallen
lassen von Rahmen kann auch unter Verwendung eines Ansatzes mit
dualer, fester Rate implementiert werden. In diesem Verfahren werden Rahmen
mit einer von zwei festen Raten fallen gelassen, abhängig von
der Kommunikationskanallatenzzeit. Eine erste Rate wird verwendet,
um Rahmen fallen zu lassen, wenn die Kommunikationskanallatenzzeit
weniger als eine vorbestimmter Schwelle ist. Eine zweite feste Rate
wird verwendet, um Rahmen fallen zu lassen, wenn die Kommunikationskanallatenzzeit
die vorbestimmte Schwelle übersteigt.
Wiederum wird die Kommunikationskanallatenzzeit im Allgemeinen von
der Kommunikationskanalqualität abgeleitet,
welche wiederum von der Kanalfehlerrate abhängt.
-
Oft
wird die Kommunikationskanalqualität, und somit die Kommunikationskanallatenzzeit,
in Ausdrücken
einer Kanalfehlerrate, oder in der Anzahl von Rahmen, welche durch
den Empfänger
fehlerhaft empfangen wurden, dividiert durch die gesamte Anzahl
von Rahmen, welche in einer gegebenen Zeitperiode gesendet wurden,
ausgedrückt.
Eine typische vorbestimmte Schwelle in dem Verfahren des Fallen
lassens mit dualer fester Rate kann dann gleich sieben Prozent sein,
was bedeutet dass wenn mehr als sieben Prozent der gesendeten Rahmen fehlerhaft
empfangen wurden, im Allgemeinen aufgrund eines verschlechterten
Kanalzustands, Rahmen mit der zweiten Rate fallen gelassen werden. Die
zweite Rate ist im Allgemeinen größer als die erste Rate. Wenn
die Kanalqualität
gut ist wird die Fehlerrate im Allgemeinen kleiner sein als die
vorbestimmte Rate, deshalb werden Rahmen unter Verwendung der ersten
Rate fallen gelassen, typischerweise gleich oder zwischen ein und
vier Prozent.
-
In
der Praxis kann die erste Rate zum Fallen lassen von Rahmen gleich
ein Prozent sein, und die zweite Rate zum Fallen lassen von Rahmen
kann gleich acht Prozent sein. Die vorbestimmte Schwelle wird auf
einen Pegel gesetzt welcher eine verschlechterte Kanalqualität anzeigt,
ausgedrückt
in Ausdrücken
von dem Prozentsatz von Rahmen welche durch den Empfänger fehlerhaft
empfangen wurden. In dem vorliegenden Beispiel wird eine Fehlerrate
von sieben Prozent als die vorbestimmte Schwelle gewählt. Der
Prozessor 120 ist dazu in der Lage, die Kanalqualität in einer
von mehreren Verfahren, welche im Stand der Technik gut bekannt
sind, zu bestimmen. Zum Beispiel kann der Prozessor die Anzahl von
NAKs, welche durch den Sender 100 empfangen wurden, zählen. Eine
NAK (= negative acknoledgement) ist der geläufige Industrieausdruck, welcher „negative
Bestätigung" bedeutet. Eine NAK
wird durch einen Empfänger
gesendet wenn er Fehler beim Empfangen von Daten von dem Sender 100 detektiert.
Wenn eine NAK durch den Sender 100 empfangen wird werden
einer oder mehrere vorher gesendeten Rahmen erneut gesendet, und
zwar diejenigen Rahmen, welche in der NAK identifiziert sind. Eine
höhere
Anzahl von NAKs indiziert eine schlechte Kanalqualität, weil
mehrere erneute Übertragungen
von Rahmen notwendig sind um den schlechten Kanalzustand auszugleichen.
Der Leistungspegel von gesendeten Rahmen ist eine andere Indikation, welche
der Prozessor verwenden kann um die Kanalqualität zu bestimmen. Alternativ
kann der Prozessor 120 einfach die Kanalqualität basierend
auf der Anzahl von Rahmen, welche in einer Sendewarteschlange gespeichert
sind, wie dem Speicher 106, bestimmen. Unter schlechtem
Kanalzustand tritt ein Rückstau
von Rahmen in dem Speicher 106 aufgrund einer großen Anzahl
von erneuten Übertragungen
von Rahmen auf, was dazu führt,
dass die Anzahl von Rahmen, welche im Speicher 106 gespeichert
sind, sich erhöht.
Wenn der Kanalzustand gut ist ist die Anzahl von Rahmen, welche
im Speicher 106 gespeichert sind, relativ klein.
-
Wenn
sich die Kanalqualität
erhöht
werden Rahmen mit einer ersten Rate fallen gelassen. Wenn sich die
Kanalqualität
verschlechtert werden Rahmen mit einer zweiten, höheren Rate
fallen gelassen.
-
Der
Grund, warum Rahmen mit einer höheren
Rate fallen gelassen werden wenn die Kanalqualität schlecht ist, ist, dass mehr
erneute Übertragungen
von Rahmen auftreten während
schlechtem Kanalzustand, was dazu führt, dass ein Rückstau von Rahmen,
welche im Speicher 106 auf die Sendung warten, auftritt.
Bei dem Empfänger,
während schlechtem
Kanalzustand, ist ein Empfangspuffer aufgrund des Fehlens von fehlerfrei
empfangenen Rahmen zunächst
unterversorgt, und läuft
dann über, wenn
sich der Kanalzustand verbessert. Wenn der Empfangspuffer unterläuft bzw.
unterversorgt ist, werden Löschungsrahmen
zu einem Sprachdecodierer geliefert, um die Störung in der Sprachqualität für einen
Benutzer zu minimieren. Wenn der Empfangspuffer überläuft, oder relativ groß wird,
ist die Latenzzeit erhöht.
Wenn deshalb die Kommunikationskanalqualität verschlechtert ist, ist es
wünschenswert, Rahmen
mit einer erhöhten
Rate bei dem Sender 100 fallen zu lassen, so dass weder
der Speicher 106 noch der Empfangspuffer zu groß werden,
wodurch die Latenzzeit auf nicht mehr tolerable Pegel erhöht wird.
-
Ein
anderes Verfahren des Fallen lassens von Rahmen bei dem Sender 100 ist
durch fallen lassen von Rahmen mit einer variablen Rate, abhängig von
der Kommunikationskanallatenzzeit. In diesem Ausführungsbeispiel
bestimmt der Prozessor 120 die Qualität des Kommunikationskanals
unter Verwendung von einer der oben beschriebenen Techniken. Die
Rate, mit welcher Rahmen fallen gelassen werden, ist invers proportional
zu der Kommunikationskanalqualität.
Wenn die Kanalqualität
durch die Kanalfehlerrate bestimmt wird, ist die Rate, mit welcher Rahmen
fallen gelassen werden, direkt proportional zu der Kanalfehlerrate.
-
Ein
weiteres Verfahren des Fallen lassens von Rahmen bei dem Sender 100 ist
durch Fallen-lassen von Rahmen gemäß der Rate, mit welcher die
Datenrahmen durch den Vocoder 104 codiert wurden. In diesem
Ausführungsbei spiel
weist der Vocoder 104 einen Vocoder mit variabler Rate,
wie oben stehend beschrieben, auf. Der Vocoder 104 codiert Audioinformation
in Datenrahmen mit verschiedenen Datenraten, in dem exemplarischen
Ausführungsbeispiel
4 Raten: Volle Rate, halbe Rate, viertel Rate und achtel Rate. Der
Prozessor 120, welcher innerhalb des Senders angeordnet
ist, bestimmt die Kommunikationskanallatenzzeit im Allgemeinen durch Bestimmung
der Kommunikationskanalqualität
unter Verwendung der oben diskutierten Techniken. Wenn der Prozessor 120 bestimmt,
dass der Kommunikationskanal verschlechtert wurde unter eine vorbestimmte
Schwelle wird eine Prozentzahl von Datenrahmen, welche die geringste
codierte Rate haben welche durch den Vocoder 104 generiert
wurden, fallen gelassen. In dem exemplarischen Ausführungsbeispiel
wird eine Prozentzahl von achtel Raten Rahmen fallen gelassen wenn
die Kommunikationskanalqualität
um mehr als eine vorbestimmte Schwelle verschlechtert wurde. Wenn
der Prozessor 120 bestimmt, dass der Kommunikationskanal
weiter verschlechtert wurde unter eine zweite vorbestimmte Schwelle
wird eine Prozentzahl von Datenrahmen welche die zweit geringste
Codierrate haben, welche durch den Vocoder 104 generiert
wurden, zusätzlich zu
den Rahmen fallen gelassen, welche die geringste Codierrate haben.
In dem exemplarischen Ausführungsbeispiel
wird eine Prozentzahl von sowohl viertel Raten Rahmen wie auch achtel
Raten Rahmen fallen gelassen wenn der Kommunikationskanal um mehr
als eine zweite vorbestimmte Schwelle degradiert wird, wie sie durch
den Vocoder 104 generiert wurden. Ähnlich wird eine Prozentzahl
von Halbraten- und Vollraten Rahmen fallen gelassen wenn der Kommunikationskanal
sich weiter verschlechtert. In einem dazu in Beziehung stehenden
Ausführungsbeispiel
wird, wenn der Kommunikationskanal unter die zweite vorbestimmte
Schwelle verschlechtert wird nur eine Prozentzahl von Datenrahmen
welche eine Codierrate der zweit geringsten Codierrate haben fallen
gelassen, während
Datenrahmen welche eine Codierrate gleich zu der geringsten Codierrate haben
nicht fallen gelassen werden.
-
Die
Prozentzahl von Rahmen, welche in einem der oben beschriebenen Szenarien
fallen gelassen werden ist im Allgemeinen eine vorab bestimmte, feste Anzahl,
und kann entweder die gleiche für
jede Rahmencodierrate sein oder davon verschieden. Wenn zum Beispiel
Rahmen mit der geringsten Rate fallen gelassen werden kann der vorbestimmte
Prozentsatz sechzig Prozent sein. Wenn die zweit geringsten und
geringsten Rahmen beide fallen gelassen werden kann der vorbestimmte
Prozentsatz gleich sechzig Prozent sein, oder er kann gleich einem
kleinerem Prozentsatz, zum Beispiel dreißig Prozent, sein.
-
Nachdem
die verschlüsselten
Datenrahmen durch das Verschlüsselungsmodul 108 generiert
wurden werden sie in dem Speicher 106 gespeichert oder
alternativ in einem zweiten Speicher (nicht gezeigt) bis sie für weitere
Verarbeitungselemente benötigt
werden. Wenn zum Beispiel Datenprotokolle verwendet werden um die
verschlüsselten
Datenrahmen zu senden wird der Formatierprozessor 112 die verschlüsselten
Datenrahmen, welche im Speicher 106 gespeichert sind, verwenden,
um Datensegmente gemäß dem bestimmten
Datenprotokoll, welches in Verwendung ist, zu konstruieren, wie
das gut bekannte TCP Datenprotokoll. Alternativ, oder zusätzlich dazu,
kann der Formatierprozessor 112 eines oder mehrere andere
Datenprotokolle verwenden, wie das gut bekannte RLP Datenprotokoll
welches primär
in CDMA Kommunikationssystemen verwendet wird.
-
Die
formatierten Rahmen werden als nächstes
zu dem Modulator 114 geliefert. Der Modulator 114 moduliert
die formatierten Rahmen unter Verwendung der vorbestimmten Modulationstechnik
des drahtlosen Kommunikationssystems. Beispiele von verschiedenen
Modulationstechniken umfassen Zeitmultiplex-Vielfachzugriff (TDMA
= Time Division Multiple Access), Codemultiplex-Vielfachzugriff
(CDMA = Code Division Multiple Access), und Frequenzmultiplex-Vielfachzugriff
(FDMA = Frequency Division Multiple Access).
-
Wenn
die Datensegmente einmal moduliert wurden werden sie durch den Sender 106 heraufkonvertiert
und gesendet. Das heraufkonvertierte Signal wird zu der Antenne 118 zur
drahtlosen Sendung zu einem Empfänger
geliefert.
-
Ein
Problem bei Verwendung des Verschlüsselungsverfahrens zusammen
mit dem Verfahren des Fallen lassens von Rahmen wie oben stehend beschrieben
ist, dass der Vorgang des Fallen lassens von Rahmen Diskontinuitäten in den
verschlüsselten Rahmen,
welche durch das Verschlüsselungsmodul 108 generiert
wurden, verursacht. Diskontinuitäten resultieren
daraus, dass der Zustandsvektor, welcher durch den Zustandsvektorgenerator 110 generiert wurde,
zu einer Zeit erhöht
bzw. inkrementiert wird, zu welcher kein Vocoderrahmen für die Verschlüsselung
verfügbar
ist, aufgrund des Vorgangs des Fallen-lassens von Rahmen. Dies ist
am besten in den 2a, 2b und 2c illustriert.
-
2a illustriert
eine sequentielle Serie von Vocoderrahmen welche mit eins bis sechs
nummeriert sind, und der Wert des Zustandsvektors, welcher durch
den Zustandsvektorgenerator 108 generiert wurde korrespondiert
zu jedem Vocoderrahmen. In dem exemplarischen Ausführungsbeispiel
werden Vocoderrahmen mit einer konstanten Rate von einem Rahmen
alle zwanzig Millisekunden durch den Vocoder 104 generiert.
Jeder Vocoderrahmen kann kurz in dem Speicher 106 vor der
Verwendung durch das Verschlüsselungsmodul 108 gespeichert
werden. In einem alternativen Ausführungsbeispiel werden die Vocoderrahmen
direkt zu dem Verschlüsselungsmodul 108 geliefert.
In jedem Fall werden Vocoderrahmen zu dem Verschlüsselungsmodul 108 mit
der gleichen Rate geliefert, mit welcher der Vocoder 104 Vocoderrahmen
erzeugt, in dem exemplarischen Ausführungsbeispiel alle 20 Millisekunden.
Der Zustandsvektorgenerator 110 wird mit der vorbestimmten
Rate erhöht,
im Allgemeinen ein Vielfaches der Rate, mit welcher Vocoderrahmen
durch den Vocoder 104 generiert werden.
-
In 2a wird
der Vocoderrahmen 1 durch das Verschlüsselungsmodul 108 unter
Verwendung eines Codebuchs, welches von dem Zustandsvektor 1 abgeleitet
ist, codiert. Der Rahmen 2 wird als nächstes codiert, unter Verwendung
eines Codebuchs, welches von dem Zustandsvektor 2 abgeleitet ist.
Der Rahmen 3 wird als nächstes
codiert, unter Verwendung eines Code buchs, welches von dem Zustandsvektor 3 abgeleitet
ist, und so weiter. In einem Empfänger werden die verschlüsselten
Vocoderrahmen entschlüsselt
unter Verwendung eines Zustandsvektors, welcher mit Rahmen synchronisiert ist,
welche durch den Sender 100 verschlüsselt wurden. Mit anderen Worten
wird der Vocoderrahmen 1, welcher unter Verwendung eines
Codebuchs welches von dem Zustandsvektor 1 abgeleitet wurde verschlüsselt wurde,
unter Verwendung eines Codebuchs welches von dem Zustandsvektor
gleich zu eins abgeleitet wurde, entschlüsselt. Der Vocoderrahmen 2 wird
unter Verwendung eines Codebuchs, welches von einem Zustandsvektor
gleich zu zwei abgeleitet wurde, entschlüsselt, und so weiter.
-
2b illustriert
ein Problem des Verschlüsselungsvorgangs
von 2a, wenn ein Rahmen bei dem Sender 100 fallen
gelassen wird. Wie zuvor sind Vocoderrahmen 1 bis 6 in
der Sequenz wie durch den Vocoder 104 generiert gezeigt.
Zunächst
wird der Vocoderrahmen 1 generiert und durch das Verschlüsselungsmodul 108 (mit
oder ohne die Verwendung des Speichers 106) verschlüsselt, unter
Verwendung eines Codebuchs, welches von dem Zustandsvektor 1 abgeleitet
ist. Als nächstes
wird der Vocoderrahmen 2 durch den Vocoder 104 generiert
und dann unter Verwendung eines Codebuchs, welches von dem Zustandsvektor 2 abgeleitet
ist, verschlüsselt.
Als nächstes
wird der Rahmen 3 durch den Vocoder 104 generiert,
jedoch bestimmt der Prozessor 120, dass mindestens ein
Rahmen fallen gelassen werden soll. Deshalb wird der Rahmen 3 nicht
zu dem Verschlüsselungsmodul 108 geliefert.
Zwischenzeitlich fährt der
Zustandsvektorgenerator 110 damit fort, sich zu erhöhen, und
liefert den Zustandsvektor 3 zu dem Verschlüsselungsmodul 108.
Ein Codebuch, welches von dem Zustandsvektor 3 resultiert,
wird generiert, jedoch wird es nicht verwendet aufgrund dessen, dass
der Vocoderrahmen 3 fallen gelassen wird. Als nächstes wird
der Vocoderrahmen 4 generiert und verschlüsselt unter
Verwendung eines Codebuchs, welches von dem Zustandsvektor 4 abgeleitet
ist.
-
Bei
dem Empfänger
wird der Vocoderrahmen 1 empfangen und unter Verwendung
eines Codebuchs, welches von dem Zustandsvektor 1 abgeleitet ist,
entschlüsselt.
Der Vocoderrahmen 2 wird dann entschlüsselt unter Verwendung eines
Codebuchs, welches von dem Zustandsvektor 2 abgeleitet ist.
Der nächste
empfangene Rahmen ist der Vocoderrahmen 4, weil der Vocoderrahmen 3 fallen
gelassen wurde. Der Vocoderrahmen 4 wird entschlüsselt unter
Verwendung eines Codebuchs, welches von dem Zustandsvektor 3 abgeleitet
wurde, was zu unverständlichen
Daten führt,
weil der Vocoderrahmen 4 unter Verwendung eines Codebuchs
entschlüsselt werden
muss, welches von einem Zustandsvektor gleich zu drei abgeleitet
wurde.
-
Unter
Verwendung der vorliegenden Erfindung wird, wenn ein Vocoderrahmen
bei dem Sender 100 fallen gelassen wurde, der Zustandsvektorgenerator 110 gesperrt,
so dass ein Zustandsvektor nicht erhöht wird während Zeiten wenn Rahmen fallen
gelassen werden. Dies ist in 2c illustriert.
Wie in 2c gezeigt werden Vocoderrahmen 1 bis 6 generiert
durch den Vocoder 104. Jedoch werden in diesem Beispiel
Vocoderrahmen 3, 4 und 5 durch den Prozessor 120 fallen
gelassen. Der Vocoderrahmen 1 wird codiert unter Verwendung
eines Codebuchs, welches von dem Zustandsvektor 1 abgeleitet
wurde. Der Vocoderrahmen 2 wird verschlüsselt unter Verwendung eines
Codebuchs, welches von dem Zustandsvektor 2 abgeleitet
wurde. Die Vocoderrahmen 3, 4 und 5 werden
fallen gelassen durch den Prozessor 120. Der Prozessor 120 sendet
ein Kommando zu dem Zustandsvektorgenerator 110, welches
den Zustandsvektor davon abhält,
für die
drei Rahmen, welche fallen gelassen wurden, erhöht zu werden. Wenn eine ausreichende
Anzahl von Rahmen fallen gelassen wurde erlaubt der Prozessor 120 dem nächsten Rahmen
in der Sequenz, in diesem Beispiel Vocoderrahmen 6, durch
das Verschlüsselungsmodul 110 verschlüsselt zu
werden. Ein Kommando wird auch durch den Prozessor 120 zu
dem Zustandsvektorgenerator 110 gesendet, welcher den Zustandsvektor
zu seinem nächsten
Wert erhöht,
in diesem Beispiel zu einem Wert von drei. Deshalb wird der Vocoderrahmen 6 verschlüsselt unter
Verwendung eines Codebuchs, welches von dem Zustandsvektor 3 abgeleitet
ist.
-
Bei
dem Empfänger
wird der Vocoderrahmen 1 empfangen und entschlüsselt unter
Verwendung eines Codebuchs, welches von einem Zustandsvektor gleich
zu 1 abgeleitet wurde. Der Vocoderrahmen 2 wird entschlüsselt unter
Verwendung eines Codebuchs, welches von einem Zustandsvektor gleich
zu zwei abgeleitet wurde. Der nächste
Rahmen welcher empfangen werden soll ist der Vocoderrahmen 6,
weil die Vocoderrahmen 3, 4 und 5 bei dem
Sender 100 fallen gelassen wurden. Der Vocoderrahmen 6 wird
entschlüsselt
unter Verwendung eines Codebuchs, welches von einem Zustandsvektor gleich
zu drei abgeleitet wurde, welcher der Zustandsvektor ist, welcher
verwendet wurde um diesen Rahmen bei dem Sender 100 zu
verschlüsseln. Wie
man sehen kann erhält
bzw. bewahrt dieses Verfahren die Krypto-Synchronisation zwischen dem Sender 100 und
einem Empfänger.
-
3 ist
ein funktionales Blockdiagramm eines Empfängers 300 welcher
verwendet wird um die Information, welche durch den Sender 100 gesendet wurde,
zu empfangen. In 3 wird das heraufkonvertierte
Signal durch den RF Empfänger 302 unter Verwendung
von im Stand der Technik gut bekannten Techniken empfangen. Das
heraufkonvertierte Signal wird herunterkonvertiert und dann zu dem
Demodulator 304 geliefert, wobei das herunterkonvertierte
Signal in Datenrahmen konvertiert wird. In dem exemplarischen Ausführungsbeispiel
weisen die Datenrahmen RLP Rahmen auf, wobei jeder Rahmen 20 Millisekunden
in der Dauer hat.
-
Die
RLP Rahmen werden dann in einem Empfangspuffer 306 zur
Verwendung durch den Formatierprozessor 308 gespeichert.
Der Formatierprozessor 308 verwendet die Rahmen von dem
Puffer 306 um die ursprünglichen
Datenrahmen, in diesem Beispiel die Vocoderrahmen, zu rekonstruieren. Wenn
mehrere Datenprotokolle verwendet wurden um die Information zu senden,
zum Beispiel TCP und RLP, beinhaltet der Formatierprozessor 308 beide Protokolle,
um Vocoderrahmen zu generieren. Die Vocoderrahmen, welche durch
den Formatierprozessor 308 generiert wurden, werden in
der Warteschlange 312 gespeichert, im Allgemeinen in einer sequentiellen
Art und Weise. Die Warteschlange 312 ist im Allgemeinen
dazu in der Lage, mehrere Vocoderrahmen zu speichern, bevor die
Rahmen durch das Entschlüsselungsmodul 314 verwendet
werden.
-
Das
Entschlüsselungsmodul 314 ist
zum Entschlüsseln
von jedem Datenrahmen, welcher in der Warteschlange 312 gespeichert
ist, mit einem einzigartigen bzw. einmaligen Codebuch zu entschlüsseln, ähnlich zu
der Technik, welche zum Verschlüsseln
der Datenrahmen wie oben stehend diskutiert verwendet wurde. Im
Allgemeinen wird ein Codebuch für
jeden Datenrahmen, welcher entschlüsselt werden soll, generiert,
im Allgemeinen mit derselben Rate, mit welcher Rahmen durch den
Vocoder 104 bei dem Sender 100 generiert wurden.
Deshalb ist im Allgemeinen ein Codebuch für jeden Datenrahmen welches
entschlüsselt
werden soll verfügbar. Andere
Techniken erlauben, dass zwei Vocoderrahmen mit einem Codebuch entschlüsselt werden,
wobei das Codebuch zweimal so viel Bits wie ein Vocoderrahmen hat.
-
Das
Codebuch wird unter Verwendung von einer von mehreren gut bekannten
Techniken wie oben stehend erklärt
erzeugt. In dem exemplarischen Ausführungsbeispiel der vorliegenden
Erfindung wird ein Zustandsvektor verwendet, um das Codebuch zu generieren,
zusammen mit einem oder mehreren Entschlüsselungsschlüsseln, wie
in 3 gezeigt ist. Der Zustandsvektor in 3 ist,
wie der Zustandsvektor in dem Sender 100, eine Zellsequenz,
welche mit der gleichen vorbestimmten Rate wie der Zustandsvektor
bei dem Sender 100 erhöht
wird. Der Zustandsvektor wird durch den Zustandsvektorgenerator 316 unter
Verwendung von gut bekannten Techniken wie diskrete elektronische
Komponenten oder ein digitaler Mikroprozessor in Kombination mit
einem Satz von Softwareanweisungen generiert. Andere Techniken,
welche im Stand der Technik gut bekannt sind, seien auch betrachtet.
-
Das
Entschlüsselungsmodul 314 erzeugt
ein Codebuch für
jeden Zustandsvektor welcher zu ihm von dem Zustandsvektorgenerator 316 geliefert
wird. Die Vocoderrahmen welche in der Warteschlange 312 gespeichert
sind wer den zu dem Entschlüsselungsmodul 314 sequenziell
geliefert, wo ein einzigartiges Codebuch, welches von dem derzeitigen
Zustandsvektor abgeleitet wird, digital mit jedem Vocoderrahmen
kombiniert wird, um entschlüsselte
Vocoderrahmen zu erzeugen. Codebücher
werden mit Datenrahmen unter Verwendung von gut bekannten Techniken
wie das Addieren von einem Datenrahmen zu einem Codebuch, unter
Verwendung von Modulo 2 Arithmetik, kombiniert. In einem
anderen Ausführungsbeispiel
werden zwei Datenrahmen mit einem einzigen Codebuch kombiniert,
wobei das Codebuch in diesem Ausführungsbeispiel zweimal die Anzahl
von Datenbits wie ein einziger Vocoderrahmen hat.
-
Nachdem
die entschlüsselten
Vocoderrahmen durch das Entschlüsselungsmodul 314 generiert wurden
werden sie in der Warteschlange 312 oder in einem anderen
Speichergerät
gespeichert, bis sie durch den Vocoder 318 benötigt werden.
Der Vocoder 318 benötigt
einen konstanten Strom von Vocoderrahmen um die ursprünglichen
Daten welche durch den Sender 100 gesendet wurden korrekt
zu reproduzieren. Der Vocoder 318 verwendet Vocoderrahmen
welche in der Warteschlange 312 gespeichert sind um eine
digitale Replikation des ursprünglichen
Signals welches von dem Sender 100 gesendet wurde zu generieren.
Der Vocoder 318 benötigt im
Allgemeinen einen konstanten Strom von Vocoderrahmen von der Warteschlange
312 um die ursprüngliche
Audioinformation zuverlässig
zu reproduzieren. Der Vocoder 318 liefert ein digitalisiertes Ausgangssignal
zu dem digital zu analog Konverter D/A 320. D/A 320 konvertiert
das digitalisierte Signal von dem Vocoder 318 in ein analoges
Signal. Das analoge Signal wird dann zu dem Ausgangswandler 322 gesendet,
wo das analoge Signal in ein akustisches Signal konvertiert wird,
welches dazu geeignet ist, von einem Zuhörer gehört zu werden. Natürlich kann
der Ausgangstransduser bzw. -wandler 322 alternativ einen
Videomonitor aufweisen, welcher geeignet ist, zum Sehen von Standbildern
oder Video, oder irgendein anderes Gerät welches für die Anwendung in der Hand
geeignet ist.
-
Die
Koordination der oben stehenden Vorgänge wird im Allgemeinen durch
den Prozessor 324 gehandhabt. Der Prozessor 324 kann
in einer von vielen Art und Weisen, welche alle im Stand der Technik
gut bekannt sind, implementiert sein, einschließlich eines diskreten Prozessors
oder eines Prozessors welcher in einem anwendungsspezifischen ASIC
integriert ist. Alternativ kann jedes der oben stehenden Blockelemente
einen individuellen Prozessor haben, um die besonderen Funktionen
von jedem Block zu erreichen, wobei der Prozessor 324 im
Allgemeinen verwendet werden würde
um die Aktivitäten
zwischen den Blöcken
zu koordinieren.
-
Wie
bereits erwähnt
benötigt
der Vocoder 318 im Allgemeinen einen konstanten Strom von
Vocoderrahmen um die ursprüngliche
Audioinformation ohne Störung
zu rekonstruieren. Um einen konstanten Strom von Vocoderrahmen zu
erreichen wird die Warteschlange 312 verwendet. Vocoderrahmen,
welche durch den Formatierprozessor 308 erzeugt wurden,
werden im Allgemeinen nicht mit einer konstanten Rate erzeugt, aufgrund
der Qualität
des Kommunikationskanals und der Tatsache, dass ein Vocoder mit
variabler Rate oft in dem Sender 100 verwendet wird, welcher
Vocoderrahmen mit verschiedenen Codierraten erzeugt. Die Warteschlange 312 erlaubt Änderungen
in der Vocoderrahmengenerationsrate durch den Formatierprozessor 308 während ein
konstanter Strom von Vocoderrahmen zu dem Vocoder 318 sichergestellt
wird. Ein mögliches
Problem mit der Verwendung der Warteschlange 312 ist, dass
sie eine Verzögerung
verursachen kann, oder Latenzzeit, während der Sendung von Audioinformation zwischen
dem Sender 100 und dem Empfänger 300, zum Beispiel
in einem Telefongespräch.
-
Ein
Ziel der Warteschlange 312 ist, genügend Vocoderrahmen zu halten,
um den Vocoder 318 mit Vocoderrahmen während Perioden von geringer Datengeneration
durch den Formatierprozessor 308 zu liefern (wodurch ein
Unterlauf der Warteschlange 312 verhindert wird), aber
nicht zu viele Rahmen aufgrund der erhöhten Latenzzeit welche in einer
solchen Situation erzeugt wird. In einem Unterlaufzustand weist
der Prozessor 324 den Vocoder 318 an, eine oder
mehrere „Löschungs-" Rahmen zu verwenden,
anstatt aktuelle Vocoderrahmen. Ein Löschungsrahmen ist im Stand
der Technik gut bekannt, welcher einen Rahmen beschreibt, welcher keine
Daten enthält,
aber dem Vocoder 318 erlaubt, mit der Verarbeitung mit
nachfolgender Information ohne Störung fort zu fahren. In einem
Unterlaufzustand wird ein Löschungsrahmen
durch den Vocoder 318 verwendet, in jeder Zeitperiode in
welcher ein Vocoderrahmen nicht verfügbar ist zur Verwendung in
der Warteschlange 312, in dem exemplarischen Ausführungsbeispiel
alle 20 Millisekunden.
-
Andererseits,
wenn die Anzahl von Vocoderrahmen welche in der Warteschlange 312 gespeichert
sind relativ groß wird,
wird die Latenzzeit ein Problem. Latenzzeit ist definiert als eine
Zeitverzögerung
zwischen den Zeitpunkten, wenn Information in einen Sender eingegeben
wird, und wenn die Information zur Verwendung bei einem Empfänger verfügbar ist.
Bei dem Empfänger 300 erhöht sich
die Sprachlatenzzeit im Verhältnis
zu der Anzahl von Rahmen welche in der Warteschlange 312 gespeichert
sind, wenn die Anzahl von Vocoderrahmen welche in der Warteschlange 312 gespeichert
sind sich erhöht.
Wenn zum Beispiel die Anzahl von Rahmen welche in der Warteschlange 312 gespeichert
sind gleich fünfzig
ist, wird die Latenzzeit gleich zu fünfzig mal zwanzig Millisekunden
sein (die Länge
von jedem Rahmen in dem exemplarischen Ausführungsbeispiel), oder eine
Sekunde, was für
die meisten Audiokommunikationen nicht akzeptabel ist.
-
Um
das Problem der Latenzzeit zu bekämpfen werden Vocoderrahmen
von der Warteschlange 312 entfernt, oder fallen gelassen,
um die Anzahl von Vocoderrahmen welche schlussendlich durch den Vocoder 318 verarbeitet
werden zu reduzieren. Durch Fallen lassen von Vocoderrahmen bei
der Warteschlange 312 wird das Problem der Latenzzeit reduziert.
Jedoch müssen
Rahmen derart fallen gelassen werden, dass ein minimaler Betrag
von Störung
in die Audioinformation eingefügt
wird.
-
Rahmen
können
gemäß einem
von einer Anzahl von Verfahren, welche im Stand der Technik bekannt
sind, fallen gelassen werden. Zum Beispiel kön nen Rahmen mit einer einzelnen,
festen Rate, mit zwei oder mehr festen Raten, mit einer variablen Rate
oder einer Kombination von irgendeiner von diesen Verfahren fallen
gelassen werden. Zusätzlich, wenn
ein Vocoder 104 mit variabler Rate in dem Sender 100 verwendet
wird können
Rahmen auf der Basis der Rate, mit welcher die Rahmen durch den
Vocoder 104 codiert wurden, fallen gelassen werden.
-
Im
Allgemeinen ist die Entscheidung, wann Rahmen fallen gelassen werden,
auf der Kommunikationskanallatenzzeit, wie durch die Kommunikationskanalqualität bestimmt,
basiert, welche wiederum von der Größe der Warteschlange 312 abgeleitet werden
kann. Wenn die Größe der Warteschlange 312 sich über eine
vorbestimmte Schwelle erhöht,
erhöht
sich die Latenzzeit auf einen nicht gewünschten Pegel. Deshalb, wenn
die Größe der Warteschlange 312 eine
vorbestimmte Schwelle übersteigt,
beginnt der Prozessor 324 damit, Rahmen von der Warteschlange 312 unter
Verwendung von einem oder mehreren Verfahren, welche oben beschrieben
wurden, fallen zu lassen. Wenn sich die Größe der Warteschlange 312 unter
die vorbestimmte Schwelle verringert wird das Fallen lassen von
Rahmen durch den Prozessor 324 angehalten. Wenn sich zum
Beispiel die Größe der Warteschlange 312 auf
zwei Rahmen verringert ist Latenzzeit nicht länger ein Problem und der Prozessor 324 hält den Vorgang
des Fallen lassens von Rahmen an.
-
Wenn
eines oder mehrere Schemata mit festen Raten verwendet werden um
Rahmen fallen zu lassen werden zwei oder mehr vorbestimmte Schwellen
verwendet um zu bestimmen wann jede feste Rate des Fallen lassen
verwendet wird. Wenn zum Beispiel die Größe der Warteschlange 312 größer als eine
erste vorbestimmte Schwelle zunimmt beginnt der Prozessor 324 damit,
Rahmen mit einer ersten vorbestimmten Rate wie ein Prozent fallen
zu lassen. Wenn die Größe der Warteschlange 312 damit
fortfährt,
anzusteigen, beginnt der Prozessor 324 damit, Rahmen mit
einer zweiten vorbestimmten Rate fallen zu lassen, wenn die Größe der Warteschlange 312 über eine
zweite vorbestimmte Größe ansteigt.
Wenn die Größe der Warteschlange 312 unter
die zweite Schwelle fällt
hält der
Prozessor 324 das Fallen las sen von Rahmen mit der zweiten
vorbestimmten Rate an und beginnt damit, Rahmen langsamer mit der
ersten vorbestimmten Rate fallen zu lassen. Wenn die Größe der Warteschlange 312 weiter
abfällt,
unter die zweite vorbestimmte Schwelle, oder Größe, hält der Prozessor 324 das
Fallen lassen von Rahmen vollständig
an, so dass die Größe der Warteschlange 312 zu
einem geeigneten Pegel ansteigen kann.
-
Wenn
ein Schema das variablen Fallen lassens von Rahmen verwendet wird
bestimmt der Prozessor 324 die Größe der Warteschlange 312 auf
einer kontinuierlichen oder fast kontinuierlichen Basis und passt
die Rate des Fallen lassens von Rahmen dementsprechend an. Wenn
sich die Größe der Warteschlange 312 erhöht erhöht sich
die Rate mit welcher Rahmen fallen gelassen werden auch. Wenn die Größe der Warteschlange 312 abfällt fällt die
Rate mit welcher Rahmen fallen gelassen werden ab. Wenn wiederum
die Größe der Warteschlange 312 unter eine
vorbestimmte Schwelle fällt,
hält der
Prozessor 324 den Vorgang des Fallen lassens von Rahmen vollständig an.
-
Rahmen
können
auch gemäß der Anzahl von
Rahmen, welche in der Warteschlange 312 gespeichert sind,
und der Rate, mit welcher Rahmen durch den Vocoder 104 codiert
wurden, wenn der Vocoder 104 ein Vocoder mit variabler
Rate ist, fallen gelassen werden. Wenn die Größe der Warteschlange 312 eine
erste vorbestimmte Schwelle, oder Größe, übersteigt werden Vocoderrahmen,
welche eine Codierrate mit der niedrigsten codierten Rate haben, fallen
gelassen. Wenn die Größe der Warteschlange 312 eine
zweite vorbestimmte Schwelle übersteigt werden
Vocoderrahmen, welche eine Codierrate bei der zweit niedrigsten
Codierrate und der niedrigsten Codierrate haben, fallen gelassen.
Möglicherweise können Rahmen,
welche mit der dritt niedrigsten Codierrate plus der zweit niedrigsten
und der niedrigsten Codierrate codiert wurden fallen gelassen werden
wenn die Anzahl von Rahmen welche in der Warteschlange 312 gespeichert
sind eine dritte vorbestimmte Schwelle übersteigt. Wenn wiederum die
Anzahl von Rahmen welche in der Warteschlange 312 gespeichert
sind unter die vorbestimmten Schwelle fällt lässt der Prozessor 324 Rahmen
gemäß der codierten
Rate fallen, wenn jede Schwelle passiert wird.
-
Wie
oben stehend erklärt
kann fallen lassen von Rahmen bei dem Empfänger 300 oder bei
dem Sender 100 auftreten. Jedoch kann in einem anderen Ausführungsbeispiel
das Fallen lassen von Rahmen sowohl bei dem Sender 100 wie
auch bei dem Empfänger 300 auftreten.
Jede Kombination dieser Techniken des Fallen lassens von Rahmen
welche oben stehend diskutiert wurden kann in einem solchen Fall verwendet
werden.
-
Bei
dem Empfänger 300 kann
während
einer Periode des Unterlaufens oder Fallen lassens von Rahmen die
Krypto-Synchronisation zwischen dem Sender 100 und dem
Empfänger 300 gestört werden. Die
Störung
wird durch Vocoderrahmen verursacht welche mit einem Codebuch verschlüsselt wurden, welches
von einem ersten Zustandsvektor abgeleitet wurde, und entschlüsselt wurden
gemäß einem
Codebuch, welches von einem zweiten Zustandsvektor abgeleitet wurde.
Dies führt
dazu, dass Vocoderrahmen fehlerhaft entschlüsselt werden.
-
Die
vorliegende Erfindung sperrt den Zustandsvektor derart, dass er
während
eines Unterlaufzustands erhöht
wird, und dass der Zustandsvektor während einer Situation des Fallen
lassens von Rahmen weiterläuft.
In einer Unterlaufsituation sperrt der Prozessor 324 den
Zustandsvektorgenerator 316 gegen das erhöht werden
wenn Löschungsrahmen zu
dem Vocoder 318 geliefert werden. Der Zustandsvektorgenerator 316 wird
frei gegeben wenn ein Rahmen wieder für die Entschlüsselung
in der Warteschlange 312 verfügbar wird.
-
4a illustriert
diesen Punkt. Wie in 4a gezeigt ist wird das Vergehen
von Zeit mit Zeitperioden T1, T2, T3 und so weiter bezeichnet, wobei
T1 zuerst in der Zeit auftritt. Jede Zeitperiode ist gleich zu der
Rate mit welcher Vocoderrahmen bei dem Vocoder 104 in dem
Sender 104 erzeugt werden, in dem exemplarischen Ausführungsbeispiel
20 Millisekunden. Bei T1 ist ein Rahmen in der Warteschlange 312 zur
Entschlüsselung
durch das Entschlüsselungsmodul 314 verfügbar. Der
Zustandsvektor von dem Zustandsvektorgenerator 316 ist
gleich zu 205 und wird auf den Rahmen in der Warteschlange 312 angewandt,
um ihn zu entschlüsseln.
Bei T2 wird der Zustandsvektor erhöht. Ein anderer Rahmen wird
zur Entschlüsselung
in der Warteschlange 312 verfügbar, so dass der Zustandsvektor
von 206 auf den Rahmen angewandt wird, um ihn zu entschlüsseln. Bei
T3 ist kein Rahmen für
die Entschlüsselung
in der Warteschlange 312 verfügbar. Deshalb sperrt der Prozessor 324 den
Zustandsvektorgenerator 316 gegen das Erhöht werden,
was dazu führt,
dass der Zustandsvektorgenerator bei dem Wert von 206 bleibt. Bei
T4 wiederum ist kein Rahmen verfügbar
in der Warteschlange 312 zur Entschlüsselung, somit bleibt der Zustandsvektorgenerator 312 gesperrt
gegen das Erhöhen
des Zustandsvektors. Bei T5 wird ein Rahmen verfügbar in der Warteschlange 312,
so dass der Zustandsvektorgenerator 316 frei gegeben wird,
und es wird ihm erlaubt, sich auf den nächsten Wert, welcher 207 ist,
zu erhöhen.
Der Rahmen in der Warteschlange 312 wird dann zu dem Entschlüsselungsmodul 314 geliefert
und wird unter Verwendung eines Codebuchs, welches von dem Zustandsvektor, welcher
einen Wert von 207 hat, abgeleitet ist, entschlüsselt. Bei
T6 ist kein Rahmen für
die Entschlüsselung
in der Warteschlange 312 verfügbar, somit sperrt der Prozessor 324 den
Zustandsvektorgenerator 316 gegen das Erhöht werden,
was zu einem Wert des Zustandsvektors von 207 führt.
-
Während einer
Situation des Fallen lassens von Rahmen lässt der Prozessor 324 Rahmen
von der Warteschlange 312 vor der Entschlüsselung durch
das Entschlüsselungsmodul 314 fallen.
Für jeden
Rahmen welcher fallen gelassen wird muss der Prozessor 324 den
Zähler
des Zustandsvektors erhöhen,
um den/die Rahmen, welche/r fallen gelassen wurde/n, zu kompensieren.
-
4b und 4c illustrieren
diesen Punkt. Wie in 4b gezeigt ist werden Vocoderrahmen
in der Warteschlange 312 gespeichert wenn sie von dem Formatierprozessor 308 verfügbar werden,
beginnend mit dem Rahmen 1 und fortfahrend bis Rahmen 7 und
darüber
hinaus. Rahmen werden zu dem Entschlüsselungsmodul 314 mit
einer vorbestimmten Rate geliefert, welche durch die Rate definiert
ist, mit welcher Vocoderrahmen durch den Vocoder 104 generiert
werden. 4c illustriert wie der Zustandsvektorgenerator 316 während des
Fallen lassens von Rahmen beeinflusst wird. Zur Zeit T1 liefert
der Zustandsvektorgenerator einen Zustandsvektor welcher einen Wert
von 205 hat zu dem Entschlüsselungsmodul 314,
wo ein Codebuch erzeugt wird um den Rahmen 1 zu entschlüsseln. Zur
Zeit T2 wird der Zustandsvektor auf 206 erhöht, wo er
zu dem Entschlüsselungsmodul 314 zur
Verwendung in der Generierung eines Codebuchs zur Entschlüsselung
von Rahmen 2 geliefert wird. Zur Zeit T3 lässt der
Prozessor 324 Rahmen 3 und Rahmen 4 fallen.
In einem alternativen Ausführungsbeispiel
wählt der
Prozessor 324 vorab welcher Rahmen/welche Rahmen, welche/r
in der Warteschlange 312 gespeichert sind, fallen gelassen
werden. In jedem Fall liefert zur Zeit T3 der Prozessor 324 den
nächsten
nicht fallen gelassenen Rahmen zu dem Entschlüsselungsmodul 314, welcher
in diesem Fall Rahmen 5 ist. Der Prozessor 324 weist
auch den Zustandsvektorgenerator 316 an, einen Zustandsvektor
basierend auf der Anzahl von Rahmen welche fallen gelassen wurden
zu generieren. In diesem Fall wurden zwei Rahmen fallen gelassen,
deshalb weist der Prozessor 324 den Zustandsvektorgenerator 316 an,
einen Zustandsvektor gleich zu 209 zu generieren, welcher
gleich ist zu dem Wert welchen der Zustandsvektor normalerweise
bei (207) plus zwei haben würde, um die zwei fallen gelassenen
Rahmen zu kompensieren.
-
Zur
Zeit T4 ist Rahmen 6 zur Entschlüsselung verfügbar, somit
wird er zu dem Entschlüsselungsmodul 314 geliefert,
während
der Zustandsvektor um eins erhöht
wird, in diesem Fall auf einen Wert von 210. Zur Zeit T5
wird Rahmen 7 durch den Prozessor 324 fallen gelassen
und der Rahmen 8 ist zur Entschlüsselung verfügbar. Deshalb
weist zur Zeit T5 der Prozessor 324 den Zustandsvektorgenerator
an, den Zustandsvektor um zwei auf 212 zu erhöhen (eins
für eine
normale Erhöhung
und eins um den einen Rahmen, der fallen gelassen wurde, zu kompensieren),
und liefert Rahmen 8 zu dem Entschlüsselungsmodul 314.
In jedem des Unterlauffalls und des Falls des Fallen lassens von
Rahmen weist der Prozessor 324 den Zustandsvektorge nerator 316 an, den
Zustandsvektor derart anzupassen, dass er mit dem Zustandsvektor
welcher den Rahmen verschlüsselt
hat synchronisiert bleibt.
-
5 ist
ein Flussdiagramm, welches das Verfahren der vorliegenden Erfindung
wie in dem Sender 100 verwendet illustriert. In Schritt 500 werden
Datenrahmen generiert, normalerweise mit einer konstanten Rate,
durch den Vocoder 104. In einem alternativen Ausführungsbeispiel
werden Datenrahmen nicht durch den Vocoder 104 generiert,
sondern durch irgendein anderes datenerzeugendes Gerät wie eine
Videokamera, ein Computer, oder eine Digitalkamera. In dem exemplarischen
Ausführungsbeispiel
werden Rahmen mit einer Rate von einem Rahmen alle 20 Millisekunden
generiert.
-
In
Schritt 502 werden Rahmen von dem Vocoder 104 im
Speicher 106 zur temporären
Speicherung gespeichert. In dem exemplarischen Ausführungsbeispiel
kann nur ein Rahmen gespeichert werden zu irgendeiner Zeit, in dem
Speicher 106. Jedoch kann in anderen Ausführungsbeispielen
eine alternative Anzahl von Rahmen in dem Speicher 106 gespeichert
sein. In noch einem anderen Ausführungsbeispiel
werden Rahmen direkt von dem Vocoder 104 zu dem Verschlüsselungsmodul 108 ohne
den Bedarf für
den Speicher 106 geliefert.
-
In
Schritt 504 entscheidet der Prozessor 120 ob ein
Rahmen fallen gelassen wird oder nicht, basierend auf einem oder
mehreren Kriterien wie der Sendelatenzzeit. Wenn der Prozessor 120 bestimmt, dass
ein Rahmen fallen gelassen werden soll, sperrt der Prozessor 120 den
Zustandsvektorgenerator 110 in Schritt 506, wodurch
der Zustandsvektor am erhöht
werden gehindert wird. In Schritt 508 lässt der Prozessor 120 den
Rahmen, welcher derzeit zur Verarbeitung durch das Entschlüsselungsmodul 108 verfügbar ist
fallen. In dem exemplarischen Ausführungsbeispiel liefert der
Prozessor 120 nicht den derzeitigen Vocoderrahmen welcher
in Speicher 106 gespeichert ist zu dem Verschlüsselungsmodul 108.
-
In
Schritt 510 bestimmt der Prozessor 120 ob der
nächste
Rahmen in der Sequenz fallen gelassen werden soll. Wenn dem so ist
fährt der
Prozessor zurück
zu Schritt 508, wo der nächste Rahmen, welcher in dem
Speicher 106 gespeichert ist, fallen gelassen wird, und
der Zustandsvektorgenerator 110 bleibt gesperrt. Wenn der
nächste
Rahmen nicht fallen gelassen wird fährt die Verarbeitung mit Schritt 510 fort.
-
Unter
Rückbezugnahme
auf Schritt 504, wenn der Prozessor 120 bestimmt,
dass der derzeitige Rahmen nicht fallen gelassen werden soll, fährt die
Verarbeitung mit Schritt 510 fort, wo der Zustandsvektorgenerator 110 frei
gegeben wird (wenn er in einem vorherigen Schritt gesperrt wurde),
wodurch der Zustandsvektor erhöht
wird.
-
In
Schritt 512 wird der derzeitige Rahmen welcher im Speicher 106 gespeichert
wird zu dem Verschlüsselungsmodul 108 geliefert
und wird unter Verwendung eines Codebuchs, welches von dem derzeitigen
Wert des Zustandsvektors abgeleitet ist verschlüsselt. Das Ergebnis dieses
Vorgangs ist dass Rahmen unter Verwendung von aufeinander folgenden
Zustandsvektoren verschlüsselt
werden, auch wenn einer oder mehrere Rahmen durch den Prozessor 112 vor
der Verschlüsselung
fallen gelassen werden.
-
6 ist
ein Flussdiagramm, welches das Verfahren der vorliegenden Erfindung
wie in dem Empfänger 300 während eines
Unterlaufzustands verwendet illustriert. In Schritt 600 bestimmt
der Prozessor 324 ob irgendein Rahmen zur Entschlüsselung
in der Warteschlange 312 verfügbar ist oder nicht. Wenn mindestens
ein Rahmen verfügbar
ist zur Entschlüsselung
wird der Zustandsvektor in Schritt 602 erhöht. Als
nächstes
wird in Schritt 604 mindestens ein Rahmen zu dem Entschlüsselungsmodul 314 geliefert,
wo er unter Verwendung eines Codebuchs, welches von dem derzeitigen
Wert des Zustandsvektors von dem Zustandsvektorgenerator 316 abgeleitet
ist, entschlüsselt
wird. Um korrekt entschlüsselt
zu werden muss der Rahmen im Allgemeinen durch ein Codebuch entschlüsselt werden,
welches von einem Zustandsvektor abgeleitet ist, welcher den gleichen
Zustandsvektor trifft, welcher verwendet wurde, um den Rahmen bei
dem Sender 100 zu verschlüsseln. Nachdem der Rahmen entschlüsselt wurde,
kehrt die Verarbeitung dann zu Schritt 600 zurück, wo der
Prozessor 324 bestimmt, ob ein anderer Rahmen zur Entschlüsselung
verfügbar
ist.
-
Wenn
keine Rahmen zur Entschlüsselung
in Schritt 600 verfügbar
sind fährt
die Verarbeitung mit Schritt 606 fort, wo der Prozessor 324 den
Zustandsvektorgenerator 316 sperrt, wodurch der Wert des Zustandsvektors
auf seinen derzeitigen Zustand eingefroren wird. Als nächstes,
Schritt 608, liefert der Prozessor 324 einen Löschungsrahmen
zu dem Vocoder 318, so dass die Verarbeitung nicht unterbrochen
wird. Die Verarbeitung kehrt dann zurück zu Schritt 600,
wo der Prozessor 324 erneut bestimmt, ob ein Rahmen zur
Entschlüsselung
verfügbar
ist. Wenn kein Rahmen verfügbar
ist liefert der Prozessor 324 einen anderen Löschungsrahmen
zu dem Vocoder 318. Schritt 606 wird nicht wiederholt
in der Situation, weil der Zustandsvektorgenerator 316 bereits
vorher gesperrt wurde.
-
Der
obige Vorgang stellt sicher, dass Rahmen korrekt entschlüsselt werden,
auch wenn sie zu dem Verschlüsselungsmodul 314 in
irregulären
Intervallen geliefert werden.
-
7 ist
ein Flussdiagramm, welches das Verfahren der vorliegenden Erfindung
wie in dem Empfänger 300 während des
Zustands des Fallen lassens eines Rahmens detailliert beschreibt.
Wie vorstehend erwähnt
tritt das Fallen lassen von Rahmen in dem Empfänger 300 auf, wenn
die Latenzzeit übermäßig wird,
oftmals bestimmt durch die Anzahl von Rahmen welche in der Warteschlange 312 zu
einer gegebenen Zeit gespeichert sind. Der Vorgang beginnt in Schritt 700,
wo ein Rahmen, welcher in der Warteschlange 312 gespeichert
ist, zu dem Entschlüsselungsmodul 314 geliefert
wird. In Schritt 702 bestimmt der Prozessor 324 die
Anzahl von aufeinander folgenden Rahmen welche vor dem derzeitigen
Rahmen fallen gelassen wurden. Wenn keine vorher aufeinander folgenden
Rahmen fallen gelassen wurden fährt
die Verarbeitung mit Schritt 704 fort, wo der Zustandsvektor
um einen vorbestimmten Betrag erhöht wird, in dem exemplarischen
Ausführungsbeispiel
um eins.
-
Unter
Rückbezugnahme
auf Schritt 702, wenn vorherige Rahmen fallen gelassen
wurden, fährt
die Verarbeitung mit Schritt 706 fort. Normalerweise werden
Rahmen von der Warteschlange 312 zu dem Entschlüsselungsmodul 314 aufeinander
folgend geliefert, wie sie in der Warteschlange 312 gespeichert
wurden. Wenn jedoch der Prozessor 324 bestimmt, dass einer
oder mehrere Rahmen fallen gelassen werden müssen, werden der eine oder mehrere
Rahmen welche fallen gelassen wurden nicht zu dem Entschlüsselungsmodul 314 geliefert. Vielmehr
wird der nächste
Rahmen in der Warteschlange 312 nach dem/den fallen gelassenen
Rahmen zu dem Entschlüsselungsmodul 314 geliefert.
In Schritt 706 bestimmt der Prozessor 324 wie
viele aufeinander folgende Rahmen vor dem derzeitigen Rahmen fallen
gelassen wurden. Der Zustandsvektor wird um einen proportionalen
Betrag in Bezug auf die Anzahl von fallen gelassenen Rahmen erhöht. Wenn zum
Beispiel zwei Rahmen vor dem derzeitigen Rahmen fallen gelassen
wurden wird der Zustandsvektor um drei erhöht, eins für die normale Erhöhung und zwei
um die zwei Rahmen, welche fallen gelassen wurden, zu kompensieren.
Dieser Vorgang stellt sicher, dass Rahmen korrekt entschlüsselt werden, auch
wenn einer oder mehrere Rahmen vor der Entschlüsselung fallen gelassen wurden.
-
In
Schritt 708 wird der derzeitige Rahmen entschlüsselt unter
Verwendung eines Codebuchs, welches von dem derzeitigen Wert des
Zustandsvektors abgeleitet wurde.
-
Dieser
Vorgang stellt sicher, dass Rahmen korrekt entschlüsselt werden
auch wenn einer oder mehrere Rahmen vor der Entschlüsselung
fallen gelassen wurden.
-
Die
vorgesehen Beschreibung der bevorzugten Ausführungsbeispiele wird geliefert,
um jedem Fachmann zu ermöglichen,
die vorliegende Erfindung auszuführen
oder zu benutzen. Die verschiedenen Modifikationen zu diesen Ausführungsbeispielen werden
dem Fachmann unmittelbar offensichtlich sein, und die hierin definierten
allgemeinen Prinzipien können
auf andere Ausführungsbeispiele
ohne die Verwendung der erfinderischen Fähigkeit angewandt werden. Somit
wird es nicht beabsichtigt, die vorliegende Erfindung auf die hierin
gezeigten Ausführungsbeispiele
einzuschränken,
sondern ihr soll der weiteste Umfang, welcher mit den Prinzipien
und neuen Merkmalen, wie hierin offenbart, konsistent ist, zugestanden
werden.