DE102004039185B4 - Verfahren und Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen - Google Patents

Verfahren und Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen Download PDF

Info

Publication number
DE102004039185B4
DE102004039185B4 DE102004039185A DE102004039185A DE102004039185B4 DE 102004039185 B4 DE102004039185 B4 DE 102004039185B4 DE 102004039185 A DE102004039185 A DE 102004039185A DE 102004039185 A DE102004039185 A DE 102004039185A DE 102004039185 B4 DE102004039185 B4 DE 102004039185B4
Authority
DE
Germany
Prior art keywords
value
data packets
detector
max
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102004039185A
Other languages
English (en)
Other versions
DE102004039185A1 (de
Inventor
Achim Degenhardt
Daniel Goryn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102004063953A priority Critical patent/DE102004063953B4/de
Priority claimed from DE102004063953A external-priority patent/DE102004063953B4/de
Priority to US11/203,401 priority patent/US7969901B2/en
Publication of DE102004039185A1 publication Critical patent/DE102004039185A1/de
Application granted granted Critical
Publication of DE102004039185B4 publication Critical patent/DE102004039185B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/564Attaching a deadline to packets, e.g. earliest due date first

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Verfahren zur Kompensation von Laufzeitschwankungen von Datenpaketen (1), umfassend die Schritte:
– Zwischenspeichern von über eine Übertragungsstrecke (40) übermittelten Datenpaketen (1) in einem Zwischenspeicher (10),
– Ausspielen der zwischengespeicherten Datenpakete (1) aus dem Zwischenspeicher (10) in vorgegebenen Zeitintervallen nach einer zusätzlichen Ausspielverzögerung (ΔT), gekennzeichnet durch die Schritte:
– Erfassen eines minimalen und eines maximalen Extremwerts für eine Größe, welche ein Maß für die Verweildauer der Datenpakete (1) in dem Zwischenspeicher (10) darstellt,
– Einstellen der zusätzlichen Ausspielverzögerung (ΔT) der Datenpakete (1) abhängig von dem erfassten minimalen und maximalen Extremwert.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren sowie eine Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen, insbesondere von in einem Datennetzwerk übertragenen Datenpaketen, welche beispielsweise zur Übermittlung von Sprachdaten verwendet werden.
  • Bei der Übertragung von Sprachdaten über paketbasierte Datennetzwerke werden die Sprachdaten auf einzelne Datenpakete aufgeteilt und über das Datennetzwerk übermittelt. Die Laufzeit der Datenpakete bei der Übermittlung durch das Datennetzwerk kann dabei unterschiedliche Werte annehmen, d.h. die Datenpakete werden zwar von einem Sender in regelmäßigen Zeitabständen ausgesendet, jedoch nicht von einem Empfänger in den gleichen regelmäßigen Zeitabständen empfangen. Es ist sogar möglich, dass die Datenpakete nicht in der gleichen Reihenfolge eintreffen, in der sie vom Sender ausgesendet wurden. Es entstehen somit Laufzeitschwankungen bei der Übermittlung der Datenpakete durch das Datennetzwerk. Diese Laufzeitschwankungen werden auch als Jitter bezeichnet. Je größer die Laufzeitschwankungen, d.h. je größer der Jitter, desto größer kann auch der zeitliche Abstand zwischen einem idealen Eintreffzeitpunkt eines Datenpakets beim Empfänger, d.h. den Eintreffzeitpunkt des Datenpakets bei einem Datennetzwerk mit einer festen Laufzeit, und dem tatsächlichen Eintreffzeitpunkt sein.
  • Um diese Laufzeitschwankungen auszugleichen, wird üblicherweise ein Zwischenspeicher in Form eines so genannten Jitter Buffers verwendet, welcher eine zusätzliche Verzögerung für die Datenpakete bereitstellt, um die Laufzeitschwankungen der Datenpakete auszugleichen. Falls erforderlich wird auch die ursprüngliche Reihenfolge der Datenpakete wiederhergestellt.
  • Die prinzipielle Vorgehensweise ist dabei, empfangene Datenpakete in dem Zwischenspeicher zwischenzuspeichern und die zwischengespeicherten Datenpakete nach einer zusätzlichen Ausspielverzögerung wiederum in regelmäßigen Zeitabständen aus dem Zwischenspeicher auszuspielen. Die Ausspielverzögerung soll dabei gewährleisten, dass das jeweils auszuspielende Datenpaket auch möglichst immer in dem Zwischenspeicher verfügbar ist.
  • Die Größe der zusätzlichen Ausspielverzögerung für ein Datenpaket hängt davon ab, wann das Datenpaket tatsächlich eingetroffen ist. Je größer der zeitliche Abstand zwischen dem Eintreffen des Datenpakets in dem Zwischenspeicher und dem vorgesehenen Ausspielzeitpunkt ist, desto größer ist auch die benötigte zusätzliche Ausspielverzögerung für das Datenpaket. Die Ausspielverzögerung sollte dabei mit der Stärke der Laufzeitschwankungen des Datennetzwerks korrelieren, d.h. je größer die Laufzeitschwankungen sind, desto größer muss auch die Ausspielverzögerung gewählt werden, um zu vermeiden, dass Datenpakete verworfen werden müssen, weil sie nach ihrem vorgesehenen Ausspielzeitpunkt eingetroffen sind. Der vorgesehene Ausspielzeitpunkt ist dadurch definiert, dass eine Einheit, an welche die Datenpakete ausgespielt werden, beispielsweise ein Decoder zur Umsetzung der Datenpakete in Sprachdaten, nach Verarbeitung eines Datenpakets in einem vorgegebenen Zeitabstand das nächste zu verarbeitende Datenpaket erwartet. Ist dieses Datenpaket in dem Zwischenspeicher nicht verfügbar, müssen die fehlenden Daten beispielsweise durch Interpolation ersetzt werden, und die Übertragungsqualität der Sprachdaten verringert sich.
  • Bei der Übertragung von Sprachdaten über paketbasierte Datennetzwerke beeinflusst die Summe aller Verzögerungen in dem Datennetzwerk erheblich die Qualität der übertragenen Sprachdaten. Diese ist insbesondere wichtig für Datennetzwerkbasierte Fernsprechanwendungen, z.B. so genannte IP-Telefonie. Es hat sich hierbei gezeigt, dass die Qualität für ein Gegensprechen über das Datennetzwerk signifikant abnimmt, wenn die Summe aller Verzögerungen in dem Datennetzwerk 150 ms überschreitet.
  • Aus diesem Grund ist es wichtig, die Ausspielverzögerung durch den Zwischenspeicher zur Kompensation der Laufzeitschwankungen möglichst klein zu halten. Es muss dabei einerseits gewährleistet werden, dass die Ausspielverzögerung der Datenpakete so klein wie möglich ist, aber wiederum ausreichend groß, um die Anzahl der Datenpakete, die nach ihrem vorgesehenen Ausspielzeitpunkt eintreffen und folglich verworfen werden müssen, nicht übermäßig ansteigen zu lassen.
  • Die Laufzeitschwankungen, welche typischerweise in paketbasierten Datennetzwerken auftreten, weisen in der Regel zeitliche Variationen ihrer Stärke auf. Um zu vermeiden, dass die Ausspielverzögerung durch den Zwischenspeicher auf die schlechtesten Netzwerkbedingungen, d.h. die stärksten Laufzeitschwankungen für die Datenpakete, abgestimmt werden muss, kann die Ausspielverzögerung durch den Zwischenspeicher adaptiv nachgeregelt werden, d.h. an die Netzwerkbedingungen angepasst werden. Auf diese Weise wird vermieden, dass die Qualität der Sprachverbindung aufgrund einer für die meisten Fälle zu hoch gewählten Ausspielverzögerung unnötig verschlechtert wird. Derartige Zwischenspeicher, welche ihre Ausspielverzögerung adaptiv an Netzwerkbedingungen anpassen können, werden auch adaptive Jitter Buffer genannt.
  • Beispielsweise ist aus der WO 01/37468 A2 eine Vorgehensweise zur Anpassung der Ausspielverzögerung durch einen Zwischenspeicher bekannt, bei welcher die Belegung oder der Füllstand des Zwischenspeichers, d.h. die Anzahl der darin gespeicherten Datenpakete, erfasst wird. Dies geschieht über einen Spitzenwert-Detektor, dessen Wert die in einer bestimmten Zeitperiode maximal aufgetretene Belegung widerspiegelt. Die Auslesegeschwindigkeit aus dem Zwischenspeicher und damit auch die Belegung des Zwischenspeichers wird in Abhängigkeit des Werts des Spitzenwert-Detektors eingestellt.
  • Diese Vorgehensweise bietet jedoch nur unzulängliche Möglichkeiten, die Ausspielverzögerung auf einem minimalen Wert zu halten. Wenn beispielsweise die Datenpakete jeweils 10 ms Sprachdaten beinhalten und sich der Zwischenspeicher in einem leeren Zustand befindet, so dass ein gerade eingetroffenes Datenpaket bereits nach einer Millisekunde wieder ausgespielt wird, ist die tatsächliche Verweildauer des Datenpakets in dem Zwischenspeicher genau eine Millisekunde. Die Belegung des Zwischenspeichers in Zeiteinheiten beträgt vor dem Eintreffen des Datenpakets Null, unmittelbar nach Eintreffen des Datenpakets 10 ms und unmittelbar nach dem Ausspielen des Datenpakets wieder Null. Die tatsächliche Verweildauer des Datenpakets in dem Zwischenspeicher, welche eine Millisekunde beträgt, wird somit über die Belegung des Zwischenspeichers nur unzulänglich erfasst.
  • Um jedoch eine effektive Minimierung der zusätzlichen Ausspielverzögerung durch den Zwischenspeicher erreichen zu können, ist eine möglichst präzise Bestimmung der Verweildauer wichtig. Das Missverhältnis zwischen Verweildauer der Datenpakete in dem Zwischenspeicher und der momentanen Belegung des Zwischenspeichers wird noch größer, wenn die Sprachdaten beispielsweise mit der standardisierten Sprachkompression G.723 komprimiert sind, da in diesem Fall sogar 30 ms an Sprachdaten pro Datenpaket übertragen werden. Für das oben dargestellte Beispiel würde die Belegung des Zwischenspeichers in Zeiteinheiten dann sogar zwischen 0 und 30 ms schwanken, obwohl die tatsächliche Verweildauer des Datenpakets in dem Zwischenspeicher nur eine Millisekunde beträgt.
  • Gerade bei Datennetzwerken mit sehr kleinen Verzögerungen (beispielsweise so genannten AAL-basierten Netzwerken) kann die Verweildauer von Datenpaketen in dem Zwischenspeicher wie in dem obigen Beispiel unterhalb der Länge der Sprachdaten in einem Datenpaket liegen. Hier bietet die Belegung des Zwischenspeichers nicht die nötige Auflösung, um die Ausspielverzögerung durch den Zwischenspeicher optimal einstellen zu können. Die Ausspielverzögerung durch den Zwischenspeicher wird daher in der Regel deutlich größer sein als erforderlich. Weiterhin bestehen Probleme bei Datennetzwerken, in denen es nicht sichergestellt ist, dass die Datenpakete in der gleichen Reihenfolge eintreffen, wie sie vom Sender geschickt wurden. Insbesondere kann in diesem Fall nicht bestimmt werden, wie viele der Datenpakete rechtzeitig vor ihrem vorgesehenen Ausspielzeitpunkt eintreffen. Es kann beispielsweise vorkommen, dass die Belegung des Zwischenspeichers, d.h. die Anzahl der Datenpakete in dem Zwischenspeicher, groß ist, das als Nächstes auszuspielende Datenpaket jedoch noch nicht in dem Zwischenspeicher eingetroffen ist. Wenn nun der Ausspielzeitpunkt dieses Datenpakets erreicht wird, muss das fehlende Datenpaket interpoliert werden, was die Übertragungsqualität reduziert.
  • Aus dem US-Patent Nr. 5,640,388 ist es wiederum bekannt, nicht die Belegung des Zwischenspeichers, sondern die Verweildauer der Datenpakete in dem Zwischenspeicher als Grundlage für die Einstellung der Ausspielverzögerung zu verwenden. Es wird dabei die Verweildauer der Datenpakete in dem Zwischenspeicher über die Differenz zwischen der Eintreffzeit in dem Zwischenspeicher und dem Ausspielzeitpunkt aus dem Zwischenspeicher berechnet. Dies bedeutet jedoch, dass die Verweildauer erst dann berechnet werden kann, wenn das jeweilige Datenpaket den Zwischenspeicher wieder verlassen hat. In diesem Fall verzögert sich die Auswertung der Verweildauer des Datenpakets in dem Zwischenspeicher um die Verweildauer selbst. Die Datenpakete in dem Zwischenspeicher liefern erst dann einen Betrag zur Auswertung der Verweildauer, wenn sie bereits ausgespielt worden sind. Hieraus folgt, dass auf Änderungen der Netzwerkbedingungen, beispielsweise auf eine Verstärkung der Laufzeitschwankungen, nur träge reagiert werden kann. Gerade in so genannten IP-basierten Datennetzwerken ergibt sich häufig eine Verweildauer der Datenpakete von 200 ms und mehr. Dies bedeutet jedoch, dass eine Vielzahl von Datenpaketen in dem Zwischenspeicher vorhanden ist, deren Laufzeitschwankungen bei der Einstellung der Ausspielverzögerung noch nicht berücksichtigt worden sind. Es ist daher möglich, dass aufgrund einer zu späten Berücksichtigung von veränderten Netzwerkbedingungen der Zwischenspeicher überläuft oder vollständig entleert wird, d.h. ein so genannter Überlauf oder Unterlauf des Zwischenspeichers auftritt.
  • Aus der US 6,301,258 B1 ist ein Verfahren zum Reduzieren von durch eine Zwischenspeicherung bewirkten Latenzzeiten bei paketbasierten Telefonieanwendungen bekannt. Speziell wird vorgeschlagen, vor dem Ausspielen von Daten aus dem Zwischenspeicher nicht zu warten, bis der Zwischenspeicher voll ist, d.h. einen vorgegebenen Füllstand erreicht hat, sondern vielmehr die Daten bereits dann aus dem Zwischenspeicher auszuspielen, wenn das erste Datenelement eintrifft. In diesem Fall wird jedoch eine Ausspielgeschwindigkeit verwendet, welche langsamer ist als die normale Ausspielgeschwindigkeit. Darüber hinaus wird vorgeschlagen, den Zwischenspeicher derart zu steuern, dass der Füllstand sich innerhalb eines gewünschten Bereichs bewegt, indem die Ausspielgeschwindigkeit abhängig von dem Füllstand des Speichers verringert bzw. erhöht wird. Hierfür ist die Verwendung eines oder mehrerer Schwellenwerte vorgesehen.
  • Die EP 5 77 329 A2 beschreibt die Einstellung einer Ausspielverzögerung aus einem Zwischenspeicher abhängig von einer Überwachung des Füllstands des Zwischenspeichers. Bei der Ausgabe der empfangenen Daten, bei welchen es sich vorzugsweise um Videodaten handelt, die über ein ATM-Netzwerk übertragen werden, werden so genannte Time-Stamps, welche in den Daten enthalten sind, im Zusammenhang mit einem Systemzeitgeber verwendet.
  • Die US 2003/0152094 A1 beschreibt eine schwellenwertbasierte Steuerung für einen Zwischenspeicher zum Ausspielen von paketbasierten Daten, welche im Zusammenhang mit einer VoIP-Anwendung über ein Netzwerk übertragen werden. Es ist vorgesehen, dass die Ausspielverzögerung abhängig von Netzwerkverkehrseigenschaften iterativ angepasst wird, indem ein Ausspielschwellenwert angepasst wird.
  • Die US 2004/0057446 A1 beschreibt eine verbesserte Verzögerungskompensation für die Übertragung von Multimediadaten. Diese wird insbesondere über ein verbessertes Zusammenwirken zwischen einem Server und einem Client erreicht. Zu diesem Zweck werden von dem Client an den Server Informationen übertragen, welche Zwischenspeicherungsparameter anzeigen. Auf diese Weise kann der Server bei der Übertragung eines Datenstroms die seitens des Clients vorgenommene Zwischenspeicherung bzw. deren Parameter berücksichtigen.
  • Die US 6,259,677 B1 beschreibt eine Steuerung für die Ausspielverzögerung aus einem Zwischenspeicher bei VoIP-Anwendungen. Hierbei ist vorgesehen, dass ein Empfänger Mittel zum Abschätzen einer festen Verzögerung bei der Übertragung der Datenpakete und Mittel zum Abschätzen einer variablen Verzögerung bei der Übermittlung der Datenpakete umfasst. Die ermittelte variable Verzögerung wird zur Einstellung der Ausspielverzögerung herangezogen. Zur Abschätzung der festen Verzögerung und der variablen Verzögerung wird vorgeschlagen, eine Grobverzögerung für jedes Datenpaket basierend auf einem Sende-Timestamp und einem Empfangs-Timestamp zu berechnen.
  • Angesichts der Probleme des oben beschriebenen Stands der Technik ist es eine Aufgabe der vorliegenden Erfindung, ein Verfahren sowie eine Vorrichtung bereitzustellen, durch welche es ermöglicht wird, die Ausspielverzögerung durch den Zwischenspeicher auf einen möglichst geringen Wert einzustellen, wobei gleichzeitig die Anzahl von nach ihrem vorgesehe nen Ausspielzeitpunkt eintreffenden Datenpaketen gering gehalten wird.
  • Diese Aufgabe wird gelöst durch ein Verfahren zur Kompensation von Laufzeitschwankungen von Datenpaketen gemäß Anspruch 1, sowie durch eine Vorrichtung zur Kompensation von Laufzeitschwankungen gemäß Anspruch 18. Die abhängigen Ansprüche definieren bevorzugte und vorteilhafte Ausführungsformen der Erfindung.
  • Die vorliegende Erfindung sieht vor, dass Laufzeitschwankungen von Datenpaketen kompensiert werden, indem über eine Übertragungsstrecke, z.B. ein Datennetzwerk, übermittelte Datenpakete in einem Zwischenspeicher zwischengespeichert werden und dann die zwischengespeicherten Datenpakete nach einer zusätzlichen Ausspielverzögerung in vorgegebenen Zeitintervallen aus dem Zwischenspeicher ausgespielt werden. Auf diese Weise werden die Laufzeitschwankungen der Datenpakete kompensiert, wobei sich für die einzelnen Datenpakete unterschiedliche Verweildauern in dem Zwischenspeicher ergeben. Speziell weisen Datenpakete mit einer geringeren Laufzeit als eine mittlere Laufzeit der Datenpakete eine größere Verweildauer in dem Zwischenspeicher auf und Datenpakete mit einer größeren Laufzeit als die mittlere Laufzeit der Datenpakete weisen eine geringere Verweildauer in dem Zwischenspeicher auf. Dies bewirkt die gewünschte Kompensation der Laufzeitunterschiede. Die zusätzliche Ausspielverzögerung soll dabei gewährleisten, dass ein auszuspielendes Datenpaket bereits vor seinem vorgesehenen Ausspielzeitpunkt in dem Zwischenspeicher verfügbar ist. Dabei ist vorgesehen, dass die zusätzliche Ausspielverzögerung der Datenpakete eingestellt wird, so dass eine Anpassung an sich verändernde Netzwerkbedingungen gewährleistet ist.
  • Gemäß der vorliegenden Erfindung ist vorgesehen, dass ein minimaler und ein maximaler Extremwert für eine Größe erfasst wird, welche ein Maß für die Verweildauer der Datenpakete in dem Zwischenspeicher darstellt. Die Ausspielverzögerung der Datenpakete wird dann abhängig von dem erfassten minimalen und maximalen Extremwert eingestellt. Hierdurch wird gewährleistet, dass sowohl Datenpakete mit einer maximalen Verweildauer in dem Zwischenspeicher, d.h. Datenpakete, die sehr früh vor ihrem vorgesehenen Ausspielzeitpunkt in dem Zwischenspeicher eintreffen, als auch Datenpakete mit einer minimalen Verweildauer, d.h. Datenpakete, welche kurz vor ihrem vorgesehenen Ausspielzeitpunkt in dem Zwischenspeicher eintreffen, bei der Einstellung der Ausspielverzögerung der Datenpakete berücksichtigt werden. Auf diese Weise kann ein optimaler Kompromiss zwischen einer Minimierung der zusätzlichen Ausspielverzögerung durch den Zwischenspeicher und der Minimierung der Anzahl von Paketen, welche erst nach ihrem vorgesehenen Ausspielzeitpunkt eintreffen, gefunden werden.
  • Die Größe, welche ein Maß für die Verweildauer der Datenpakete in dem Zwischenspeicher darstellt, kann beispielsweise die Belegung des Zwischenspeichers oder die tatsächliche Verweildauer der Datenpakete in dem Zwischenspeicher umfassen. Besonders bevorzugt ist es jedoch, wenn als Größe, welche ein Maß für die Verweildauer der Datenpakete in dem Zwischenspeicher darstellt, eine voraussichtliche Verweildauer der Datenpakete in dem Zwischenspeicher verwendet wird. Die voraussichtliche Verweildauer der Datenpakete in dem Zwischenspeicher wird dabei bereits vor dem Ausspielen der Datenpakete aus dem Zwischenspeicher, vorzugsweise unmittelbar nach Eintreffen der Datenpakete in dem Zwischenspeicher berechnet. Auf diese Weise ist es möglich, auch Datenpakete, welche noch nicht ausgespielt worden sind, bei der Einstellung der Ausspielverzögerung zu berücksichtigen. Dies gewährleistet eine schnellere Anpassung der Ausspielverzögerung an sich verändernde Netzwerkbedingungen.
  • Gemäß einer bevorzugten Ausführungsform der Erfindung ist vorgesehen, dass die zusätzliche Ausspielverzögerung abhängig von der für jedes Datenpaket berechneten voraussichtlichen Verweildauer in dem Zwischenspeicher eingestellt wird. Die voraussichtliche Verweildauer wird dabei für jedes Datenpaket berechnet, bevor das Datenpaket ausgespielt wird, vorzugsweise unmittelbar nach dem Eintreffen des Datenpakets in dem Zwischenspeicher. Dies gewährleistet auch unabhängig von dem Erfassen der Extremwerte ein genaues und zuverlässiges Einstellen der zusätzlichen Ausspielverzögerung. Es wird gemäß der vorliegenden Erfindung jedoch als besonders vorteilhaft angesehen, die voraussichtliche Verweildauer für jedes Datenpaket zu berechnen und die Ausspielverzögerung der Datenpakete abhängig von dem erfassten minimalen und maximalen Extremwert der voraussichtlichen Verweildauer der Datenpakete in dem Zwischenspeicher einzustellen.
  • Erfindungsgemäß kann die voraussichtliche Verweildauer der Datenpakete vor dem Ausspielen des jeweiligen Datenpakets als Differenz zwischen einer Zeitmarkierung des Datenpakets und einer Ausspielzeit, welche einem auf die Zeitmarkierung des momentan ausgespielten Datenpakets bezogenen relativen Zeit fortschritt entspricht, berechnet werden. Dabei entspricht die Zeitmarkierung der Datenpakete jeweils einem definierten Zeitpunkt vor Aussenden des Datenpakets auf die Übertragungsstrecke. Speziell kann die Zeitmarkierung durch einen so genannten Timestamp gebildet sein, welcher vom Sender bestimmt wird, beispielsweise wenn das Datenpaket zusammengesetzt bzw. ausgesendet wird. So ist z.B. im Fall eines so genannten RTP-Protokolls der Timestamp Bestandteil eines Datenpaket-Headers. Im Falle des so genannten AAL-Protokolls kann die Zeitmarkierung auf Basis eines so genannten UUI-Feldes und eines so genannten Sequence-Number-Intervalls berechnet werden. Die erforderliche Zeitmarkierung ist somit unmittelbarerer Bestandteil des Datenpakets oder kann aus Bestandteilen des Datenpakets berechnet werden. Die Zeitmarkierung entspricht dabei in der Regel im Wesentlichen dem Zeitpunkt, zu welchem das Datenpaket auf Seite des Senders erzeugt wurde, d.h. dem Sendezeitpunkt.
  • Die auf diese Weise berechnete voraussichtliche Verweildauer wird als voraussichtliche Verweildauer bezeichnet, da zum Zeitpunkt des Eintreffens des Datenpakets in dem Zwischenspeicher mögliche Anpassungen der Ausspielverzögerung, welche vorgenommen werden, während sich das Datenpaket in dem Zwischenspeicher befindet, noch nicht bekannt sind. Würden, während sich das Datenpaket in dem Zwischenspeicher befindet, keine Anpassungen der Ausspielverzögerung vorgenommen werden, entspräche die voraussichtliche Verweildauer exakt der tatsächlichen Verweildauer des Datenpakets in dem Zwischenspeicher.
  • Zum Erfassen des minimalen Extremwerts und des maximalen Extremwerts der Größe, welche die Verweildauer der Datenpakete in dem Zwischenspeicher widerspiegelt, wird vorzugsweise der maximale Wert der Größe mit einem Maximalwert-Detektor erfasst und der minimale Wert der Größe mit einem Minimalwert-Detektor erfasst. Dabei nimmt der Minimalwert-Detektor immer dann einen neuen Wert an, wenn die erfasste Größe den momen tanen Wert des Minimalwert-Detektors unterschreitet, und der Maximalwert-Detektor nimmt immer dann einen neuen Wert an, wenn die erfasste Größe den momentanen Wert des Maximalwert-Detektors überschreitet. Die zusätzliche Ausspielverzögerung kann dann abhängig von dem Wert des Minimalwert-Detektors und dem Wert des Maximalwert-Detektors eingestellt werden.
  • Hierfür wird vorzugsweise ein mittlerer Schwellenwert bestimmt, welcher im Wesentlichen proportional zu einem Erwartungswert der Laufzeitschwankungen der Datenpakete ist. Zusätzlich wird ein unterer Schwellenwert, der einer Minimalverweildauer der Datenpakete in dem Zwischenspeicher, die nicht unterschritten werden soll, entspricht, und ein oberer Schwellenwert, der einer Maximalverweildauer, welche nicht überschritten werden soll, entspricht, bestimmt. Dabei können der untere und der obere Schwellenwert aus dem mittleren Schwellenwert, d.h. aus dem Erwartungswert der Laufzeitschwankungen, abgeleitet sein. Der jeweilige Wert des Minimalwert-Detektors und des Maximalwert-Detektors wird dann mit dem unteren, mittleren und oberen Schwellenwert verglichen, um abhängig von dem Ergebnis des Vergleichs einen Anpassungswert für die Ausspielverzögerung zu bestimmen. Anschließend kann ein angepasster Wert für die Ausspielverzögerung durch Addition der momentanen Ausspielverzögerung mit dem Anpassungswert bestimmt werden. Die Verwendung dieser Schwellenwerte gewährleistet einerseits, dass die Ausspielverzögerung dem Erwartungswert der Laufzeitschwankungen angepasst werden kann, andererseits aber die Minimalverweildauer der Datenpakete in dem Zwischenspeicher nicht unterschritten und die Maximalverweildauer der Datenpakete in dem Zwischenspeicher nicht überschritten wird.
  • Der Minimalwert-Detektor und der Maximalwert-Detektor weisen vorzugsweise zwei Zeitkonstanten auf, wobei für den Fall, dass ein neuer Extremwert erfasst wird, dieser mit einer ersten Zeitkonstante übernommen wird, während, wenn kein neuer Extremwert erfasst wird, der Wert des Minimalwert-Detektors bzw. des Maximalwert-Detektors mit einer zweiten Zeitkonstante ansteigt bzw. abfällt. Vorzugsweise werden neue Extremwerte von dem Minimalwert-Detektor und dem Maximalwert-Detektor sofort übernommen. Auf diese Weise ist gewährleistet, dass eine vorübergehende Verschlechterung der Netzwerkbedingungen, d.h. vorübergehend größere Laufzeitschwankungen, nicht bewirken, dass die Ausspielverzögerung nachfolgend dauerhaft auf einem zu großen Wert gehalten wird. Durch die schnelle Übernahme neuer Extremwerte wird hingegen gewährleistet, dass auf sich ändernde Netzwerkbedingungen zügig reagiert werden kann.
  • Die Zunahme des Werts des Minimalwert-Detektors und die Abnahme des Werts des Maximalwert-Detektors, wenn keine neuen Extremwerte erfasst werden, kann in regelmäßigen Zeitabständen erfolgen, wird jedoch vorzugsweise nur dann bewirkt, wenn auch ein neues Datenpaket in dem Zwischenspeicher eingetroffen ist. Hieraus ergibt sich der Vorteil, dass, wenn beispielsweise bei einer Datennetz-basierten Telefonanwendung Gesprächspausen auftreten, so dass keine Datenpakete oder nur wenige Datenpakete eintreffen, der jeweilige Wert des Minimalwert-Detektors und des Maximalwert-Detektors sich nicht bzw. kaum verändert. Dies ist hilfreich, da sich in diesem Fall die Netzwerkbedingungen und insbesondere die Laufzeitschwankungen der Datenpakete nur schwer beobachten lassen und es somit vorteilhaft ist, die zuletzt gefundenen Extremwerte als Basis für die Einstellung der Ausspielverzögerung zu verwenden.
  • Die Erfindung betrifft weiterhin eine Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen, welche als Zwischenspeicher ausgestaltete Speichermittel umfasst, um über eine Übertragungsstrecke empfangene Datenpakete zwischenzuspeichern. Die Vorrichtung ist dabei derart ausgestaltet, dass die zwischengespeicherten Datenpakete nach einer zusätzlichen Ausspielverzögerung in vorgegebenen Zeitintervallen aus dem Zwischenspeicher ausgespielt werden.
  • In Übereinstimmung mit der Erfindung ist die Vorrichtung dazu ausgestaltet, einen minimalen und einen maximalen Extremwert für eine Größe zu erfassen, welche ein Maß für die Verweildauer der Datenpakete in dem Zwischenspeicher darstellt, und die Ausspielverzögerung der Datenpakete abhängig von dem erfassten minimalen und maximalen Extremwert einzustellen. Vorzugsweise ist die Vorrichtung zur Durchführung des oben beschriebenen erfindungsgemäßen Verfahrens ausgestaltet.
  • Die vorliegende Erfindung betrifft weiterhin ein Computerprogrammprodukt, das einen Programmcode bzw. elektronisch lesbare Steuerinformationen umfasst, welcher bzw. welche derart ausgestaltet ist bzw. sind, dass bei Verwendung in einem Computersystem das erfindungsgemäße Verfahren ausgeführt wird. Die vorliegende Erfindung ist dabei jedoch nicht auf die Verwendung in herkömmlichen Computersystemen beschränkt, sondern ist auch in eigens zur Übermittlung von Sprachdaten oder Videodaten über paketbasierte Datennetzwerke ausgestalteten Vorrichtungen, wie z.B. Internet-Telefone o.Ä., einsetzbar.
  • Die vorliegende Erfindung ermöglicht es, sowohl die Verweildauer von Datenpaketen, die kurz vor ihren vorgesehenen Ausspielzeitpunkt in dem Zwischenspeicher eintreffen, als auch die Verweildauer von Datenpaketen, die sehr früh vor ihren vorgesehenen Ausspielzeitpunkt in dem Zwischenspeicher eintreffen, bei der Einstellung der zusätzlichen Ausspielverzögerung zu berücksichtigen. Hierdurch wird gleichzeitig eine möglichst niedrige Ausspielverzögerung gewährleistet und die Anzahl von Paketen, die nach ihrem vorgesehenen Ausspielzeitpunkt eintreffen und dadurch nicht ausgespielt werden können, gering gehalten.
  • Die Erfindung wird nachfolgend anhand eines bevorzugten Ausführungsbeispiels unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert.
  • 1 zeigt eine Anordnung zur Kompensation von Laufzeitschwankungen von Datenpaketen gemäß einem Ausführungsbeispiel der Erfindung,
  • 2 zeigt ein Flussdiagramm zur Veranschaulichung eines Verfahrens zur Einstellung einer Ausspielverzögerung von Datenpaketen gemäß dem Ausführungsbeispiel der Erfindung,
  • 3 zeigt ein Flussdiagramm zur Veranschaulichung der Bestimmung eines Anpassungswerts zur Anpassung der Ausspielverzögerung gemäß dem Ausführungsbeispiel der Erfindung, und
  • 4 zeigt ein Computersystem, welches im Rahmen einer Datennetzwerk-basierten Telefonie-Anwendung einsetzbar ist und zur Kompensation von Laufzeitschwankungen gemäß dem Ausführungsbeispiel von 13 ausgestaltet ist.
  • 1 zeigt schematisch ein Beispiel für eine Anordnung zur Kompensation von Laufzeitschwankungen von Datenpaketen 1, welche auf einem als Jitter Buffer ausgestalteten Zwischenspeicher 10 basiert. Die Datenpakete 1 werden über eine Übertragungsstrecke 40, welche durch ein Datennetzwerk bzw. einen Teil eines Datennetzwerks gebildet ist, empfangen und in dem Zwischenspeicher 10 zwischengespeichert. Die Datenpakete 1 sind mit einer Zeitmarkierung TSn+x versehen, wobei die Zeitmarkierung den Zeitpunkt des Erzeugens oder Aussendens der Datenpakete 1 durch einen Sender (nicht dargestellt) wider spiegelt. Die Datenpakete 1 werden in dem Zwischenspeicher 10 zwischengespeichert und anschließend in vorgegebenen Zeitintervallen aus dem Zwischenspeicher 10 ausgespielt, so dass die Laufzeitschwankungen, welchen die in dem Zwischenspeicher 10 eintreffenden Datenpakete 1 unterliegen, ausgeglichen werden. Hierfür erfolgt durch den Zwischenspeicher 10 eine zusätzliche Ausspielverzögerung ΔT, welche gewährleisten soll, dass der Zwischenspeicher 10 nicht leerläuft, d.h. dass stets das momentan auszuspielende Datenpaket 1 auch in dem Zwischenspeicher 10 verfügbar ist. Die Zeitmarkierung des momentan ausgespielten Datenpakets 1 ist mit TSn bezeichnet, und die nachfolgenden Zeitmarkierungen weisen gemäß x = 1, 2, 3 usw. einen entsprechend höheren Index auf.
  • Die Zeitmarkierungen TSn+x spiegeln für jedes der Datenpakete 1 den Zeitpunkt seines Aussendens bzw. Erzeugens wider. Die Datenpakete 1 codieren Sprachdaten, welche von dem Sender als kontinuierlicher Datenstrom übermittelt werden, so dass jedes der Datenpakete 1 eine vorgegebene Länge von Sprachdaten enthält und sich der gesamte Datenstrom der Sprachdaten durch Zusammensetzen des Inhalts der einzelnen Datenpakete 1 ergibt. Die Länge der in den Datenpaketen 1 codierten Sprachdaten kann beispielsweise 10 ms oder 30 ms betragen. Die Zeitmarkierungen TSn+x und TSn+x+1 zweier aufeinander folgender Datenpakete 1 unterscheiden sich somit um die Länge der in den Datenpaketen 1 codierten Sprachdaten.
  • Auch wenn das vorliegende Beispiel nachfolgend anhand von übermittelten Sprachdaten diskutiert wird, können durch die Datenpakete auch andere Daten, beispielsweise Videodaten, übermittelt werden.
  • Die Zeitmarkierungen TSn+x der Datenpakete 1 können abhängig von dem verwendeten Übertragungsprotokoll ein unmittelbarer Bestandteil der Datenpakete 1 sein oder aus Bestandteilen der Datenpakete 1 hervorgehen. So ist beispielsweise im Fall des so genannten RTP-Protokolls ein so genannter Timestamp in ei nem Header der Datenpakete 1 enthalten. Im Falle des so genannten AAL-Protokolls kann die Zeitmarkierung TSn+x basierend auf dem UUI-Feld und dem Sequence-Number-Intervall berechnet werden.
  • Die Datenpakete 1 werden aus dem Zwischenspeicher 10 an einen Decoder 20 ausgespielt, welcher die in den Datenpaketen 1 enthaltenen Sprachdaten decodiert und die Sprachdaten wieder zu einem kontinuierlichen Datenstrom zusammensetzt. Hierfür ist es erforderlich, dass der Decoder 20 die Datenpakete 1 in bestimmten vorgegebenen Zeitintervallen erhält, welche nicht unterschritten werden dürfen. Auf diese Weise wird vermieden, dass fehlende Sprachdaten unter Qualitätsverlust durch Interpolation ergänzt werden müssen. Die vorgegebenen Zeitintervalle, in welchen der Decoder 20 Datenpakete 1 erwartet, sind grundsätzlich abhängig von der Länge der in den Datenpaketen 1 codierten Sprachdaten.
  • Um zu vermeiden, dass Datenpakete 1 zu ihrem vorgesehenen Ausspielzeitpunkt, d.h. wenn der Decoder 20 das jeweilige Datenpaket 1 erwartet, nicht in dem Zwischenspeicher 10 verfügbar sind, stellt der Zwischenspeicher 10 die zusätzliche Ausspielverzögerung ΔT bereit, welche gewährleisten soll, dass möglichst viele der Datenpakete 1 vor ihrem vorgesehenen Ausspielzeitpunkt in dem Zwischenspeicher 10 eintreffen. Da die Eintreffzeitpunkte der Datenpakete 1 in dem Zwischenspeicher 10 von den Netzwerkbedingungen, d.h. von der jeweiligen Laufzeit der Datenpakete durch das Datennetzwerk, abhängig sind, wird die Ausspielverzögerung ΔT mittels eines Steuerungsblocks 15 eingestellt und an die sich verändernden Netzwerkbedingungen angepasst.
  • Das Einstellen der Ausspielverzögerung ΔT geschieht auf Basis einer voraussichtlichen Verweildauer tn+x der der Datenpakete 1 in dem Zwischenspeicher 10. Der Index n+x stellt dabei die bereits im Zusammenhang mit den Zeitmarkierungen TSn+x erläuterte fortlaufende Nummerierung der Datenpaket 1 dar. Die vor aussichtliche Verweildauer tn+x der Datenpakete 1 in dem Zwischenspeicher 10 wird unmittelbar nach Eintreffen der Datenpakete 1 in dem Zwischenspeicher 10 berechnet. Dies bedeutet, dass die voraussichtliche Verweildauer tn+x der der Datenpakete 1 bereits vor dem Ausspielzeitpunkt der Datenpakete 1 aus dem Zwischenspeicher 10 verfügbar ist, um darauf basierend die Ausspielverzögerung ΔT einzustellen. Hierdurch wird eine schnelle Anpassung an die sich verändernden Netzwerkbedingungen gewährleistet.
  • Die voraussichtliche Verweildauer tn+x eines eines Datenpakets wird auf Basis der Zeitmarkierung TSn+x des Datenpakets berechnet. Zusätzlich wird eine weitere Größe verwendet, die den relativen Zeitfortschritt beim Ausspielen der Datenpakete 1 aus dem Zwischenspeicher 10 widerspiegelt. Hierfür wird eine Ausspielzeit TO definiert, welche zunächst auf die Zeitmarkierung TSn des momentan ausgespielten Datenpakets 1 zuzüglich der Länge L in Zeiteinheiten der in den Datenpaketen 1 codierten Sprachdaten gesetzt wird. Die Ausspielzeit TO entspricht dann der Zeitmarkierung TSn+1 des Datenpakets 1, welches als Nächstes ausgespielt werden muss. Dabei ist es unerheblich, ob sich dieses als Nächstes auszuspielende Datenpaket 1 schon in dem Zwischenspeicher 10 befindet oder nicht.
  • Wenn ein neues Datenpaket 1 mit der Zeitmarkierung TSn+x in dem Zwischenspeicher 10 eintrifft, dient die Differenz zwischen der Zeitmarkierung TSn+x und der Ausspielzeit TO als Grundlage für die Berechnung der voraussichtlichen Verweildauer tn+x des des Datenpakets 1 in dem Zwischenspeicher 10. Zusätzlich wird noch die Zeitspanne zwischen dem Eintreffen des Datenpakets 1 in dem Zwischenspeicher 10 und dem vorgesehenen Ausspielzeitpunkt für das als Nächstes aus dem Zwischenspeicher 10 auszuspielende Datenpaket 1 berücksichtigt, so dass die voraussichtliche Verweildauer tn+x des des Datenpakets 1 in dem Zwischenspeicher 10 mit einer über die zeitliche Länge L der Sprachdaten in den Datenpaketen 10 hinausgehenden Genauigkeit berechnet werden kann. Dies geschieht im vorliegenden Fall dadurch, dass die Ausspielzeit TO durch eine weitere Größe NR zeitabhängig angepasst wird. Wenn das momentan auszuspielende Datenpaket 1 zum Ausspielen freigegeben wird, d.h. zu Beginn des Ausspielvorgangs, wird die weitere Größe NR auf die zeitliche Länge L der Datenpakete 1, z.B. 10 ms, gesetzt. Anschließend wird die weitere Größe NR mit der Zeit dekrementiert, so dass sie stets der Zeitdifferenz bis zum vorgesehenen Ausspielzeitpunkt des als Nächstes auszuspielenden Datenpakets 1 entspricht. Wenn somit die weitere Größe NR von der oben definierten Ausspielzeit subtrahiert wird, resultiert eine Größe, welche präzise den relativen Zeitfortschritt beim Ausspielen der Datenpakete 1 widerspiegelt.
  • Die Ausspielzeit TO ergibt sich in diesem Fall somit als Differenz der Zeitmarkierung TSn des momentan ausgespielten Datenpakets 1 zuzüglich der zeitlichen Länge L der Datenpakete 1 und der weiteren Größe NR: TO = TSn + L – NR.
  • Demnach kann für ein Datenpaket 1 mit der Zeitmarkierung TSn+x bei Eintreffen des Datenpakets 1 in dem Zwischenspeicher 10 seine voraussichtliche Verweildauer tn+x in in dem Zwischenspeicher 10 gemäß Tn+x = TSn+x – TOberechnet werden.
  • Die Berechnung der voraussichtlichen Verweildauer tn+x kann kann im Detail jedoch auch anders gestaltet werden. Beispielsweise könnte die Ausspielzeit TO auch auf die Zeitmarkierung des momentan ausgespielten Datenpakets TSn gesetzt werden, ohne die Länge der Datenpakete 1 hinzuzuaddieren. In diesem Fall könnte dann die Ausspielzeit TO mit der Zeit inkrementiert werden, so dass die Ausspielzeit TO stets präzise den relati ven Zeitfortschritt beim Ausspielen der Datenpakete 1 widerspiegelt.
  • Wenn die voraussichtliche Verweildauer tn+x nicht nicht unmittelbar nach Eintreffen des jeweiligen Datenpakets 1 in dem Zwischenspeicher berechnet wird, muss zusätzlich die zeitliche Differenz zwischen dem Berechnungszeitpunkt und dem Eintreffzeitpunkt berücksichtigt werden.
  • Um die auf diese Weise berechnet voraussichtliche Verweildauer tn+x der der Datenpakete 1 in dem Zwischenspeicher 10 für die Einstellung der zusätzlichen Ausspielverzögerung ΔT durch den Zwischenspeicher 10 optimal nutzbar zu machen, werden Extremwerte der berechneten voraussichtlichen Verweildauer tn+x erfasst. Dies bedeutet, dass sowohl die kleinste auftretende voraussichtliche Verweildauer tn+x als als auch die größte auftretende voraussichtliche Verweildauer tn+x in in einem gewissen Zeitraum zum Einstellen der zusätzliche Ausspielverzögerung ΔT verwendet werden. Dies geschieht durch Verwendung eines Minimalwert-Detektors PDMIN für den minimalen Extremwert der voraussichtlichen Verweildauer tn+x und eines Maximalwert-Detektors PDMAX für den maximalen Extremwert der voraussichtlichen Verweildauer tn+x. Die Werte des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX werden im Nachfolgenden ebenfalls mit PDMIN bzw. PDMAX bezeichnet.
  • Der Minimalwert-Detektor PDMIN und der Maximalwert-Detektor PDMAX sind derart ausgestaltet, dass sie bei einem neuen Extremwert der voraussichtlichen Verweildauer tn+x, d.h. bei einer voraussichtlichen Verweildauer tn+x, welche den momentanen Wert des Minimalwert-Detektors PDMIN unterschreitet bzw. den momentanen Wert des Maximalwert-Detektors PDMAX überschreitet, ihren Wert schnell an den jeweiligen neuen Extremwert anpassen. Vorzugsweise wird ein neu erfasster Extremwert von dem Minimalwert-Detektor PDMIN und von dem Maximalwert-Detektor PDMAX sofort übernommen.
  • In dem Fall, dass kein neuer Extremwert erfasst wird, wird der jeweilige Wert des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX mit der Zeit erhöht bzw. verringert. Hierdurch wird erreicht, dass der Minimalwert-Detektor PDMIN und der Maximalwert-Detektor PDMAX nicht die absoluten Extremwerte der voraussichtlichen Verweildauer tn+x repräsentieren, sondern relative Extremwerte, welche innerhalb eines gewissen Zeitraums aufgetreten sind.
  • Das Vergrößern des Werts des Minimalwert-Detektors PDMIN und das Verringern des Werts des Maximalwert-Detektors PDMAX erfolgt derart, dass sich eine Anpassung des jeweiligen Werts ergibt, die langsamer erfolgt als das Übernehmen eines neuen Extremwerts. Insbesondere wird dieses Nachführen des jeweiligen Werts des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX nur dann ausgeführt, wenn neue Werte für die voraussichtliche Verweildauer tn+x verfügbar sind, d.h. wenn ein neues Datenpaket 1 in dem Zwischenspeicher 10 eingetroffen ist. Auf diese Weise wird erreicht, dass der Minimalwert-Detektor PDMIN und der Maximalwert-Detektor PDMAX ihre Werte beibehalten, wenn die sich verändernden Netzwerkbedingungen aufgrund der geringen oder nicht vorhandenen Anzahl von in dem Zwischenspeicher 10 eintreffende Datenpaketen 1 nur schwer beobachtet werden können.
  • 2 zeigt ein Flussdiagramm, welches den Verfahrensablauf bei der Einstellung bzw. Anpassung der Ausspielverzögerung ΔT der Datenpakete 1 aus dem Zwischenspeicher 10 veranschaulicht. Wenn ein neues Datenpaket 1 mit der Zeitmarkierung TSn+x in dem Zwischenspeicher 10 eingetroffen ist, wird durch das dargestellte Verfahren ein Anpassungswert Δ für die Ausspielverzögerung ΔT ermittelt, welcher gewährleistet, dass die Ausspielverzögerung ΔT an einen optimalen Wert angeglichen wird. Der Anpassungswert Δ wird in Zeiteinheiten ermittelt, wobei ein positiver Wert eine Vergrößerung der Ausspielverzögerung ΔT bedeutet und ein negativer Wert eine Verringerung der Ausspielverzögerung ΔT bedeutet.
  • Der eigentliche Anpassungsvorgang der Ausspielverzögerung ΔT kann danach auf unterschiedlichen Wegen erreicht werden. Bei einer Vergrößerung der Ausspielverzögerung ΔT muss im Prinzip dafür gesorgt werden, dass die Datenpakete langsamer ausgegeben werden, und bei einer Verkleinerung der Ausspielverzögerung ΔT muss im Prinzip dafür gesorgt werden, dass die Sprachdaten schneller ausgegeben werden. Dies kann beispielsweise erreicht werden, indem die Zeitintervalle, in welchen die Datenpakete 1 aus dem Zwischenspeicher ausgespielt werden, entsprechend angepasst werden.
  • Wenn ein neues Datenpaket 1 in dem Zwischenspeicher 10 eingetroffen ist, wird in Berechnungsschritt 110 zunächst die voraussichtliche Verweildauer tn+x in in dem Zwischenspeicher 10 berechnet. Dies geschieht in der zuvor dargestellten Weise auf Basis der Zeitmarkierungen TSn+x der Datenpakete 1.
  • Die berechnete voraussichtliche Verweildauer tn+x wird wird anschließend im Extremwert-Erfassungsschritt 120 mittels des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX erfasst. Falls der berechnete Wert der voraussichtlichen Verweildauer tn+x den momentanen Wert des Minimalwert-Detektors PDMIN unterschreitet, wird der berechnete Wert der voraussichtlichen Verweildauer tn+x als als neuer Wert des Minimalwert-Detektors PDMIN übernommen. Wenn dies nicht der Fall ist, wird der Wert des Minimalwert-Detektors PDMIN um einen vorgegebenen Betrag erhöht. Falls der berechnete Wert der voraussichtlichen Verweildauer tn+x den den momentanen Wert des Maximalwert-Detektors PDMAX überschreitet, wird die berechnete voraussichtliche Verweildauer tn+x als als neuer Wert des Maximalwert-Detektors PDMAX übernommen. Wenn dies nicht der Fall ist, wird der Wert des Maximalwert-Detektors PDMAX um einen vorgegebenen Betrag erniedrigt. Die Beträge, um welche der Minimalwert-Detektor PDMIN erhöht wird bzw. der Wert des Maximalwert-Detektors PDMAX vermindert wird, falls kein neuer Extremwert erfasst wird, sind dabei vorzugsweise jeweils an die zu erwartenden Netzwerkbedingungen angepasst.
  • Im Anpassungswert-Bestimmungsschritt 130 wird abhängig von den Werten des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX der Anpassungswert Δ zur Anpassung der Ausspielverzögerung ΔT bestimmt. Dies geschieht durch Vergleichen der Werte des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX mit vorgegebenen Schwellenwerten.
  • Anschließend wird in Korrekturschritt 140 der jeweilige Wert des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX um den Anpassungswert Δ korrigiert, d.h. der Anpassungswert Δ wird zu dem jeweiligen Wert des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX hinzuaddiert. Hierdurch wird vermieden, dass derselbe Anpassungsvorgang mehrfach wiederholt wird. Dies ist von besonderem Vorteil, da als Eingangsgröße für die Berechnung des Anpassungswerts Δ die voraussichtliche Verweildauer tn+x der der Datenpakete in dem Zwischenspeicher 10 verwendet wird. Eine Anpassung der Ausspielverzögerung ΔT bedeutet somit auch, dass sich die voraussichtlichen Verweildauern tn+x der der im Zwischenspeicher 10 befindlichen Datenpakete 1 verändert. Dies wird durch die Korrektur des jeweiligen Werts des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX berücksichtigt.
  • In Anpassungsschritt 150 erfolgt schließlich die Anpassung der Ausspielverzögerung, indem der ermittelte Anpassungswert Δ zu der momentanen Ausspielverzögerung ΔT hinzuaddiert wird.
  • Das Verfahren endet in Endpunkt 160 und wird, wenn erneut ein Datenpaket 1 in dem Zwischenspeicher 10 eintrifft, wiederholt.
  • 3 zeigt ein Flussdiagramm, welches die Bestimmung des Anpassungswerts Δ abhängig von dem Wert des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX veranschau licht. Hierfür erfolgt ein Vergleich des jeweiligen Werts des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX mit Schwellenwerten, welche einen unteren Schwellenwert LO, einen mittleren Schwellenwert OPT und einen oberen Schwellenwert HI umfassen. Der mittlere Schwellenwert OPT ist derart gewählt, dass er proportional zu einem Erwartungswert der Laufzeitschwankungen in dem Datennetzwerk ist. Der mittlere Schwellenwert OPT repräsentiert eine optimale Verweildauer für die Datenpakete 1, welche am schnellsten durch das Datennetzwerk übertragen werden. Der untere Schwellenwert LO kann aus dem mittleren Schwellenwert OPT abgeleitet sein oder fest vorgegeben sein. Der untere Schwellenwert LO entspricht einer Mindestverweildauer der Datenpakete 1 in dem Zwischenspeicher 10, welche nicht unterschritten werden soll. Hierdurch wird ein zusätzliches Maß an Sicherheit bereitgestellt, da der mittlere Schwellenwert, welcher aus dem Erwartungswert für die Laufzeitschwankungen abgeleitet ist, von den tatsächlich auftretenden Laufzeitschwankungen abweichen kann. Es ist jedoch auch möglich, den unteren Schwellenwert LO auf Null zu setzen. Der obere Schwellenwert HI kann aus dem mittleren Schwellenwert OPT abgeleitet sein oder fest vorgegeben sein. Der obere Schwellenwert HI entspricht einer maximalen Verweildauer der Datenpakete 1 in dem Zwischenspeicher 10, die nicht überschritten werden soll.
  • Zum Bestimmen des Anpassungswerts Δ wird zunächst in Initialisierungsschritt 210 der Anpassungswert Δ auf Null gesetzt. Anschließend wird in Vergleichsschritt 220 überprüft, ob der Wert des Maximalwert-Detektors PDMAX kleiner als der mittlere Schwellenwert OPT ist. Wenn dies der Fall ist, wird mit Vergleichsschritt 230 fortgefahren. Wenn dies nicht der Fall ist, wird mit Vergleichsschritt 260 fortgefahren.
  • In Vergleichsschritt 230 wird überprüft, ob der Wert des Minimalwert-Detektors PDMIN größer oder gleich dem unteren Schwellenwert LO ist. Wenn dies der Fall ist, wird mit Anpassungswert-Berechnungsschritt 240 fortgefahren. Wenn dies nicht der Fall ist, wird mit Anpassungswert-Berechnungsschritt 250 fortgefahren.
  • Im Anpassungswert-Berechnungsschritt 240 wird der Anpassungswert Δ auf den Mittelwert der Differenz zwischen dem Wert des Minimalwert-Detektors PDMIN und dem unteren Schwellenwert LO und der Differenz zwischen dem mittleren Schwellenwert OPT und dem Wert des Maximalwert-Detektors PDMAX gesetzt. Dies bedeutet, dass der Anpassungswert durch Δ = (OPT + LO – PDMAX – PDMIN)/2bestimmt ist. Auf diese Weise wird erreicht, dass nach Korrektur der Werte des Minimalwert-Detektors PDMIN und des Maximalwert-Detektors PDMAX mit dem Anpassungswert Δ in Korrekturschritt 140 der Abstand zwischen dem unteren Schwellenwert LO und dem Minimalwert-Detektor PDMIN gleich dem Abstand zwischen dem mittleren Schwellenwert OPT und dem Wert des Maximalwert-Detektors PDMAX ist. Hierdurch ist der Anpassungswert Δ für einen ersten Fall definiert, in welchem der Wert des Minimalwert-Detektors PDMIN über dem unteren Schwellenwerts LO liegt und der Wert des Maximalwert-Detektors PDMAX unter dem mittleren Schwellenwerts OPT liegt (PDMIN ≥ LO, PDMAX < OPT).
  • In Berechnungsschritt 250 wird der Anpassungswert Δ auf die jeweils kleinere Differenz zwischen dem unteren Schwellenwert LO und dem Wert des Minimalwert-Detektors PDMIN oder zwischen dem mittleren Schwellenwert OPT und dem Wert des Maximalwert-Detektors PDMAX gesetzt. Der Anpassungswert Δ ist somit durch Δ = min (LO – PDMIN, OPT – PDMAX)bestimmt. Hierdurch wird der Anpassungswert Δ für einen zweiten Fall definiert, in welchem der Wert des Minimalwert-Detektors PDMIN unter dem unteren Schwellenwert LO liegt und der Wert des Maximalwert-Detektors PDMAX unter dem mittleren Schwellenwert OPT liegt (PDMIN < LO, PDMAX < OPT).
  • In Vergleichsschritt 260 wird überprüft, ob der Wert des Minimalwert-Detektors PDMIN größer oder gleich dem unteren Schwellenwert LO ist. Wenn dies der Fall ist, wird mit Anpassungswert-Berechnungsschritt 270 fortgefahren. Wenn dies nicht der Fall ist, wird mit Anpassungswert-Berechnungsschritt 280 fortgefahren.
  • Im Anpassungswert-Berechnungsschritt 270 wird der Anpassungswert Δ auf die negative, jeweils kleinere Differenz zwischen dem unteren Schwellenwert LO und dem Wert des Minimalwert-Detektors PDMIN oder zwischen dem Wert des Maximalwert-Detektors PDMAX und dem mittleren Schwellenwert OPT gesetzt. Der Anpassungswert Δ ist somit durch Δ = min (PDMIN – LO, PDMAX – OPT)bestimmt. Hierdurch wird der Anpassungswert Δ für einen dritten Fall definiert, in welchem der Wert des Minimalwert-Detektors PDMIN über dem unteren Schwellenwert LO liegt und der Wert des Maximalwert-Detektors PDMAX über dem mittleren Schwellenwert OPT liegt (PDMIN ≥ LO, PDMAX ≥ OPT).
  • In Anpassungswert-Berechnungsschritt 280 wird der Anpassungswert Δ auf die jeweils kleinere Differenz zwischen dem unteren Schwellenwert LO und dem Wert des Minimalwert-Detektors PDMIN oder zwischen dem oberen Schwellenwert HI und dem Wert des Maximalwert-Detektors PDMAX gesetzt. Der Anpassungswert Δ ist somit durch Δ = min (LO – PDMIN, HI – PDMAX)bestimmt. Hierdurch wird der Anpassungswert Δ für einen vierten Fall definiert, in welchem der Wert des Minimalwert-Detektors PDMIN unter dem unteren Schwellenwert LO liegt und der Wert des Maximalwert-Detektors PDMAX über dem mittleren Schwellenwert OPT liegt (PDMIN < LO, PDMAX ≥ OPT).
  • In dem vierten Fall wird zusätzlich sichergestellt, dass der Anpassungswert Δ nicht kleiner als Null wird, um auf diese Weise einen Unterlauf des Zwischenspeichers 10 durch eine kleine Ausspielverzögerung ΔT zu verhindern. Hierfür wird in Vergleichsschritt 290 überprüft, ob der im Anpassungswert-Berechnungsschritt 280 berechnete Anpassungswert Δ kleiner als Null ist. Wenn dies der Fall ist, wird mit Anpassungswert-Berechnungsschritt 300 fortgefahren. Wenn dies nicht der Fall ist, wird der Anpassungswert Δ beibehalten und das Verfahren an Endpunkt 310 beendet.
  • Im Anpassungswert-Berechnungsschritt 300 wird der Anpassungswert Δ auf Null gesetzt. Der Anpassungswert ist somit durch Δ = 0bestimmt. Hierdurch ist der Anpassungswert Δ für den Spezialfall des vierten Falls definiert, wenn im Anpassungswert-Berechnungsschritt 280 ein Anpassungswert Δ berechnet wird, der kleiner als Null ist.
  • Im Anschluss an die Anpassungswert-Berechnungsschritte 240, 250, 270 und 300 wird das Verfahren an den Endpunkten 310 beendet und mit den anhand von 2 erläuterten Schritten fortgefahren.
  • 4 zeigt ein Computersystem 30, welches zur Verwendung bei einer Datennetzwerk-basierten Telefonie-Anwendung einsetzbar ist. Dabei kann es sich beispielsweise um eine Telefonie-Anwendung über ein IP-basiertes Datennetzwerk handeln. Das Computersystem 30 verfügt über Datenverarbeitungsmittel 35, welche Speichermittel beinhalten, die als der Zwischenspeicher 10 bei der Kompensation von Laufzeitschwankungen von empfangenen Datenpaketen verwendet werden. Das Computersystem 30 verfügt über eine Schnittstelle, über welches es mit der Übertragungsstrecke 40, d.h. dem Datennetzwerk, verbunden ist. Das Computersystem 30 führt einen Programmcode aus, welcher bewirkt, dass die Kompensation der Laufzeitschwankungen von über das Datennetzwerk empfangenen Datenpaketen gemäß dem zuvor anhand von 13 beschriebenen Verfahren erfolgt. Der Programmcode kann dem Computersystem beispielsweise über einen Datenträger 60, der in einer entsprechenden Lesevorrichtung 32 lesbar ist, zugeführt sein. Die von dem Computersystem 30 empfangenen Datenpakete 1 werden durch den Decoder 20, welcher ebenfalls durch eine entsprechende Software implementiert sein kann, in Sprachdaten umgesetzt, welche anschließend über ein Ein-/Ausgabemittel 50 für Sprachdaten ausgegeben werden. Hierfür umfasst das Ein-/Ausgabemittel 50 für Sprachdaten Ausgabemittel in Form von Lautsprechern 52. Weiterhin ist ein Eingabemittel in Form eines Mikrofons 54 vorgesehen, durch welches Sprachdaten eingegeben werden können. Das Computersystem 30 ist somit derart ausgestaltet, dass auch Sprachdaten in das Computersystem 30 eingegeben werden können und über die Übertragungsstrecke 40 in Form von Datenpaketen an den Sender oder an einen anderen Empfänger ausgesendet werden können. Das Computersystem 30 ist somit insbesondere derart ausgestaltet, dass eine bidirektionale Übermittlung von Sprachdaten möglich ist.
  • Die anhand von 1 beschriebene Anordnung im Zusammenhang mit dem im Vorangegangenen beschriebenen Verfahren zur Kompensation von Laufzeitschwankungen kann jedoch auch in anderen Vorrichtung zum Einsatz kommen, wie z.B. in einem eigens für Datennetzwerk-basierte Telefonie-Anwendungen ausgestalteten IP-Telefon.

Claims (20)

  1. Verfahren zur Kompensation von Laufzeitschwankungen von Datenpaketen (1), umfassend die Schritte: – Zwischenspeichern von über eine Übertragungsstrecke (40) übermittelten Datenpaketen (1) in einem Zwischenspeicher (10), – Ausspielen der zwischengespeicherten Datenpakete (1) aus dem Zwischenspeicher (10) in vorgegebenen Zeitintervallen nach einer zusätzlichen Ausspielverzögerung (ΔT), gekennzeichnet durch die Schritte: – Erfassen eines minimalen und eines maximalen Extremwerts für eine Größe, welche ein Maß für die Verweildauer der Datenpakete (1) in dem Zwischenspeicher (10) darstellt, – Einstellen der zusätzlichen Ausspielverzögerung (ΔT) der Datenpakete (1) abhängig von dem erfassten minimalen und maximalen Extremwert.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Größe, welche ein Maß für die Verweildauer der Datenpakete (1) in dem Zwischenspeicher (10) darstellt, die Belegung des Zwischenspeichers (10) umfasst.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Größe, welche ein Maß für die Verweildauer der Datenpakete (1) in dem Zwischenspeicher (10) darstellt, die tatsächliche Verweildauer der Datenpakete (1) in dem Zwischenspeicher (10) umfasst.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Größe, welche ein Maß für die Verweildauer der Datenpakete (1) in dem Zwischenspeicher darstellt, eine voraussichtliche Verweildauer (tn+x) der Datenpakete (1) in dem Zwischenspeicher (10) umfasst.
  5. Verfahren nach Anspruch 4, gekennzeichnet durch den Schritt: – Berechnen der voraussichtlichen Verweildauer (tn+x) der Datenpakete (1) vor dem Ausspielen des jeweiligen Datenpakets (1) als Differenz zwischen einer Zeitmarkierung (TSn+x) des Datenpakets (1) und einer Ausspielzeit (TO), welche einem auf die Zeitmarkierung (TSn) des momentan ausgespielten Datenpakets (1) bezogenen relativen Zeitfortschritt entspricht, wobei die Zeitmarkierung (TSn+x) der Datenpakete (1) jeweils einem definierten Zeitpunkt vor Aussenden des Datenpakets (1) auf die Übertragungsstrecke (40) entspricht.
  6. Verfahren nach Anspruch 5, gekennzeichnet durch den Schritt: – Bestimmen der Ausspielzeit (TO) abhängig von der Zeitmarkierung (TSn) des momentan ausgespielten Datenpakets (1) und einer weiteren Größe (NR), welche dem Zeitintervall zwischen dem Eintreffen des Datenpakets (1) in dem Zwischenspeicher (10) und dem Beginn des Ausspielens des momentan ausgespielten Datenpakets (1) entspricht.
  7. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: – Erfassen der Größe, welche ein Maß für die Verweildauer der Datenpakete (1) in dem Zwischenspeicher (10) darstellt, mit einem Minimalwert-Detektor (PDMIN) für den minimalen Wert der Größe und einem Maximalwert-Detektor (PDMAX) für einen maximalen Wert der Größe, wobei der Minimalwert-Detektor (PDMIN) einen neuen Wert annimmt, wenn die erfasste Größe den momentanen Wert des Minimalwert-Detektors (PDMIN) unterschreitet, und wobei der Maximalwert-Detektor (PDMAX) einen neuen Wert annimmt, wenn die erfasste Größe den momentanen Wert des Maximalwert-Detektors (PDMAX) überschreitet, – Einstellen der Ausspielverzögerung (ΔT) abhängig von dem Wert des Minimalwert-Detektors (PDMIN) und dem Wert des Maximalwert-Detektors (PDMAX).
  8. Verfahren nach Anspruch 7, gekennzeichnet durch die Schritte: – Bestimmen eines mittleren Schwellenwerts (OPT), der proportional zu einem Erwartungswert der Laufzeitschwankungen der Datenpakete (1) ist, – Bestimmen eines unteren Schwellenwerts (LO), der einer Minimalverweildauer der Datenpakete (1) in dem Zwischenspeicher (10), welche nicht unterschritten werden soll, entspricht, – Bestimmen eines oberen Schwellenwerts (HI), der einer Maximalverweildauer, welche nicht überschritten werden soll, entspricht, – Vergleichen des Werts des Minimalwert-Detektors (PDMIN) und des Werts des Maximalwert-Detektors (PDMAX) mit dem unteren, mittleren und oberen Schwellenwert (LO, OPT, HI), – Anpassen der Ausspielverzögerung (ΔT) um einen Anpassungswert (Δ), welcher abhängig von dem Ergebnis des Vergleichs bestimmt ist.
  9. Verfahren nach Anspruch 8, gekennzeichnet durch den Schritt: – Korrigieren des Werts des Minimalwert-Detektors (PDMIN) und des Werts des Maximalwert-Detektors (PDMAX) um den Anpassungswert (Δ).
  10. Verfahren nach Anspruch 8 oder 9, gekennzeichnet durch die Schritte: – Setzen des Anpassungswerts (Δ) auf den Mittelwert der Differenz zwischen dem Wert des Minimalwert-Detektors (PDMIN) und dem unteren Schwellenwert (LO) und der Differenz zwischen dem mittleren Schwellenwert (OPT) und dem Wert des Maximalwert-Detektors (PDMAX), wenn der Wert des Minimalwert-Detektors (PDMIN) über dem unteren Schwellenwert (LO) liegt und der Wert des Maximalwert-Detektors (PDMAX) unter dem mittleren Schwellenwert (OPT) liegt, – Setzen des Anpassungswerts (Δ) auf die jeweils kleinere Differenz zwischen dem unteren Schwellenwert (LO) und dem Wert des Minimalwert-Detektors (PDMIN) oder zwischen dem mittleren Schwellenwert (OPT) und dem Wert des Maximalwert-Detektors (PDMAX), wenn der Wert des Minimalwert-Detektors (PDMTN) unter dem unteren Schwellenwert (LO) liegt und der Wert des Maximalwert-Detektors (PDMAX) unter dem mittleren Schwellenwert (OPT) liegt, – Setzen des Anpassungswerts (Δ) auf die negative, jeweils kleinere Differenz zwischen dem unteren Schwellenwert (LO) und dem Wert des Minimalwert-Detektors (PDMIN) oder zwischen dem Wert des Maximalwert-Detektors (PDMAX) und dem mittleren Schwellenwert (OPT), wenn der Wert des Minimalwert-Detektors (PDMIN) über dem unteren Schwellenwert (LO) liegt und der Wert des Maximalwert-Detektors (PDMAX) über dem mittleren Schwellenwert (OPT) liegt, – Setzen des Anpassungswerts (Δ) auf die jeweils kleinere Differenz zwischen dem unteren Schwellenwert (LO) und dem Wert des Minimalwert-Detektors (PDMIN) oder zwischen dem oberen Schwellenwert (HI) und dem Wert des Maximalwert-Detektors (PDMAX), wenn der Wert des Minimalwert-Detektors (PDMIN) unter dem unteren Schwellenwert (LO) liegt und der Wert des Maximalwert-Detektors (PDMAX) über dem mittleren Schwellenwert (OPT) liegt.
  11. Verfahren nach Anspruch 10, gekennzeichnet durch den Schritt: – Setzen des Anpassungswerts (Δ) auf Null, wenn der Wert des Minimalwert-Detektors (PDMIN) unter dem unteren Schwellenwert (LO) liegt und der Wert des Maximalwert-Detektors (PDMAX) über dem mittleren Schwellenwert (OPT) liegt und wenn die jeweils kleinere Differenz zwischen dem unteren Schwellenwert (LO) und dem Wert des Minimalwert-Detektors (PDMIN) oder zwischen dem oberen Schwellenwert (HI) und dem Wert des Maximalwert-Detektors (PDMAX) kleiner als Null ist.
  12. Verfahren nach einem der Ansprüche 7 bis 11, dadurch gekennzeichnet, dass der Minimalwert-Detektor (PDMIN) mit einer ersten Zeitkonstante einen neuen Wert annimmt, wenn die erfasste Größe den momentanen Wert des Minimalwert-Detektors (PDMIN) unterschreitet, und dass der Wert des Minimalwert-Detektors (PDMIN) mit einer zweiten Zeitkonstante, welche größer ist als die erste Zeitkonstante, ansteigt, wenn die erfasste Größe den momentanen Wert des Minimalwert-Detektors (PDMIN) nicht unterschreitet.
  13. Verfahren nach einem der Ansprüche 7 bis 12, dadurch gekennzeichnet, dass der Maximalwert-Detektor (PDMAX) mit einer ersten Zeitkonstante einen neuen Wert annimmt, wenn die erfasste Größe den bisherigen Wert des Maximalwert-Detektors (PDMAX) überschreitet, und dass der Wert des Maximalwert-Detektors (PDMAX) mit einer zweiten Zeitkonstante, welche größer ist als die erste Zeitkonstante, abfällt, wenn die erfasste Größe den bisherigen Wert des Maximalwert-Detektors (PDMAX) nicht überschreitet.
  14. Verfahren nach Anspruch 12 oder 13, gekennzeichnet durch den Schritt: – sofortiges Übernehmen eines neuen Werts für den Minimalwert-Detektor (PDMIN) und/oder für den Maximalwert-Detektor (PDMAX), wenn die erfasste Größe den momentanen Wert des Minimalwert-Detektors (PDMIN) unterschreitet und/oder den momentanen Wert des Maximalwert-Detektors (PDMAX) überschreitet.
  15. Verfahren nach einem der Ansprüche 7 bis 14, gekennzeichnet durch den Schritt – Übernehmen eines neuen Werts für den Minimalwert-Detektor (PDMIN) und/oder für den Maximalwert-Detektor (PDMAX) in regelmäßigen Zeitabständen.
  16. Verfahren nach einem der Ansprüche 7 bis 14, gekennzeichnet durch den Schritt: – Übernehmen eines neuen Werts für den Minimalwert-Detektor (PDMIN) und/oder für den Maximalwert-Detektor (PDMAX) nur wenn ein neues Datenpaket (1) empfangen wurde.
  17. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Übertragungsstrecke (40) Teil eines Datennetzwerks ist und die Datenpakete (1) über das Datennetzwerk übermittelte Sprachdaten enthalten.
  18. Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen, umfassend: Speichermittel (10) zum Zwischenspeichern von über eine Übertragungsstrecke (40) empfangenen Datenpaketen (1), wobei die Vorrichtung derart ausgestaltet ist, dass die zwischengespeicherten Datenpakete (1) nach einer zusätzlichen Ausspielverzögerung (ΔT) in vorgegebenen Zeitintervallen aus dem Zwischenspeicher (10) ausgespielt werden, dadurch gekennzeichnet, dass die Vorrichtung dazu ausgestaltet ist, einen minimalen und einen maximalen Extremwert für eine Größe zu erfassen, welche ein Maß für die Verweildauer der Datenpakete (1) in dem Zwischenspeicher (10) darstellt, und die zusätzliche Ausspielverzögerung (ΔT) der Datenpakete (1) abhängig von dem erfassten minimalen und maximalen Extremwert einzustellen.
  19. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass die Vorrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 17 ausgestaltet ist.
  20. Computerprogrammprodukt mit einem Programmcode, welcher derart ausgestaltet ist, dass bei Verwendung in einem Compu tersystem (30) das Verfahren nach einem der Ansprüche 1 bis 17 ausgeführt wird.
DE102004039185A 2004-08-12 2004-08-12 Verfahren und Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen Expired - Fee Related DE102004039185B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102004063953A DE102004063953B4 (de) 2004-08-12 2004-08-12 Verfahren und Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen
US11/203,401 US7969901B2 (en) 2004-08-12 2005-08-12 Method and device for compensating for runtime fluctuations of data packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004063953A DE102004063953B4 (de) 2004-08-12 2004-08-12 Verfahren und Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen

Publications (2)

Publication Number Publication Date
DE102004039185A1 DE102004039185A1 (de) 2006-02-23
DE102004039185B4 true DE102004039185B4 (de) 2008-06-12

Family

ID=35721327

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004039185A Expired - Fee Related DE102004039185B4 (de) 2004-08-12 2004-08-12 Verfahren und Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen

Country Status (1)

Country Link
DE (1) DE102004039185B4 (de)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0577329A2 (de) * 1992-07-02 1994-01-05 AT&T Corp. Taktwiedergewinnung für Video mit variabler Bite-Rate in Asynchronübertragungsnetzwerken
US5640388A (en) * 1995-12-21 1997-06-17 Scientific-Atlanta, Inc. Method and apparatus for removing jitter and correcting timestamps in a packet stream
WO2001037468A2 (en) * 1999-11-19 2001-05-25 Adc Telecommunications, Inc. Adaptive clock recovery for circuit emulation service
US6259677B1 (en) * 1998-09-30 2001-07-10 Cisco Technology, Inc. Clock synchronization and dynamic jitter management for voice over IP and real-time data
US6301258B1 (en) * 1997-12-04 2001-10-09 At&T Corp. Low-latency buffering for packet telephony
US20030152094A1 (en) * 2002-02-13 2003-08-14 Colavito Leonard Raymond Adaptive threshold based jitter buffer management for packetized data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0577329A2 (de) * 1992-07-02 1994-01-05 AT&T Corp. Taktwiedergewinnung für Video mit variabler Bite-Rate in Asynchronübertragungsnetzwerken
US5640388A (en) * 1995-12-21 1997-06-17 Scientific-Atlanta, Inc. Method and apparatus for removing jitter and correcting timestamps in a packet stream
US6301258B1 (en) * 1997-12-04 2001-10-09 At&T Corp. Low-latency buffering for packet telephony
US6259677B1 (en) * 1998-09-30 2001-07-10 Cisco Technology, Inc. Clock synchronization and dynamic jitter management for voice over IP and real-time data
WO2001037468A2 (en) * 1999-11-19 2001-05-25 Adc Telecommunications, Inc. Adaptive clock recovery for circuit emulation service
US20030152094A1 (en) * 2002-02-13 2003-08-14 Colavito Leonard Raymond Adaptive threshold based jitter buffer management for packetized data

Also Published As

Publication number Publication date
DE102004039185A1 (de) 2006-02-23

Similar Documents

Publication Publication Date Title
DE69934092T2 (de) Dekoderpufferspeicher für einen empfänger von videodatenströmen und methode
DE60125473T2 (de) Paketwiederübertragung mit Prioritätinformationen
DE60308930T2 (de) Übertragungssystem für Videoinformation und Programm und Vorrichtung zur Übertragung von Videoinformation
EP1451980B1 (de) Verfahren zur uebertragung von daten von applikationen mit unterschiedlicher qualität
DE60038661T2 (de) Algorithmus zur Anpassung des Jitterspeichers
DE60020413T2 (de) Verfahren und Einrichtung zur Bestimmung eines Zeit-Parameters
DE102004039186B4 (de) Verfahren und Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen
DE60305793T2 (de) Verfahren, Sender und Empfänger zur Anpassung der Kodierrate an eine wechselnde Übertragungsrate
DE60216887T2 (de) Verfahren zur dynamischen Übertragung von Datenpaketen unter Verwendung von RTP und RTCP Protokollen
EP2254337A3 (de) System und Verfahren mit adaptiver Bandbreite für Videoübertragung
DE102005039192A1 (de) Verfahren zur Störungsanalyse eines Datenstroms, insbesondere eines Echtzeit-Datenstroms, in einem Datennetz, Kommunikationssystem und Überwachungsrechner
EP2057789B1 (de) Steuerung einer lastanpassung in einem funk-kommunikationssystem
DE102009008092A1 (de) Verfahren und Vorrichtung zum Kompensieren von Abtastratenschwankungen
EP1425885B1 (de) Verfahren und anordnung zur übermittlung von daten aus einem ersten datennetz in ein zweites datennetz
DE102004039185B4 (de) Verfahren und Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen
DE102004063953B4 (de) Verfahren und Vorrichtung zur Kompensation von Laufzeitschwankungen von Datenpaketen
EP1336282B1 (de) Vorrichtung und verfahren zur verkehrssteuerung von datenübertragungen in einem tcp/ip-datenübertragungsnetz
DE102016207785B4 (de) Verfahren und Vorrichtung zur Qualitätsbeurteilung eines Videostroms bei der Übertragung von Videotelefonie
DE102022108629A1 (de) Token bucket mit aktiver warteschlangenverwaltung
DE102010025730B4 (de) Verfahren und Vorrichtung zur Durchsatzmessung
DE10353793B4 (de) Verfahren zur Verbesserung der Wiedergabequalität bei paketorientierter Übertragung von Audio-/Video-Daten
DE10228861B4 (de) Verfahren zur Übertragung von zeitsynchronen Daten
DE102007019090B3 (de) Verfahren und Vorrichtung zum Regeln einer Datenrate
EP1372286A1 (de) Verfahren zur empfängerseitigen Rückgewinnung und/oder Nachregelung einer Abtastfrequenz zur Anpassung an die Abtastfrequenz eines empfangenen Signals
EP1466451A1 (de) Verfahren und system zur datenumsetzung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
AH Division in

Ref document number: 102004063953

Country of ref document: DE

Kind code of ref document: P

8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE

R081 Change of applicant/patentee

Owner name: LANTIQ DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 81669 MUENCHEN, DE

Effective date: 20110325

Owner name: LANTIQ BETEILIGUNGS-GMBH & CO. KG, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 81669 MUENCHEN, DE

Effective date: 20110325

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012560000

Ipc: H04L0012841000

R081 Change of applicant/patentee

Owner name: INTEL CORP., SANTA CLARA, US

Free format text: FORMER OWNER: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE

Owner name: LANTIQ BETEILIGUNGS-GMBH & CO. KG, DE

Free format text: FORMER OWNER: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R081 Change of applicant/patentee

Owner name: INTEL CORP., SANTA CLARA, US

Free format text: FORMER OWNER: LANTIQ BETEILIGUNGS-GMBH & CO. KG, 85579 NEUBIBERG, DE

R082 Change of representative
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012841000

Ipc: H04L0047280000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee