-
QUERVERWEIS AUF EINE VERWANDTE
ANMELDUNG
-
Es
wird verwiesen auf die am 29. Januar 2009 eingereichte US-Patentanmeldung
Nr. 12/361,950 mit dem Titel ”System
und Verfahren zur Angabe eines Ersatzpakets”, die durch diese Erwähnung in
ihrer Gesamtheit hierein aufgenommen wird.
-
BEREICH
-
Die
Erfindung betrifft allgemein die Steuerung von Pufferspeichern und
insbesondere die Steuerung von Jitter-Puffern in paketierten Kommunikationen.
-
HINTERGRUND
-
Paketvermittelte
Telekommunikationsnetze sind gekennzeichnet durch Verkehr, wie zum
Beispiel Sprache, Video und/oder Text, der in Stücke, so genannte Pakete, unterteilt
ist. Paket-Kommunikationen verwenden eine statistische Multiplex-
oder dynamische Bandbreitenzuweisung, bei der ein physikalischer
Kommunikationskanal in eine Anzahl von Kanälen oder Strömen mit
variabler Bitrate aufgeteilt wird. Am Zielende werden diese Pakete
anhand ihrer Paketnummern und anderer statistischer Faktoren wieder
zusammengesetzt.
-
Paketvermittelter
Verkehr unterliegt Fragen der Dienstgüte (Quality of Service = QoS),
wie zum Beispiel Verzögerung,
Jitter, ausgelassene Pakete, nicht ordnungsgemäße Weitersendung und/oder Fehler
durch Paketbeschädigung.
Zum Beispiel wird in einem typischen Voice over Internet Protocol(”VoIP”)-System der Sprachstrom
einer ersten Person von einem ersten Gateway digitalisiert, komprimiert
und in Pakete codierter binärer
Daten unterteilt. Die Pakete werden über ein virtuelles privates Netz
(”VPN”) oder
ein ungeregeltes oder öffentliches Netz
gesendet, welches sie mit bei jedem Paket variierenden Verzögerungaufkommen
an einen Gateway der Gegenstelle weitersendet. Der Gateway der Gegenstelle
ordnet die empfangenen Pakete um, dekomprimiert (oder, was dasselbe
ist, decodiert) dann die codierten binären Daten und liefert somit
einen kontinuierlichen Audio-Strom an eine zweite Person. Der Audio-Strom
ist eine leicht verzögerte
Kopie des Audio-Stroms der ersten Person. In dem Beispiel wird die
QoS vermindert durch Verzerrungen, die eingeleitet werden zum Beispiel
durch die Gesamtverzögerung
vom Sprechereignis bis zum Hörempfang, durch
Ausfälle
und andere Artefakte, die darauf zurückzuführen sind, dass Pakete zu früh (aufgrund
unterschiedlicher Transitpfadlänge)
oder zu spät
(zum Beispiel aufgrund von Netzüberlastung
und/oder unterschiedlicher Pfadlänge)
eintreffen, um korrekt in den Audio-Strom aufgenommen zu werden,
durch totalen Paketverlust, Pufferspeicherüberlauf und andere Faktoren.
Die QoS-Probleme verstärken
sich bei einer Multimedia-Konferenz, bei der eine isochrone (zeitlich
gleichmäßig gesteuerte)
Weitersendung verschiedener Arten von Verkehr, wie zum Beispiel Sprache
und Video, sichergestellt sein muss.
-
Es
wurde eine Reihe von Techniken entwickelt, um verschiedene Faktoren,
welche die QoS nachteilig beeinflussen, zu steuern. Zu diesen Techniken
gehören
Jitter-Puffer, das ReSerVation-Protokoll (”RSVP”), das Differential Services(DiffServ)-Protokoll,
redundante Übertragung
(wie sie zum Beispiel in RFC-2198 spezifiziert ist), Laufzeitzuweisungsalgorithmen
(wie zum Beispiel Weighted Fair Queuing (”WFQ”)), klassenbasierte Warteschlangenbildung, Überlastungsvermeidungsmechanismen
(wie zum Beispiel Random Early Detection (”RED”) und Weighted Random Early
Detection (”WRED”)) und Ähnliches.
-
Ein
Jitter-Puffer ist ein Hardware-Gerät oder ein Software-Prozess,
der den durch Übertragungsverzögerungen
hervorgerufenen Jitter verringert. Wenn der Jitter-Puffer Pakete empfängt, schreibt
er diese in der Reihenfolge ihres Eintreffens in einen Speicher.
Die Pakete werden so bald wie möglich
in der richtigen Reihenfolge ausgelesen, das heißt, die Pakete werden sequenziell
neu geordnet, wenn sie ungeordnet sind, und werden anhand des lokalen Takts,
der den Leserzeiger steuert, zeitlich neu festgelegt. Der maximale
Netto-Jitter, dem ein Entjitter-Puffer entgegenwirken kann, ist
gleich der Pufferungsverzögerung,
die vor dem Beginn des Abspielens des Medienstroms eingeleitet wurde.
Ohne einen Jitter-Puffer zur Glättung
der Übertragung
können
Daten verlorengehen, was im Falle von Sprachsignalen zu einem wahrnehmbar
zerhackten Audio-Strom führt.
-
Die
Größe des Jitter-Puffers
kann für
die vom Zuhörer
wahrgenommene Qualität
des Audio-Stroms von Bedeutung sein. Ein großer Pufferspeicher ermöglicht zwar,
dass weniger Pakete verlorengehen, er kann jedoch eine große Verzögerung in
den ausgegebenen Audio-Strom einleiten. Im Gegensatz dazu kann ein
kleiner Jitter-Puffer, der eine kleinere Verzögerung in den ausgegebenen
Audio-Strom einleitet, einen erheblichen Paketverlust verursachen. Die
Qualität
der Verbindung verschlechtert sich, wenn der Netz-Jitter die Größe des Jitter-Puffers übersteigt.
Dementsprechend wird typischerweise ein Jitter-Puffer von mittlerer
Kapazität
oder ein Jitter-Puffer von variabler Kapazität eingesetzt.
-
Zwar
sind Einfach-Pufferspeicher üblich,
jedoch wurden für
Sprachkommunikationen Dual-Pufferspeicher nach dem Stand der Technik
eingesetzt. In einer Implementierung wurden in einem Port-Netz Dual-Pufferspeicher von
statischer Kapazität
eingesetzt, um eine dynamische Bandbreitenzuweisung zu bewirken.
Einer der Pufferspeicher entsprach Time Division Multiplexed(”TDM”)-Daten
(die nicht mit einem Zeitstempel versehen waren), und der andere entsprach
Paketdaten. Es wurde angenommen, dass die TDM-Daten implizit synchronisiert
und immer geordnet waren, und sie wurden bevorzugt vor den Paketdaten
erfasst. Somit wurden die TDM-Daten nicht aufgrund von Jitter oder
Wartezeit umgeordet. Jeder Pufferspeicher hatte Lese- und Schreibzeiger,
um den Pufferspeicherzustand zu verwalten. Ein Pop-Zeiger ermöglichte
eine sequenzielle Neuordnung der Pakete, die ungeordnet eintrafen.
-
Ein
Controller steuerte die TDM-Daten bevorzugt an, wenn der nächste sequenzielle
Speicherstandort solche TDM-Daten besaß. Wann immer der TDM-Pufferspeicher nicht
belegt war, wurde nach Bedarf aus dem Paketdaten-Pufferspeicher ausgelesen, um Daten
für angesteuerte
Speicherstandorte, die keine TDM-Daten hatten, bereitzustellen.
-
Trotz
dieser Techniken bleiben QoS-Fragen am Gegenstellen-Gateway ein
Problem.
-
ZUSAMMENFASSUNG
-
Diese
und andere Erfordernisse werden von den verschiedenen Ausführungsformen
und Konfigurationen der vorliegenden Erfindung angesprochen. Die
vorliegende Erfindung betrifft allgemein die Verwendung zweier oder
mehrerer Pufferspeicher, um Paket-Jitter, Wartezeit, Verlust, und/oder
Synchronisation wirksamer und effektiver zu verwalten.
-
In
einer ersten Ausführungsform
wird ein Verfahren angegeben, das folgende Schritte aufweist:
- (a) Empfang, an einem Empfangsknoten, eines ersten
und eines zweiten Pakets, wobei das erste und das zweite Paket gemeinsame
Paketdauern und gemeinsame Zeitstempel und/oder Sequenznummern haben;
- (b) Schreiben, durch einen Prozessor, des ersten Pakets in einen
ersten Pufferspeicher;
- (c) Schreiben, durch einen Prozessor, des zweiten Pakets in
einen zweiten Pufferspeicher; und
- (d) Ansteuerung, durch ein Steuermodul, (i) einer Zeit zum Lesen
des ersten bzw. des zweiten Pakets aus dem ersten bzw. dem zweiten
Pufferspeicher und/oder (ii) welches der beiden Pakete gelesen werden
soll, wobei bei (ii) nur entweder das erste oder das zweite Paket
verwendet wird, um eine Lücke
in einem Datenstrom zu füllen.
-
In
einer zweiten Ausführungsform
wird ein Verfahren angegeben, das folgende Schritte aufweist:
- (a) Verwaltung, an einem Empfangsknoten, mindestens
eines ersten und eines zweiten Pufferspeichers für erste und zweite Mengen of
Paketen, wobei ein angesteuertes erstes Element der ersten Menge
von Paketen einen Zeitstempel und/oder eine Sequenznummer mit einem
angesteuerten zweiten Element der zweiten Menge von Paketen gemeinsam
hat;
- (b) Größenänderung,
durch ein Steuermodul und während
der erste und/oder der zweite Pufferspeicher belegt sind, des ersten
und/oder zweiten Pufferspeichers, wobei die Größenänderung eine Funktion eines
Zustands eines Netzwerks, über das
zumindest einige der Elemente der ersten und/oder zweiten Menge
von Paketen übertragen werden,
und/oder einer Zeit zur Verarbeitung von Elementen der ersten und/oder
zweiten Menge von Paketen, der relativen Belegung des ersten und
des zweiten Pufferspeichers, von Anwendererfordernissen und/oder
von Anwendungserfordernissen ist.
-
In
einer Konfiguration nimmt ein Konvergenzpunkt gleichzeitig mehrfache
Realtime Transmission Protocol(”RTP”)-Ströme an, die über unterschiedliche
Leitwege zu jenem Ziel transportiert wurden. Für jeden der Paketströme hat der
Konvergenzpunkt einen separaten Pufferspeicherplatz. Der Konvergenzpunkt
hat einen Steuermechanismus, der die Header-Informationen der Pakete
prüft,
insbesondere die Zeitstempel und Medienbeschreiber, der bevorzugt
das Paket mit der besseren Qualität ansteuert, wenn Pakettypen
mit demselben Zeitstempel dieselben Grundinformationen enthalten,
aber unterschiedliche Qualität
besitzen (z. B. G.711 gegenüber G.729
Audio), der die Zeitstempel der Pakete verwendet, um die Präsentation
von Medien zu synchronisieren oder zu koordinieren, wenn Pakettypen
unterschiedliche Medien repräsentieren
(wie zum Beispiel G.711 Audio und H.264 Video oder G.711 Audio und
RFC-4103 Text), und der anhand des Medienstromtyps bevorzugt intelligente
Kompromisse zwischen QoS und Isosynchronität macht.
-
In
einer Konfiguration ermöglichen
mehrfache separate Speicheranordnungen mit Steuerlogik oder eine
einzige Speicheranordnung mit Steuerlogik dynamische Partitionen
innerhalb der Anordnung. Zum Beispiel könnte die Anordnung Schreibzeiger zum
Schreiben der Medienströme
in den Speicher, Lesezeiger zum Auslesen der Medienströme und einen ”Pop”-Zeiger,
der in der Lage ist, ungeordnete Pakete sequenziell neu zu ordnen,
haben. Die Steuerlogik prüft
die Paketnummer, den Medientyp und andere statistische Informationen
und sourct die Pakete an andere Digital Signal Processor(”DSP”)-Schaltungen,
wie zum Beispiel nachgeschaltete Codecs, nachgeschaltete Paketverlustverschleierungsalgorithmen,
und Ähnliches.
Die Schaltungen und die Speicheranordnung könnten in einer programmierbaren
Logikanordnung, wie zum Beispiel einer Field Programmable Gate Array
(”FGPA”), einem
Mikrocontroller mit Speicher oder kundenspezifischem Silizium, physikalisch
zusammengefasst sein, oder sie könnten
aus handelsüblichen
Logik- und Speichergeräten
gefertigt sein. Sie könnten
die Steuerung in der Hardware, Software oder, was am wahrscheinlichsten
ist, einer Kombination von beiden, implementieren.
-
Die
Speicheranordnung kann als Jitter-Puffer arbeiten und Aktionen,
die mit mehrfachen Strömen
in Bezug auf QoS und Isosynchronität durchgeführt werden, optimieren. Diese
Medienströme
können
aus identischen Informationen bestehen, die unterschiedlich codiert
sind und über
unterschiedliche Netzwerke gesendet werden, mit der Absicht, eine einzige
perfekte oder nahezu perfekte Gruppe von Paketen für einen
einzelnen Informationsstrom zu gewinnen. Alternativ könnten diese
Medienströme mehrfache
Ströme,
wie zum Beispiel Sprache und Video, sein, die eine Synchronisation
erfordern, um einen Zeitversatz zu vermeiden. Eine weitere Variante könnten mehrfache
Medienströme
sein, die eine Koordination erfordern, wie zum Beispiel Sprache
und Text. Durch Einsatz einer zugeordneten Steuerlogik können intelligente
Entscheidungen hinsichtlich Qualität und Synchronisation getroffen
werden. Dies steht im Gegensatz zu herkömmlichen Systemen, in denen
an unterschiedlichen Punkten im Netzwerk oft Kompromisse gemacht
werden und eine Verbesserung der QoS die Synchronisation negativ
beeinflussen kann.
-
Die
vorliegende Erfindung kann je nach der besonderen Konfiguration
eine Reihe von Vorteilen bieten. Die Erfindung kann Probleme mit
der Isosynchronität
auf einem akzeptablen Niveau halten oder vollständig beseitigen und eine relativ
hohe Praxisqualität
für den
Endanwender aufrechterhalten. Sie kann eine relativ hohe Dienstgüte (”QoS”) in paketvermittelten
Netzwerken, insbesondere bei VoIP-Kommunikationen, aufrechterhalten. Sie
kann sowohl die Qualität
als auch die Zuverlässigkeit
einer Medienübertragung
durch Verwendung mehrfacher Übertragungen
identisch codierter oder abwechselnd codierter Medienströme verbessern,
wobei jede der beiden Möglichkeiten
angewandt werden kann, um einen übertragenen
Medienstrom ausreichend zu regenerieren. Sie kann die Qualität mehrfacher,
paketbasierter Medienströme
verbessern und/oder diese für
eine gleichzeitige oder zumindest koordinierte Weitersendung synchronisieren.
Sie kann Jitter und unkorrektes Paketsequenzialisieren verringern
oder beseitigen und die Synchronisation mehrfacher, paketbasierter
Medienströme
wiederherstellen und, je nach den betreffenden Medien, eines von
beiden wesentlich optimieren.
-
Diese
und weitere Vorteile gehen aus der hierin enthaltenen Offenlegung
der Erfindung(en) hervor.
-
Die
Ausdrücke ”ein oder
mehrere” und ”und/oder” sind offene
Begriffe, die sowohl verbindend als auch trennend angewandt werden.
Zum Beispiel bedeutet der Ausdruck ”A und/oder B und/oder C” nur A
allein, nur B allein, nur C allein, A und B zusammen, A und C zusammen,
B und C zusammen oder A, B und C zusammen.
-
Der
Begriff ”eine” Entität bezieht
sich auf eine oder mehrere jener Entität. Demzufolge können die Begriffe ”ein” ”ein oder
mehrere” und ”und/oder” hier gegeneinander
austauschbar verwendet werden. Ferner ist zu beachten, dass die
Begriffe ”umfassen”, ”aufweisen” und ”haben” gegeneinander
austauschbar verwendet werden können.
-
Der
Begriff ”automatisch” und seine
Abwandlungen, wie sie hier verwendet werden, beziehen sich auf jeglichen
Prozess oder Vorgang, der während seiner
Durchführung
ohne wesentliche Eingabe durch einen Menschen erfolgt. Ein Prozess
oder Vorgang kann jedoch auch dann automatisch sein, wenn für seine
Durchführung
eine wesentliche oder unwesentliche Eingabe durch einen Menschen,
die er vor seiner Durchführung
erhalten hat, verwendet wird. Eine Eingabe durch einen Menschen
gilt als wesentlich, wenn die Eingabe Einfluss darauf hat, wie der Prozess
oder Vorgang durchgeführt
wird. Eine Eingabe durch einen Menschen, welche der Durchführung des
Prozesses oder Vorgangs zustimmt, gilt nicht als ”wesentlich”.
-
”Durchschnittlicher
Paketversatz” ist
ein gleitender Durchschnitt des zeitlichen Versatzes zwischen (1)
der zeitlichen Position, die einem eintreffenden Paket im Pufferspeicher
zugewiesen wird, und (2) der Front des Pufferspeichers (das Paket, das
aktuell seriell ausgegeben wird).
-
”Durchschnittliche
Paketvarianz” ist
ein Parameter, der die Schwankung bei Paketverzögerung oder Jitter misst. Die
durchschnittliche Paketvarianz ist allgemein ein gleitender Durchschnitt
der Varianz in der Eintreffzeit der Pakete.
-
Ein ”Pufferspeicher” ist eine
Routine oder ein Speicher, der verwendet wird, um eine Differenz
in einer Durchflussleistung von Daten oder einer Eintreffenszeit
von Ereignissen zu kompensieren, wenn Daten von einem Gerät (dem Eingabegerät) zu einem anderen
Gerät (dem
Ausgabegerät) übertragen
werden. Ein Jitter-Puffer ist ein spezialisierter Typ von Pufferspeicher,
der Jitter kompensiert oder beseitigt.
-
Der
Begriff ”computer-lesbares
Medium”,
wie er hier verwendet wird, bezieht sich auf jegliches materielles
Speicher- und/oder Übertragungs-Medium, das
daran beteiligt ist, einem Prozessor Befehle zur Ausführung zu
erteilen. Ein solches Medium kann viele Formen annehmen, einschließlich, ohne
jedoch darauf beschränkt
zu sein, nichtflüchtige
Medien, flüchtige
Medien und Übertragungs-Medien. Zu den nichtflüchtigen
Medien gehören
zum Beispiel NVRAM oder Magnet- oder optische Platten. Zu den flüchtigen
Medien gehören
dynamische Speicher, wie z. B. Arbeitsspeicher. Zu den gängigen Formen computer-lesbarer
Medien gehören
zum Beispiel Floppy Disks, Disketten, Festplatten, Magnetbänder oder
jegliche anderen magnetischen Medien, magnetisch-optische Medien,
CD-ROMs, jegliche
anderen optischen Medien, Lochkarten, Lochstreifen, jegliche anderen
körperlichen
Medien mit Lochmustern, RAMs, PROMs und EPROMs, FLASH-EPROMs, Festkörper-Medien
wie Speicherkarten, jegliche anderen Speicher-Chips oder -Kassetten,
Trägerwellen,
wie im Folgenden beschrieben, oder jegliche anderen Medien, die
ein Computer auslesen kann. Ein digitaler Dateianhang einer E-Mail
oder eines anderen in sich geschlossenen Datenarchivs oder einer Menge
von Archiven gilt als einem körperlichen
Speichermedium gleichwertiges Verteilungsmedium. Ist das computer-lesbare
Medium als Datenbank konfiguriert, so ist zu verstehen, dass die
Datenbank jegliche Art von Datenbank sein kann, wie zum Beispiel relational,
hierarchisch, objektorientiert und/oder Ähnliches. Folglich gilt, dass
die Erfindung ein körperliches
Speichermedium oder Verteilungsmedium und nach dem Stand der Technik
anerkannte Äquivalente
und Nachfolgemedien, in denen die Software-Implementierungen der vorliegenden Erfindung gespeichert
sind, aufweist.
-
Die
Begriffe ”ermitteln” und ”berechnen” und ihre
Abwandlungen, wie sie hier verwendet werden, werden gegeneinander
austauschbar verwendet und beinhalten jegliche Art von Methodologie,
Prozess, mathematischer Operation oder Technik.
-
Der
Begriff ”Jitter” ist eine
unerwünschte Laufzeitschwankung
eines übertragenen
digitalen Signals.
-
Der
Begriff ”Modul”, wie er
hier verwendet wird, bezieht sich auf jegliche bekannte oder später entwickelte
Hardware, Software, Firmware, künstliche
Intelligenz, Fuzzy-Logik oder Kombination von Hardware und Software,
die in der Lage ist, die jenem Element zugeordnete Funktionalität auszuführen. Außerdem ist
zu beachten, dass die Erfindung zwar anhand von Ausführungsbeispielen
beschrieben wird, dass jedoch einzelne Aspekte der Erfindung gesondert
beansprucht werden können.
-
Ein ”Zeiger” ist eine
Identifizierer, wie zum Beispiel ein Datenelement, das auf den Standort
eines anderen Datenelements hinweist. Der Wert des Zeigers oder
Zeigerwert, ist im Allgemeinen eine Speicheradresse des lokalisierten
Datenelements.
-
Die
vorstehenden Ausführungen
sind eine vereinfachte Zusammenfassung der Erfindung, um das Verständnis einiger
Aspekte der Erfindung zu erreichen. Diese Zusammenfassung ist weder
ein umfassender noch ein erschöpfender Überblick über die Erfindung
und ihre verschiedenen Ausführungsformen.
Sie soll weder Schlüssel-
oder kritische Elemente der Erfindung kennzeichnen noch den Umfang
der Erfindung umreißen,
sondern ausgewählte Konzepte
der Erfindung in vereinfachter Form präsentieren, als Einführung in
die weiter unten dargelegte ausführlichere
Beschreibung. Man wird verstehen, dass weitere Ausführungsformen
der Erfindung möglich
sind, bei denen ein oder mehrere der weiter oben dargelegten oder
weiter unten ausführlich
beschriebenen Merkmale, allein oder in Kombination, verwendet werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm eines Systems gemäß einer ersten Ausführungsform;
und
-
2 ist
ein Ablaufplan gemäß der ersten Ausführungsform.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Mit
Bezug auf 1 wird eine erste Ausführungsform
der Erfindung beschrieben.
-
Das
System 100 umfasst einen Sendeknoten 104, der über ein
erstes und (optional) ein zweites Netzwerk 108 bzw. 112 mit
einem Empfangsknoten 116 in Kommunikation steht. Der Empfangsknoten 116 umfasst
eine Anzahl von Komponenten, einschließlich eines ersten und eines
zweiten Pufferspeichers 120 bzw. 124, eines Entpaketierers 128,
eines Decodierers 132, eines Verarbeitungsmoduls 136,
eines Netzwerkzustandsmoduls 140 und eines Steuermoduls 144,
die alle mittels eines Busses 148 in Kommunikation stehen.
Man wird verstehen, dass in einer Vollduplex-Kommunikationssitzung
beide Knoten Pakete senden und empfangen und deshalb beide diese
Komponenten besitzen.
-
Der
Sendeknoten 104 und der Empfangsknoten 116 können eine
Vielzahl von Kommunikationsgeräten
sein. Zu den beispielhaften Kommunikationsgeräten gehören Voice over Internet Protocol(”VoIP”)-Geräte (wie
zum Beispiel IP-Softphones und
-Hardphones), Schalter, Medien-Server, Router, Session Border Controllers
und Gateways (z. B. Sicherheits- und Port-Gateways). Üblicherweise
ist die Kommunikation software-gesteuert und beinhaltet einen Mehrzweck-Mikroprozessor; es
kann jedoch auch ein spezialisierter Digital Signal Processor (”DSP”) verwendet
werden.
-
Das
erste und das zweite Netzwerk 108 bzw. 112 sind üblicherweise
beide paketvermittelt; es können
jedoch ein oder beide Netzwerke leitungsvermittelt sein. In einer
Konfiguration werden unterschiedliche Paketkommunikationspfade nur
im ersten Netzwerk 108 verwendet. In einer anderen Konfiguration werden
unterschiedliche, Signalkommunikationspfade über sowohl das erste als auch
das zweite Netzwerk 108 bzw. 112 angewandt.
-
Der
erste und der zweite Pufferspeicher 120 bzw. 124 besitzen
eine Anzahl von Steckplätzen
oder adressierten Speicherplätzen 120-1, 120-2, 120-3, 120-4,
... bzw. 124-1, 124-2, 124-3, 124-4 ...,
um Daten, üblicherweise
Sprach- oder Video-Daten,
für ein späteres Auslesen
zu empfangen, zu speichern und (durch einen Zeitstempel und/oder
eine Paketnummer) sequenziell richtig zu ordnen. Die Pufferspeicher 120 und 124 können je
nach Konfiguration ein Hardware-Gerät oder ein Software-Prozess
sein, wobei ein Software-Prozess bevorzugt wird. In einer Konfiguration
sind einer oder beide des ersten und des zweiten Pufferspeichers 120 bzw. 124 dynamisch
und adaptiv, da sie eine variable Kapazität haben. Der erste und der
zweite Pufferspeicher 120 bzw. 124 befinden sich
in einer verwalteten Speicherzuweisung unter der Steuerung des (weiter
unten erörterten)
Steuermoduls 144. Der zugewiesene Speicher kann jede geeignete
Art von aufzeichenbarem und lesbarem Medium sein. Die Pufferspeicher
können
je nach Konfiguration einen partitionierten gemeinsamen Speicher
oder getrennte Speicher haben. Eine andere gleichwertige Alternative
wäre ein dedizierter
Speicherblock oder -register unter der Steuerung des Moduls 144.
-
Für die Verwaltung
der Pufferspeicher wird eine Anzahl von Zeigern eingesetzt. Sowohl
der erste als auch der zweite Pufferspeicher 120 bzw. 124 hat ein
entsprechendes Paar von Lese- und Schreibzeigern 152a,
b bzw. 156a, b. Der Lesezeiger zeigt auf ein zuletzt gelesenes
Paket oder einen Abschnitt davon, während der Schreibzeiger auf
ein zuletzt geschriebenes oder aufgezeichnetes Paket oder einen Abschnitt
davon zeigt. Zwar wird das gesamte Paket, einschließlich Header,
Trailer und Nutzinformation des Pakets, normalerweise in einen Pufferspeichersteckplatz
geschrieben, jedoch schreibt eine alternative Konfiguration nur
ausgewählte
Teile des Pakets in den Steckplatz. Ein Beispiel wäre die Nutzinformation
und üblicherweise
auch die Paketsequenznummer oder der Zeitstempel. Ein (nicht abgebildeter)
Leseprozess liest den Steckplatzinhalt, während ein (nicht abgebildeter)
Schreibprozess den Inhalt in den jeweiligen Steckplatz schreibt.
Zusätzlich
zu den Lese- und Schreibzeigern 152 bzw. 156 zeigen
die Pop-Zeiger 160a, b auf jeglichen Speicherplatz, der außer Sequenz
ist und der benötigt
wird, um ungeordnete Pakete innerhalb des ersten und des zweiten Pufferspeichers 120 bzw. 124 sequenziell
neu zu ordnen. Einen Pop-Zeiger
kann man sich vorstellen als entweder einen nicht sequenziellen
Lesezeiger (wobei der Zeiger auf das nächste ungeordnete Paket in einer
Paketsequenz zeigt) oder alternativ als einen Zurück-zur-Sequenz-Lesezeiger
(der auf das letzte geordnete Paket in einer nicht sequenziellen
Anordnung von Paketen zeigt). Bei der vorliegenden Erfindung kann
der Pop-Zeiger auf beide Arten verwendet werden.
-
Der
Entpaketierer 128 empfängt
neu geordnete Pakete von dem einen des ersten und des zweiten Pufferspeichers 120 bzw. 124,
auf die der Lesezeiger 152a, b aktuell zeigt, und entfernt
Header und Trailer des Pakets aus dem Paket. Falls die Nutzinformation
komprimiert ist, wird sie anschließend an den Decodierer 132 geleitet.
In einer Konfiguration wird das entsprechend zeitgestempelte und/oder
sequenznummerierte Paket im anderen Pufferspeicher aus dem Pufferspeicher
entfernt und verworfen.
-
Der
Decodierer 132 dekomprimiert die Nutzinformation. Der Decodierer
kann jeder geeignete Dekomprimierungsalgorithmus sein. Man wird
verstehen, dass durch die Komprimierung die Bandbreite oder die
Anzahl der zur Codierung einer Information oder eines Signals benötigten Bits
reduziert werden kann, typischerweise durch Beseitigung langer Folgen
identischer Bits oder von Bits, die sich in aufeinanderfolgenden
Abtastungspausen (z. B. Video-Frames oder Stille) nicht ändern. Es
kann jegliche Komprimierungsebene angewandt werden. Beispiele für Komprimierungsalgorithmen
sind MPEG-2 (Video), MPEG-4 (Video), H.264 (Video), RFC-4103 (Text),
0.711 (Audio), G.723.1 (Audio), G.729 (Audio) und Ähnliches.
-
Das
Verarbeitungsmodul 136 verarbeitet die dekomprimierte Nutzinformation
für die
gewünschte Anwendung.
Für Audio-Nutzinformationen
rekonvertiert das Modul 136 die Audio-Segmente in einen
Audio-(Sprach-)Strom für
einen Hörer.
Das Modul 136 kann je nach Konfiguration eine Konvertierung
von digital in analog oder umgekehrt durchführen. Das Modul 136 kann
auch durch psychoakustisch transparentes oder minimal intrusives
Füllen
(Datenerhöhung)
oder Dezimierung Maskenvarianten durchführen. Um Audio-Daten zu erhöhen, ist
es vorteilhaft, codierte Pakete selektiv zu duplizieren, entsprechend
den Pausen zwischen den Wörtern
und/oder stabilen Vokalklängen.
Weitere ähnliche
Techniken sind nach dem Stand der Technik ebenfalls bekannt. Für Video-Nutzinformationen
kann das Modul 136 auch je nach Konfiguration eine Konvertierung
von digital in analog oder umgekehrt durchführen. Das Modul 136 kann
auch verwendet werden, um ein Kennzeichen eines Video-Strom zu ändern, wie
zum Beispiel Verflechtung, Display-Auflösung, Seitenverhältnis, Farbraum
und Bits pro Pixel, Video-Qualität, Bitrate
und Format.
-
Das
Netzwerkzustandsmodul 140 ermittelt mit Hilfe einer geeigneten
Technik einen Zustand des ersten und/oder des zweiten Netzwerks 108, 112. Der
Netzwerkzustand kann mit Hilfe einer Anzahl von Parametern, einschließlich Zugriffspriorität, Bandbreitenverfügbarkeit,
Jitter, Paketverlust, Wartezeit, Telefonnetzqualität, Zellenfehlerrate,
Zellenblockfehlerrate, Zellenverlustrate, Zellenübertragungsverzögerung,
mittlere Zellenübertragungsverzögerung, Streuung
der Zellenverzögerung,
durchschnittlicher Paketversatz, durchschnittliche Paketvarianz
oder Ähnliches
quantifiziert werden. Der Netzwerkzustand kann durch passive Techniken,
wie zum Beispiel Beobachtung der Kennzeichen der eintreffenden Pakete
und/oder der Pufferspeicher, sowie durch andere aktive (intrusive
oder nicht intrusive) Techniken, wie zum Beispiel Verwendung von
Netzwerk-Probes und das Senden und Empfangen von Ping-Paketen, ermittelt
werden.
-
Das
Steuermodul 144 steuert nicht nur, auf welchen der beiden
Pufferspeicher der Pop-Zeiger 160 zeigt, sondern auch die
Kapazität
sowohl des ersten als auch des zweiten Pufferspeichers. Man wird
verstehen, das die Pufferspeicherkapazität mit Hilfe jeglicher geeigneten
Metrik, wie zum Beispiel Zählen
der Pakete, Zeiteinheiten (Millisekunden) und Ähnliches ausgedrückt werden
kann.
-
Bei
der Steuerung der durch die Lesezeiger 152a, b angesteuerten
Pufferspeicher legt das Steuermodul 144 auch fest, welcher
der zwei Pufferspeicher unkomprimierte Daten oder eine niedrigere
Ebene komprimierter Daten enthält
(wobei der komprimierte oder geringer komprimierte Pufferspeicher
bevorzugt wird), ob ein bestimmtes Paket in der Paketsequenz im
bevorzugten Pufferspeicher eingetroffen ist oder nicht (wenn ein
Paket noch nicht eingetroffen ist und ausgelesen werden soll, wird
das Paket aus dem weniger bevorzugten Pufferspeicher ausgelesen),
und den Netzwerkzustand des für
die Übertragung
von Paketen in den jeweiligen Pufferspeicher verwendeten Kommunikationspfades
(wobei der Kommunikationpfad mit einer höheren Dienstgüte (”QoS”) bevorzugt
wird). In einer Konfiguration sendet der Sendeknoten 104 einen
ausgewählten
Video- oder Audio-Frame unter Verwendung der ersten und der zweiten
Komprimierungsebene und desselben Zeitstempels oder derselben Paketsequenznummer und
Quell- und Zieladressenpaare über
das erste Netzwerk 108. Ein erstes Paket mit der ersten
Komprimierungsebene wird im ersten Pufferspeicher gespeichert, und
das zweite im zweiten Pufferspeicher. Der Pufferspeicher mit der
niedrigeren Komprimierungsebene wird vorzugsweise als Paketquelle
verwendet, wobei der andere Pufferspeicher für Pakete, die sich nicht im
bevorzugten Pufferspeicher befinden, verwendet wird. In einer weiteren
Konfiguration haben das erste und das zweite Paket dieselbe Komprimierungsebene
(oder keine Komprimierung) und werden über unterschiedliche Netzwerke
oder über dieselben
Netzwerke, aber über
unterschiedliche Kommunikationspfade gesendet. Die Pakete haben dieselbe
Quelladresse und Paketsequenznummer und/oder denselben Zeitstempel.
Empfängt
ein Zwischen-Router die beiden Pakete, welche dieselbe Quelladresse
und Paketsequenznummer und/oder denselben Zeitstempel haben, sendet
der Router die Pakete weiter auf unterschiedlichen Pfaden (oder über unterschiedliche
Router-Schnittstellen). Dies erfolgt dadurch, dass jeder Router über einen
ausgewählten
Zeitraum im Speicher eine Auflistung von Feldern von zuvor aufgetretenen
Paket-Headern verwaltet.
-
In
jeder der beiden Konfigurationen können die Pakete, obwohl sie
gemeinsam Nutzinformationen haben, die über einen gemeinsamen Zeitraum (z.
B. 20 Millisekunden) extrahiert werden, dieselbe (duplizierte) Nutzinformation
haben oder auch nicht. Zum Beispiel könnnen das erste und das zweite
Paket dieselbe oder unterschiedliche Arten von Mediennutzinformationen
(z. B. dieselben oder unterschiedliche Medienbeschreiber) haben;
das heißt,
das erste und das zweite Paket können
denselben Frame von Audio-Daten oder gemeinsam zeitgestempelte Frames
von Audio- und Video-Daten (die synchronisiert werden müssen, wenn
sie einem Anwender präsentiert
werden) haben.
-
In
einer Konfiguration, in der die Nutzinformation dupliziert wird,
ist der Sendeknoten 104 ein VoIP-Gerät (ein Hardphone oder Softphone),
und der Sendeknoten 104 überträgt dieselbe Menge von Informationen
(entweder Steuersignale und/oder Leistungsmetriken im Falle des
RealTime Control Protocol (RTCP) oder Audio-Informationen im Falle
des RealTime Transfer Protocol (RTCP)) über ein leitungsvermitteltes
erstes Netzwerk 108 (vorzugsweise über ein Zellularnetz) und ein
paketvermitteltes zweites Netzwerk 112. Die erste, über das
erste Netzwerk 108 gesendete Menge von Paketen wird komprimiert,
während
eine zweite, über
das zweite Netzwerk 112 gesendete Menge von Paketen nicht komprimiert
wird. Der zweite Pufferspeicher 124 (der die zweite Menge
von Paketen enthält)
ist der bevorzugte Pufferspeicher für die angesteuerte Menge von Informationen,
während
der erste Pufferspeicher 120 (der die erste Menge von Paketen
enthält)
verwendet wird, wenn ein gegebenes Element der Menge von Informationen
zum Zeitpunkt des Auslesens aus dem zweiten Pufferspeicher 124 fehlt.
-
In
einer Konfiguration, in der die Nutzinformation nicht dupliziert
wird, empfängt
der Sendeknoten 104 sowohl Sprach- als auch Video-Ströme, entsprechend
einer gemeinsamen Menge von auftretenden Elementen (z. B. einer
Multimedia-Telefonverbindung,
einer Multimedia-Aufzeichnung oder eines Live-Filmens oder einer
Präsentation
und Ähnliches). Zu
jedem Audio-Frame wird aus einem gemeinsamen Ereignis über denselben
Zeitraum ein entsprechender Video-Frame erzeugt. Die erste Menge
von Paketen enthält
Nutzinformationen aus dem Audio-Strom,
während
die zweite Menge von Paketen Nutzinformationen aus dem Video-Strom
enthält.
Am Empfangsknoten 116 wird die Größe des ersten und des zweiten
Pufferspeichers 120 bzw. 124 geändert, so
dass die Zeit zum Lesen entsprechender Paare von Audio- und Video-Informationen
den Verlust eines Frames von Informationen aufgrund von Paket-Jitter
oder Wartezeit wesentlich minimiert. Dies kann dazu führen, dass
der erste und der zweite Pufferspeicher 120 bzw. 124 unterschiedliche
Kapazitäten
haben, was hauptsächlich
von den relativen Zuständen
des ersten und des zweiten Netzwerks 108 bzw. 112 abhängt. Die
Notwendigkeit, die erste und die zweite Menge von Paketen zu synchronisieren, ist
wichtiger als die Wartezeit, die dem Anwender durch eine verzögerte Präsentation
entsteht. Zwar wird dieses Beispiel mit Bezug auf Audio und Video erörtert, es
versteht sich jedoch, dass es gleichermaßen auf jegliche Kombination
von Text, Video und/oder Audio anwendbar ist.
-
Bei
der Steuerung der Kapazität
des jeweiligen Pufferspeichers berücksichtigt das Steuermodul 144 eine
Anzahl von Faktoren. Zu diesen Faktoren gehören zum Beispiel der Netzwerkzustand
des Netzwerks, über
das die Pakete für
einen angesteuerten Pufferspeicher übertragen werden (eine geringere
QoS benötigt grundsätzlich eine
größere Pufferspeichergröße als eine
höhere
QoS), die Größe der im
angesteuerten Pufferspeicher zu speichernden Pakete (Nutzinformationen
mit einer höheren
Komprimierungsebene benötigen
zu ihrer Speicherung weniger Speicher als Nutzinformationen mit
einer niedrigeren Komprimierungsebene), die Pufferspeicherbelegung
des angesteuerten Pufferspeichers, die vom Entpaketierer 128,
vom Decodierer 132 (manche Komprimierungsalgorithmen, wie
zum Beispiel G.729, benötigen
mehr Verarbeitung zur Dekomprimierung als andere, wie zum Beispiel
G.711), und/oder vom Verarbeitungsmodul 136 (insbesondere
eine Video-Verarbeitung kann erhebliche Verzögerungen bei der Verarbeitung
von Video-Paketen einleiten, was es erforderlich macht, die Audio-Pakete länger im
Pufferspeicher zu halten) eingeleitete Paketverarbeitungswartezeit,
den verfügbaren
(maximalen) Speicher für
den angesteuerten Pufferspeicher, die maximale Wartezeit, die das
Verarbeitungsmodul 136 tolerieren kann, um den Erfordernissen des
Anwenders oder der Anwendung zu genügen (manche Anwendungen, wie
zum Beispiel VoIP, erfordern niedrigere Wartezeitebenen als andere,
wie zum Beispiel Bildverarbeitung), die Art der für den Kommunikationspfad
des angesteuerten Pufferspeichers verwendeten Medien (leitungsvermittelte
Netzwerke haben grundsätzlich
kürzere
Wartezeiten und einen geringeren Paketverlust als paketvermittelte Netzwerke),
ob die Nutzinformation für
gemeinsam zeitgestempelte oder nummerierte Pakete vom ersten und
vom zweiten Pufferspeicher dupliziert wird (Anwendungen, die duplizierte
Nutzinformationen beinhalten, können
grundsätzlich
kürzere
Wartezeiten/weniger Jitter als nicht duplizierte Nutzinformationen
tolerieren), ob die Nutzinformationen für gemeinsam zeitgestempelte
oder nummerierte Pakete im ersten und im zweiten Pufferspeicher
aus unterschiedlichen Medienarten bestehen oder unterschiedliche
Medienbeschreiber (z. B. einen Audio-Frame und einen dazugehörigen Video-Frame) haben,
ob die Nutzinformationen aus Steuersignalisierungs- oder Trägerdaten
bestehen (Steuersignale, wie zum Beispiel Dual Tone Multi-Frequency(”DTMF”)-Signale,
müssen
mit dem entsprechenden Audio-Strom synchronisiert werden), die Art
der Nutzinformation im angesteuerten Pufferspeicher (z. B. erfordert
ein VoIP-Gespräch
mit kürzeren
und häufigeren Änderungen
der Sprecher grundsätzlich
kürzere
Wartezeiten/weniger Jitter). Man wird verstehen, dass der erste
und der zweite Pufferspeicher dynamisch eingestellt werden können, um
dieselbe oder unterschiedliche Kapazitäten zu haben.
-
Der
Betrieb des Empfangsknotens 116 wird nun mit Bezug auf 2 erörtert.
-
Bei
Schritt 200 ermittelt das Netzwerkzustandsmodul 140 einen
Zustand des ersten und/oder des zweiten Netzwerks 200.
In einer Konfiguration vergleicht der Empfangsknoten den aktuellen
Netzwerkzustand mit dem/den aktuellen Wert(en) für den Netzwerkzustand aus der
letzten Netzwerkzustandsermittlung. Hat einer oder mehrere der Werte
nicht mindestens ein angesteuertes Änderungsaufkommen, werden die
nachfolgenden Schritte 204, 208 und 212 nicht
durchgeführt.
-
Bei
Schritt 204 ermittelt das Steuermodul 144 einen
aktuellen Zustand des ersten und des zweiten Pufferspeichers 120 bzw. 124.
Der Pufferspeicherzustand berücksichtigt
hauptsächlich
die Pufferspeicherkapazität,
die Positionen des Lese-, Schreib- und/oder Pop-Zeigers und die
Nummern und/oder Orte leerer Steckplätze 120-1, 120-2, 120-3, 120-4, 124-1, 124-2, 124-3, 124-4,
... In einer Konfiguration ermittelt das Steuermodul 144 ferner einen
aktuellen Zustand des Entpaketierers 128 und/oder des Decodierers 132 und/oder
des Verarbeitungsmoduls 136.
-
Bei
Schritt 208 empfängt
das Steuermodul 144 den aktuellen Netzwerkzustand vom Netzwerkzustandsmodul 140 und
ermittelt anhand von Regeln und Richtlinien und der verschiedenen
aktuellen Zustände
die eventuell erforderlichen Änderungen
am ersten und am zweiten Pufferspeicher 120 bzw. 124. Wie
erwähnt,
gehören
zu den möglichen Änderungen die
Positionen der Pop-Zeiger 160a, b, der Lesezeiger 152a,
b und der Schreibzeiger 156a, b sowie die Kapazitäten des
ersten und des zweiten Pufferspeichers 120 bzw. 124.
-
Bei
Schritt 212 rekonfiguriert das Steuermodul 144 den
ersten und den zweiten Pufferspeicher 120 bzw. 124,
wie durch Schritt 208 ermittelt.
-
Die
beispielhaften Systeme und Verfahren dieser Erfindung wurden mit
Bezug auf eine Simplex-Netzwerkarchitektur beschrieben. Um jedoch
die Beschreibung der vorliegenden Erfindung nicht unnötig kompliziert
zu machen, wird eine Reihe bekannter Strukturen und Geräte darin
ausgelassen. Diese Auslassung ist nicht als Einschränkung des
Umfangs der beanspruchten Erfindung auszulegen. Spezielle Einzelheiten
werden dargelegt, um ein Verständnis der
vorliegenden Erfindung zu erzielen. Es ist jedoch zu verstehen,
dass die vorliegende Erfindung auf verschiedene Arten betrieben
werden kann, die über
die hier dargelegten speziellen Einzelheiten hinausgehen.
-
Ferner
zeigen die hier veranschaulichten Ausführungsbeispiele zwar die verschiedenen
Komponenten des zusammengestellten Systems, es können jedoch bestimmte Komponenten
des Systems fern, an entfernten Abschnitten eines verteilten Netzes,
wie zum Beispiel einem LAN und/oder dem Internet, oder in einem
dedizierten System untergebracht sein. Somit ist zu verstehen, dass
die Komponenten des Systems in einem oder mehreren Geräten, wie
zum Beispiel einem Gateway oder Schalter, kombiniert sein können, oder
auf einem bestimmten Knoten eines verteilten Netzes, wie zum Beispiel
einem analogen und/oder digitalen Kommunikationsnetz, einem paketvermittelten
Netzwerk oder einem leitungsvermittelten Netzwerk, zusammengestellt sein
können.
Aus der vorhergehenden Beschreibung ist zu verstehen, dass aus Gründen der
Recheneffizienz die Komponenten des Systems an jeglichem Ort in
einem verteilten Netz von Komponenten angeordnet sein können, ohne
den Betrieb des Systems zu beeinträchtigen. Zum Beispiel können die
verschiedenen Komponenten in einem Schalter, wie zum Beispiel einem
Nebenstellenanlagen- und Medien-Server, einem Gateway, in einem
oder mehreren Kommunikationsgeräten,
in den Räumlichkeiten
eines oder mehrerer Anwender oder in einer Kombination dessen untergebracht
sein. In ähnlicher
Weise können
ein oder mehrere Funktionsabschnitte des Systems zwischen einem
oder mehreren Telekommunikationsgerät(en) und einem dazugehörigen Rechengerät verteilt
sein.
-
Ferner
ist zu verstehen, dass die verschiedenen Links, welche die Elemente
verbinden, drahtgebundene oder drahtlose Links oder jegliche Kombination
davon oder jegliche sonstigen bekannten oder später entwickelten Element(e)
sein können,
die in der Lage sind, Daten an die und von den verbundenen Elementen
zu liefern und/oder zu kommunizieren. Diese drahtgebundenen oder
drahtlosen Links können
auch gesicherte Links sein und können
in der Lage sein, verschlüsselte
Informationen zu kommunizieren. Als Links verwendete Übertragungsmedien können zum
Beispiel jegliche geeigneten Träger
für elektrische
Signale, einschließlich
Koaxialkabel, Kupferdrähte
und Lichtwellenleiter sein, und sie können die Form von Schall- oder
Lichtwellen, wie zum Beispiel derjenigen, die bei Funkwellen- und
Infrarot-Datenkommunikationen erzeugt werden, annehmen.
-
Außerdem wurden
die Ablaufdiagramme zwar mit Bezug auf einen bestimmten Ablauf von
Ereignissen erörtert
und veranschaulicht, es ist jedoch zu verstehen, dass Änderungen,
Hinzufügungen
und Auslassungen an diesem Ablauf erfolgen können, ohne den Betrieb der
Erfindung wesentlich zu beeinträchtigen.
-
Es
kann eine Anzahl von Variationen und Abänderungen der Erfindung verwendet
werden. Es wäre
möglich,
einige Merkmale der Erfindung bereitzustellen, ohne andere bereitzustellen.
-
Zum
Beispiel ist in einer alternativen Ausführungsform das duale Puffersystem
dem Verarbeitungsmodul nachgeschaltet. Die duale Pufferspeicherarchitektur
ist einem ressourcen-intensiven Verarbeitungsmodul vor- oder nachgeschaltet,
wie zum Beispiel einem Bild- oder Video-Prozessor, der, verglichen
mit einem Audio-Prozessor,
eine erhebliche Verarbeitungs-Wartezeit einleitet. Zum Beispiel
ist das Upscaling zur Maximierung der Auflösung ressourcen-intensiv, und
der digitale Signal-Prozessor kann bei fehlender Pufferung durch Überabtastung mathematische
Fehler einleiten. Auf diese Weise können Pakete mit unterschiedlichen
Nutzinformationsarten erfolgreich synchronisiert werden.
-
In
einer weiteren alternativen Ausführungsform
kann das duale Puffersystem verwendet werden, um die Synchronisation
aufrechtzuerhalten, wenn ein Ausfall in einem leitungsvermittelten
Netzwerk, wie zum Beispiel einem Time Division Multiplexed(”TDM”)-Kanal,
auftritt und das Kommunikationssystem ein Failover zu einem paketvermittelten Netzwerk
vornimmt.
-
In
einer weiteren alternativen Ausführungsform
kann das duale Puffersystem verwendet werden, um Steuersignale mit
Trägerpaketen
zu synchronisieren.
-
In
einer weiteren Ausführungsform
können die
Systeme und Verfahren dieser Erfindung implementiert sein zusammen
mit einem Spezial-Computer, einem programmierten Mikroprozessor
oder Mikrocontroller und einem oder mehreren peripheren integrierten
Schaltelementen, einem ASIC oder anderen integrierten Schaltkreis,
einem digitalen Signalprozessor, einem festverdrahteten elektronischen oder
logischen Schaltkreis, wie zum Beispiel einem diskrete-Elemente-Schaltkreis,
einem programmierbaren Logikgerät
oder Gattermatrix, wie zum Beispiel einem PLD, PLA, FPGA, PAL, Spezial-Computer, jeglichem
vergleichbaren Mittel, oder Ähnlichem. Grundsätzlich kann
jedes/können
alle Gerät(e)
oder Mittel, die in der Lage sind, die hier veranschaulichte Methodologie
zu implementieren, verwendet werden, um die verschiedenen Aspekte
dieser Erfindung zu implementieren. Zu der beispielhaften Hardware,
die für
die vorliegende Erfindung verwendet werden kann, gehören Computer,
Handapparate, Telefone (z. B. Mobil-, internetfähige, digitale, analoge, hybride und
andere Telefone), sowie andere nach dem Stand der Technik bekannte
Hardware. Einige dieser Geräte
beinhalten Prozessoren (z. B. einen einzelnen oder mehrere Mikroprozessoren),
einen Speicher, einen batteriegepufferten Speicher, Eingabegeräte und Ausgabegeräte. Ferner
können
auch alternative Software-Implementierungen
einschließlich,
ohne jedoch darauf beschränkt
zu sein, verteilter Verarbeitung oder komponenten-/objekt-verteilter
Verarbeitung, paralleler Verarbeitung oder virtueller Maschinenverarbeitung
gebaut werden, um die hier beschriebenen Verfahren zu implementieren.
-
In
einer weiteren Ausführungsform
können die
beschriebenen Verfahren ohne Weiteres implementiert werden zusammen
mit Software, die Objekt- oder objektorientierte Software-Entwicklungsumgebungen
verwendet, welche einen portablen Quell-Code liefern, der auf einer
Vielzahl von Computer- oder Arbeitsstations-Plattformen verwendet
werden kann. Alternativ kann das beschriebene System ganz oder teilweise
in Hardware, die Standard-Logikschaltkreise
oder ein VLSI-Design verwendet, implementiert werden. Ob für die Implementierung
der Systeme gemäß dieser
Erfindung Software oder Harware verwendet wird, ist abhängig von
den Geschwindigkeits- und/oder Effizienzerfordernissen des Systems,
der speziellen Funktion und den verwendeten speziellen Software-
oder Hardware-Systemen oder Mikroprozessor- oder Mikrocomputersystemen.
-
In
einer weiteren Ausführungsform
können die
beschriebenen Verfahren teilweise in Software implementiert werden,
die auf einem Speichermedium gespeichert werden kann und auf einem
programmierten Allzweck-Computer unter Mitwirkung eines Controllers
und eines Speichers, einem Spezial-Computer, einem Mikroprozessor
oder Ähnlichem läuft. In
diesen Fällen
können
die Systeme und Verfahren dieser Erfindung implementiert werden
als ein in einen PC eingebettetes Programm, wie zum Beispiel ein
Applet-, JAVA®-
oder CGI-Script, als eine auf einem Server oder einer Computer-Arbeitsstation
residente Ressource, als eine in ein dediziertes Messsystem oder
eine Systemkomponente eingebettete Routine, oder Ähnliches.
Das System kann auch implementiert werden, indem das System und/oder
das Verfahren physikalisch in ein Software- und/oder Hardware-System eingebracht
wird.
-
Zwar
beschreibt die vorliegende Erfindung die in den Ausführungsformen
implementierten Komponenten und Funktionen mit Bezug auf bestimmte Normen
und Protokolle, die Erfindung ist jedoch nicht auf solche Normen
und Protokolle beschränkt.
Es existieren weitere ähnliche,
hier nicht erwähnte
Normen und Protokolle, die als in der vorliegenden Erfindung enthalten
gelten. Darüberhinaus
werden die hier erwähnten
Normen und Protokolle und weitere ähnliche, hier nicht erwähnte Normen
und Protokolle regelmäßig durch
schnellere oder effizientere Äquivalente,
welche im Wesentlichen dieselben Funktionen haben, ersetzt. Solche
Ersatznormen und -protokolle, welche dieselben Funktionen haben,
gelten als in der vorliegenden Erfindung enthaltene Äquivalente.
-
Die
vorliegende Erfindung umfasst in verschiedenen Ausführungsformen,
Konfigurationen und Aspekten im Wesentlichen die hier gezeigten und
beschriebenen Komponenten, Verfahren, Prozesse, Systeme und/oder
Geräte,
einschließlich
verschiedener Ausführungsformen,
Unterkombinationen und Untermengen davon. Der Fachmann wird, nachdem
er die vorliegende Beschreibung verstanden hat, wissen, wie die
vorliegende Erfindung herzustellen und zu verwenden ist. Die vorliegende
Erfindung umfasst in verschiedenen Ausführungsformen, Konfigurationen
und Aspekten die Bereitstellung von Geräten und Prozessen, bei Nichtvorhandensein
von hier nicht gezeigten und/oder beschriebenen Elementen, oder
in verschiedenen Ausführungsformen, Konfigurationen
oder Aspekten davon, einschließlich bei
Nichtvorhandensein von Elementen, wie sie eventuell in früheren Geräten oder
Prozessen, z. B. zur Verbesserung der Leistung, Erzielung von Bedienerfreundlichkeit
und/oder Senkung der Implementierungskosten verwendet wurden.
-
Die
vorstehende Erörterung
der Erfindung wurde zum Zweck der Veranschaulichung und Beschreibung
dargelegt. Die vorstehenden Ausführungen
sollen die Erfindung nicht auf die hier beschriebene Form oder Formen
beschränken.
In der vorstehenden ausführlichen
Beschreibung sind zum Beispiel verschiedene Merkmale der Erfindung
in ein oder mehreren Ausführungsformen,
Konfigurationen oder Aspekten gruppiert, um die Beschreibung knapper
zu halten. Die Merkmale der Ausführungsformen, Konfigurationen
oder Aspekte der Erfindung können in
alternativen anderen Ausführungsformen,
Konfigurationen oder Aspekten als den weiter oben erörterten
kombiniert werden. Diese Methode der Beschreibung ist nicht so auszulegen,
dass sie eine Absicht wiedergibt, dass die beanspruchte Erfindung
mehr Merkmale als die ausdrücklich
in jedem Anspruch genannten erfordert. Vielmehr liegen, wie die
folgenden Ansprüche
zeigen, die erfinderischen Aspekte in weniger als allen Merkmalen
einer einzelnen vorstehend beschriebenen Ausführungsform, Konfiguration oder
Aspekt. Somit werden die folgenden Ansprüche hiermit in diese ausführliche
Beschreibung mit aufgenommen, wobei jeder Anspruch für sich allein
als eine separate bevorzugte Ausführungsform der Erfindung steht.
-
Außerdem enthält die Beschreibung
der Erfindung zwar die Beschreibung einer oder mehrerer Ausführungsformen,
Konfigurationen oder Aspekte und bestimmter Variationen und Abwandlungen,
jedoch umfasst der Bereich der Erfindung weitere Variationen, Kombinationen
und Abwandlungen, wie sie z. B. im Rahmen der Fähigkeiten und Kenntnisse des Fachmanns
liegen, nachdem er diese Beschreibung verstanden hat. Es ist beabsichtigt,
Rechte zu erlangen, welche alternative Ausführungsformen, Konfigurationen
oder Aspekte im zulässigen
Ausmaß beinhalten,
einschließlich
Strukturen, Funktionen, Bereiche oder Schritte, die zu den beanspruchten
alternativ, gegen sie austauschbar und/oder mit ihnen gleichwertig
sind, unabhängig
davon, ob diese alternativen, austauschbaren und/oder gleichwertigen Strukturen,
Funktionen, Bereiche oder Schritte hier beschrieben sind oder nicht,
und ohne die Absicht, zugunsten der Allgemeinheit auf einen patentierbaren
Gegenstand zu verzichten.