-
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”.
-
BEREICH
-
Die Erfindung betrifft allgemein die Steuerung von Pufferspeichern und insbesondere die Steuerung von Jitter-Puffern in paketierten Kommunikationen. Entsprechende Systeme und Verfahren sind dem Fachmann aus der
EP 1 168 714 A2 , der
US 2008/0 037 567 A1 , der
US 2006/0 140 221 A1 , der
US 2008/0 310 398 A1 , der
US 2007/0 177 579 A1 und der
EP 1 936 888 A1 bekannt.
-
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 gemeinsamen Empfangsknoten, eines ersten und eines zweiten Pakets, wobei das erste und das zweite Paket gemeinsame Paketdauern sowie gemeinsame Zeitstempel und/oder Sequenznummern haben, wobei das erste Paket in einem ersten Medienstrom empfangen wird und das zweite Paket in einem zweiten, unterschiedlichen Medienstrom empfangen wird;
- (b) Schreiben, durch einen Prozessor, des ersten Pakets in einen ersten Pufferspeicher;
- (c) Schreiben, durch den Prozessor, des zweiten Pakets in einen zweiten Pufferspeicher; und
- (d) Auswählen, durch ein Steuermodul, welches der beiden Pakete gelesen werden soll, wobei nur entweder das erste oder das zweite Paket verwendet wird, um eine Lücke in einem Datenstrom zu füllen,
wobei das erste Paket über ein paketvermitteltes Netzwerk übertragen wird und das zweite Paket über ein leitungsvermitteltes Netzwerk übertragen wird, wobei das erste Paket aus einer ersten, zu dem ersten Pufferspeicher korrespondierenden Warteschlange ausgelesen wird und das zweite Paket nicht aus einer zweiten, zu dem zweiten Pufferspeicher korrespondierenden Warteschlange ausgelesen wird und wobei das zweite Paket im Wesentlichen zur selben Zeit, da das erste Paket aus der ersten Warteschlange ausgelesen wird, aus der zweiten Warteschlange entfernt wird, und wobei das erste und das zweite Paket gemeinsame Quell- und Zieladressenpaare haben, wobei eine Nutzinformation des ersten Pakets einen ersten Komprimierungsgrad hat, eine Nutzinformation des zweiten Pakets einen zweiten Komprimierungsgrad hat, wobei der erste Komprimierungsgrad geringer ist als der zweite Komprimierungsgrad und wobei die Art der Nutzinformation des ersten und des zweiten Pakets dieselbe ist.
-
In einer zweiten Ausführungsform wird ein System angegeben, umfassend:
einen Eingang, der dazu dient, ein erstes und ein zweites Paket zu empfangen, wobei das erste und das zweite Paket gemeinsame Paketdauern sowie gemeinsame Zeitstempel und/oder Sequenznummern haben, wobei das erste Paket in einem ersten Medienstrom empfangen wird und das zweite Paket in einem zweiten, unterschiedlichen Medienstrom empfangen wird;
einen Prozessor, der dazu dient, das erste Paket in einen ersten Pufferspeicher zu schreiben und das zweite Paket in einen zweiten Pufferspeicher zu schreiben; und
ein Steuermodul, das dazu dient, zu ermitteln, welches der beiden Pakete gelesen werden soll, wobei nur entweder das erste oder das zweite Paket verwendet wird, um eine Lücke in einem Datenstrom zu füllen, wobei das erste Paket über ein paketvermitteltes Netzwerk übertragen wird und das zweite Paket über ein leitungsvermitteltes Netzwerk übertragen wird, wobei das erste Paket aus dem ersten Pufferspeicher ausgelesen wird und das zweite Paket nicht aus dem zweiten Pufferspeicher ausgelesen wird und wobei das zweite Paket im Wesentlichen zur selben Zeit, da das erste Paket aus dem ersten Puffer ausgelesen wird, aus dem zweiten Puffer entfernt wird, und
wobei das erste und das zweite Paket gemeinsame Quell- und Zieladressenpaare haben, wobei eine Nutzinformation des ersten Pakets einen ersten Komprimierungsgrad hat, eine Nutzinformation des zweiten Pakets einen zweiten Komprimierungsgrad hat, und wobei die Art der Nutzinformation des ersten und des zweiten Pakets dieselbe ist, und.
-
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 Softwareimplementierungen 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), G.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, Band breitenverfü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 Softwareimplementierungen 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.