DE102015115896B4 - Adaptives Verwalten eines Medienpuffers - Google Patents

Adaptives Verwalten eines Medienpuffers Download PDF

Info

Publication number
DE102015115896B4
DE102015115896B4 DE102015115896.5A DE102015115896A DE102015115896B4 DE 102015115896 B4 DE102015115896 B4 DE 102015115896B4 DE 102015115896 A DE102015115896 A DE 102015115896A DE 102015115896 B4 DE102015115896 B4 DE 102015115896B4
Authority
DE
Germany
Prior art keywords
media
packets
buffer
segments
adaptive
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.)
Active
Application number
DE102015115896.5A
Other languages
English (en)
Other versions
DE102015115896A1 (de
Inventor
Ori Modai
Gal Eliraz-Levonai
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.)
Avaya Inc
Original Assignee
Avaya Inc
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 Avaya Inc filed Critical Avaya Inc
Publication of DE102015115896A1 publication Critical patent/DE102015115896A1/de
Application granted granted Critical
Publication of DE102015115896B4 publication Critical patent/DE102015115896B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • H04L43/0841Round trip packet loss
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

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

Abstract

Verfahren zum Verwalten eines adaptiven Medienpuffers, Folgendes umfassend:
Empfangen mehrerer Pakete, die einen Medienstream repräsentieren, in den adaptiven Medienpuffer, wobei der Medienstream eine Reihe von Mediensegmenten umfasst, die in mehreren Segmentebenen angeordnet sind;
Erfassen von Verlust eines oder mehrerer Pakete der mehreren Pakete, wobei das eine oder die mehreren Pakete ein Mediensegment der mehreren Mediensegmente repräsentieren;
Abschätzen eines Round Trip Delays für Pakete zwischen dem adaptiven Medienpuffer und einem Sender des Medienstreams;
Bestimmen einer aktuellen Tiefe der Mediensegmente innerhalb des adaptiven Medienpuffers; und
als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete, Verwerfen von einem oder mehreren Mediensegmenten innerhalb des adaptiven Medienpuffers auf der Grundlage des Round Trip Delays, der aktuellen Tiefe und einer Ebene der mehreren Segmentebenen, in der jedes des einen oder der mehreren Mediensegmente enthalten ist.

Description

  • STAND DER TECHNIK
  • Gestreamte Medien, Video, Audio, Animation oder Sonstiges sind mit steigender Netzverbindungsbandbreite und Qualität sehr beliebt geworden. Wenn eine bestimmte Auswahl von Medien auf einem Server gespeichert ist, so kann diese Auswahl auf Anforderung an ein oder mehrere anfordernde Geräte gestreamt werden. Darüber hinaus kann das Netz, um den Medienstream einschränkende Probleme zu berücksichtigen, den Medienstream schneller übertragen, als dieser im empfangenden Gerät präsentiert wird. Diese schnellere Übertragung erlaubt es dem empfangenden Gerät, die Medien in einem allgemein als Puffern bekannten Vorgang, lokal zum Präsentieren zu speichern. Falls ein Problem im Medienserver oder im Netz auftritt, das den Medienstream unterbricht oder verlangsamt, so sind die gepufferten Medien davon nicht betroffen, wodurch eine ungehinderte Präsentation der Medien ermöglicht wird und dem Server oder dem Netz zusätzliche Zeit zur Wiederherstellung bereitgestellt wird.
  • Während der obige Puffervorgang für Medien funktioniert, die auf einem Server vorliegen und im Voraus an ein Gerät gesendet werden, existiert dieser Luxus im Falle von Live- oder Echtzeitmedienstreams nicht. Insbesondere kann beim Streamen von Liveinhalten die durch das Speichern von Medien in einem Puffer verursachte Verzögerung das Erlebnis der Livepräsentation beeinträchtigen. Auf ähnliche Weise schädigt übermäßige Verzögerung bei der Präsentation von anderen Teilnehmern einer Kommunikation den Fluss der Kommunikationssitzung. Dementsprechend können Probleme, die beim Übertragen von Live- und Echtzeitkommunikationsstreams auftreten, nicht mit einem traditionellen Puffersystem abgeschwächt werden. Eine Methode zur Bestimmung des so genannten „Round Trip Delay“ ist aus der US 2012/0120813 A1 bekannt.
  • ÜBERBLICK
  • Hier offenbarte Ausführungsformen stellen Systeme, Verfahren und computerlesbare Medien bereit, die adaptives Verwalten eines Medienpuffers ausführen. In einer besonderen Ausführungsform stellt ein Verfahren Folgendes bereit: Empfangen von mehreren Paketen, die einen Medienstream repräsentieren, in den adaptiven Medienpuffer, wobei der Medienstream Folgendes umfasst: eine Reihe von Mediensegmenten, die in mehreren Segmentebenen angeordnet sind, und Erfassen von Verlust eines oder mehrerer Pakete der mehreren Pakete, wobei das eine oder die mehreren Pakete ein Mediensegment der mehreren Mediensegmente repräsentieren. Das Verfahren stellt ferner Folgendes bereit: das Abschätzen eines Round Trip Delays für Pakete zwischen dem adaptiven Medienpuffer und einem Sender des Medienstreams sowie das Bestimmen einer aktuellen Tiefe der Mediensegmente in dem adaptiven Medienpuffer. Als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete stellt das Verfahren Folgendes bereit: Verwerfen von einem oder mehreren Mediensegmenten innerhalb des adaptiven Medienpuffers auf der Grundlage des Round Trip Delays, der aktuellen Tiefe und einer Ebene der mehreren Segmentebenen, in der jedes des einen oder der mehreren Mediensegmente enthalten ist.
  • In manchen Ausführungsformen stellt das Verfahren ferner Folgendes bereit: darüber Bestimmen, ob das eine oder die mehreren Pakete als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete auf der Grundlage des Round Trip Delays und der aktuellen Tiefe erneut zu übertragen sind.
  • In manchen Ausführungsformen stellt das Verfahren nach dem Bestimmen, dass ein erneutes Übertragen anzufordern ist, Folgendes bereit: Anfordern des einen oder der mehreren Pakete vom Sender und Halten von Frames, die mit dem Mediensegment beginnen, bis das eine oder die mehreren Pakete vom Sender empfangen werden, und, nach dem Bestimmen, dass kein erneutes Übertragen anzufordern ist, Verwerfen des Mediensegments und anderer Mediensegmente, die sich auf das Mediensegment beziehen, aus dem adaptiven Medienpuffer.
  • In manchen Ausführungsformen stellt das Verfahren nach dem Empfangen des einen oder der mehreren Pakete von dem Sender Folgendes bereit: Übergeben des Mediensegments an einen Decoder und Übergeben verbleibender Mediensegmente an einen Decoder mit einer Rate, die die Präsentation des Medienstreams beschleunigt, bis die Pufferverzögerung auf einen Verzögerungsgrenzwert zurückkehrt.
  • In manchen Ausführungsformen enthalten die mehreren Segmentebenen eine Basisebene und mehrere verstärkte Ebenen, die sich jeweils entweder auf ein Mediensegment der Basisebene oder auf ein Mediensegment einer niedrigeren verstärkten der mehreren verstärkten Ebenen beziehen.
  • In manchen Ausführungsformen wird ein Mediensegment, das in einer höheren verstärkten Ebene enthalten ist, mit größerer Wahrscheinlichkeit verworfen als ein Mediensegment, das in einer niedrigeren verstärkten Ebene oder einer Basisebene enthalten ist.
  • In manchen Ausführungsformen basiert das Verwerfen eines oder mehrerer Mediensegmente ferner auf Inhaltsprioritätsindikatoren, die mit den Mediensegmenten verknüpft sind.
  • In manchen Ausführungsformen umfasst das Abschätzen des Round Trip Delays das Messen einer Tiefe der Mediensegmente innerhalb des Puffers während einer oder mehrerer Paketneuübertragungen und das Bestimmen des Round Trip Delays auf der Grundlage der Tiefe der Mediensegmente innerhalb des Puffers während der einen oder der mehreren Paketneuübertragungen.
  • Eine weitere Ausführungsform stellt ein nicht transientes computerlesbares Medium mit darauf gespeicherten Anweisungen bereit. Wenn sie durch ein Prozessorsystem ausgeführt werden, leiten die Anweisungen das Prozessorsystem an, ein Verfahren zum Verwalten eines adaptiven Medienpuffers auszuführen. Das Verfahren enthält Folgendes: Empfangen von mehreren Paketen, die einen Medienstream repräsentieren, in den adaptiven Medienpuffer, wobei der Medienstream eine Reihe von Mediensegmenten umfasst, die in mehreren Segmentebenen angeordnet sind, und Erfassen von Verlust eines oder mehrerer Pakete der mehreren Pakete, wobei das eine oder die mehreren Pakete ein Mediensegment der mehreren Mediensegmente repräsentieren. Das Verfahren enthält ferner Folgendes: das Abschätzen eines Round Trip Delays für Pakete zwischen dem adaptiven Medienpuffer und einem Sender des Medienstreams sowie das Bestimmen einer aktuellen Tiefe der Mediensegmente in dem adaptiven Medienpuffer. Als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete stellt das Verfahren Folgendes bereit: Verwerfen von einem oder mehreren Mediensegmenten innerhalb des adaptiven Medienpuffers auf der Grundlage des Round Trip Delays, der aktuellen Tiefe und einer Ebene der mehreren Segmentebenen in der jedes des einen oder der mehreren Mediensegmente enthalten ist.
  • Eine weitere Ausführungsform stellt ein adaptives Medienpufferverwaltungssystem bereit, das eine Kommunikationsschnittstelle, ein Verarbeitungssystem und ein Speichersystem umfasst. Die Kommunikationsschnittstelle ist konfiguriert zum Empfangen mehrerer Pakete, die einen Medienstream in den adaptiven Medienpuffer repräsentieren, wobei der Medienstream eine Reihe von Mediensegmenten umfasst, die in mehreren Segmentebenen angeordnet sind. Das Verarbeitungssystem ist für Folgendes konfiguriert: Erfassen des Verlusts eines oder mehrerer Pakete der mehreren Pakete, wobei das eine oder die mehreren Pakete ein Mediensegment der mehreren Mediensegmente repräsentieren; Abschätzen eines Round Trip Delays für Pakete zwischen dem adaptiven Medienpuffer und einem Sender des Medienstreams; Bestimmen einer aktuellen Tiefe der Mediensegmente innerhalb des adaptiven Medienpuffers und, als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete, Verwerfen von einem oder mehreren Mediensegmenten der Mediensegmente innerhalb des adaptiven Medienpuffers auf der Grundlage des Round Trip Delays, der aktuellen Tiefe und einer Ebene der mehreren Segmentebenen, in der jedes des einen oder der mehreren Mediensegmente enthalten ist. Das Speichersystem ist konfiguriert, um den adaptiven Medienpuffer zu speichern.
  • Figurenliste
  • Viele der Aspekte der Offenbarung werden unter Bezugnahme auf die folgenden Zeichnungen verständlicher. Obwohl zahlreiche Implementierungen in Verbindung mit diesen Zeichnungen beschrieben werden, ist die Offenbarung nicht auf die hier beschriebenen Implementierungen beschränkt. Im Gegensatz dazu ist das Ziel, alle Alternativen, Modifizierungen und Entsprechungen abzudecken.
    • 1 zeigt ein Betriebsszenario eines adaptiven Medienpuffers in einer Implementierung.
    • 2 zeigt ein Verfahren zum Verwalten eines adaptiven Medienpuffers in einer Implementierung.
    • 3 zeigt ein Netzwerk-Betriebsszenario in einer Implementierung.
    • 4 zeigt ein Sequenzdiagramm einer Implementierung.
    • 5 zeigt ein Verfahren in einer Implementierung.
    • 6 zeigt eine herkömmliche in Ebenen angeordnete Framereihe in einem Betriebsszenario.
    • 7 zeigt eine Rechnerarchitektur zum Implementieren eines adaptiven Medienpufferverwaltungssystems.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung und die damit assoziierten Figuren lehren die beste Ausführungsart der Erfindung. Zum Zweck des Lehrens der Erfindungsprinzipien werden einige herkömmliche Aspekte der besten Ausführungsart möglicherweise vereinfacht oder weggelassen. Die folgenden Ansprüche legen den Schutzbereich der Erfindung fest. Es ist zu beachten, dass einige Aspekte der besten Ausführungsart möglicherweise nicht in den Schutzbereich der Erfindung, wie von den Ansprüchen festgelegt, fallen. Mithin erkennen Fachleute Varianten der besten Ausführungsart, die in den Schutzbereich der Erfindung fallen. Fachleute erkennen, dass sich die unten beschriebenen Merkmale auf verschiedene Weisen kombinieren lassen, um mehrere Varianten der Erfindung zu bilden. Deswegen wird die Erfindung nicht auf die unten beschriebenen speziellen Beispiele, sondern nur durch die Ansprüche und ihre Äquivalente eingeschränkt.
  • Die verschiedenen hier offenbarten Ausführungsformen stellen adaptives Verwalten einen Medienpuffers zum Verbessern der Präsentation von Medieninhalten in Echtzeit (oder nahezu in Echtzeit) bereit. Bei solchen Echtzeitmedien existiert der Luxus des Speicherns von wenigstens ein paar Sekunden des Mediums in einem Speicherpuffer nahe dem präsentierenden System oder des Geräts nicht. Demnach können keine der Probleme, die im Netz, im bereitstellenden Mediensystem oder an anderer Stelle vorliegen, um einen Datenpaketverlust beim Streamen der Medien zu verursachen, durch einen solchen großen Puffer abgeschwächt werden. Insbesondere muss jeder Puffer, der zum Puffern von Echtzeitmedien einzusetzen ist, klein genug sein, sodass die Medien immer noch als Echtzeit angesehen werden, wenn sie aus dem Puffer weitergegeben werden und an einem empfangenden Gerät oder System präsentiert werden. Jede unerwartete Verzögerung, insbesondere bei Medien, die Echtzeitkommunikationen (z. B. eine Videokonferenz) übertragen, macht das Erlebnis eines Benutzers, dem die Medien präsentiert werden, zu einem frustrierenden. Dementsprechend ist ein herkömmlicher Puffer, der für Echtzeitmedienpräsentation eingesetzt wird, anfälliger für Probleme, die zu Paketverlust in einem Medienstream führen.
  • Um Paketverlust in einem Echtzeitmedienstream zu verringern, wägt der hier beschriebene adaptive Medienpuffer zum Bestimmen, wie Paketverlust zu handhaben ist, Netzbedingungen und Medieninhalte im Puffer selbst ab. Auf der Grundlage des Abwägens der Bedingungen und Inhalte bestimmt der adaptive Puffer darüber, ob eine Neuübertragung der verlorenen Pakete anzufordern ist, ob die durch die verlorenen Pakete repräsentierten Medien zu verwerfen sind oder ob Teile der Medien, die gegenwärtig im Puffer sind, zu verwerfen sind, um das Medienpräsentationserlebnis zu verbessern. Während das Verwerfen von Teilen der Medien die Präsentation des Medienstreams höchstwahrscheinlich beeinträchtigt, ermöglichen die Teile der Medien, die zum Verwerfen ausgewählt werden, üblicherweise weiterhin, dass die Präsentation des Medienstreams ohne weitere störende Nebenwirkungen, wie etwa stillstehendes Video während Pakete neuübertragen werden oder Artefakte aufgrund von Versuchen, Informationen in den fehlenden Paketen abzuschätzen, fortgeführt wird. Das Verwerfen von Teilen der Medien ermöglicht ein weiteres Verringern der Pufferverzögerung, da die präsentierten Medien schneller präsentiert werden, indem Segmente mit derselben Rate präsentiert werden, wenngleich weniger Segmente zum Präsentieren vorliegen. Demnach benötigt der hier beschriebene adaptive Medienpuffer abgesehen von neuübertragenen Paketen keine zusätzliche Bandbreite, wie es bei einem Medienstream der Fall wäre, der Fehlerkorrektur bei Weiterleitung (Forward Error Correction - FEC) enthält.
  • 1 zeigt ein repräsentatives Betriebsszenario 100 zum Verwalten eines adaptiven Medienpuffers. Betriebsszenario 100 enthält eine Medienquelle 101 und ein Empfängersystem 102. Medienquelle 101 kann ein Medienserver, ein Benutzersystem oder -gerät, ein Kommunikationsserver oder jegliche andere Form von System sein, die Medieninhalte streamen kann. Empfängersystem 102 enthält adaptiven Medienpuffer 111 und Mediendecoder 112. Empfängersystem 102 kann ein PC, ein Smartphone, ein Tabletcomputer, eine Set-Top-Box, oder ein beliebiges anderes Rechnergerät sein, das einen Medienstream empfangen und präsentieren kann. Adaptiver Medienpuffer 111 und Mediendecoder 112 können jeweils unter Einsatz von Software, Firmware oder einem anderen Typ von computerausführbaren Anweisungen, die auf Verarbeitungsschaltkreisen von Empfängersystem 102 ausgeführt werden, implementiert sein. Alternativ dazu können Medienpuffer 111 und/oder Mediendecoder 112 unter Einsatz von dedizierten Hardwareschaltkreisen implementiert werden. Auf gleiche Weise kann adaptiver Medienpuffer 111 den Systemspeicher von Empfängersystem 102 zum Puffern von Medien mitnutzen, oder kann stattdessen den dedizierten Speicher nutzen.
  • In Betriebsszenario 100 wird in Schritt 1 ein Medienstream von Medienquelle 101 übertragen. Datenpakete werden verwendet, um den Medienstream zu übertragen. Der Medienstream kann einfach in Datenpakete segmentiert sein, ein Medienstreamsegment kann durch mehr als ein Datenpaket repräsentiert sein oder ein Datenpaket kann durch mehr als ein Mediensegment repräsentiert sein. In einem besonderen Beispiel ist der Medienstream ein Videostream und die Segmente umfassen Frames des Videos, die in Daten, die in einem oder mehreren der Pakete enthalten sind, empfangen werden. Audio oder andere Medientypen können allerdings auch auf andere Weise segmentiert sein. Der Medienstream kann als Reaktion auf eine Anforderung auf den Medienstream übertragen werden oder kann als Teil einer Echtzeitkommunikation oder aus einem anderen Grund zum Übertragen eines Medienstreams von einer Quelle eingeleitet werden. Der Medienstream kann Video, Audio, Animation, Präsentation oder jegliche andere Form von Medien sein, die gestreamt werden können - einschließlich Kombinationen aus diesen. Nach dem Empfangen werden die Pakete in adaptivem Medienpuffer 111 gespeichert. Wie zuvor angedeutet kann die hier beschriebene Verwaltung von adaptivem Medienpuffer 111 von Verarbeitungsschaltkreisen innerhalb von Puffer 111 selbst oder durch andere Verarbeitungsressourcen von Empfängersystem 302 ausgeführt werden.
  • Die Menge von in dem Puffer gespeicherten Mediensegmenten sollte ausreichend klein sein, sodass die in Puffer 111 verbrachte Zeit vor dem Übertragen an Decoder 112 den Echtzeitaspekt des Medienstreams nicht beeinflusst. Da wahrscheinlich eine Verzögerung bereits wenigstens dadurch hinzugefügt wird, dass die Pakete ein Netz zwischen Medienquelle 101 und Empfängersystem 102 durchqueren, sollten die in einem adaptiven Medienpuffer gespeicherten Mediensegmente vorzugsweise einen kleinen Zeitraum repräsentieren, der vom Medientyp abhängig ist. Zum Beispiel können die Mediensegmente für einen Medientyp weniger als eine Sekunde Länge des Medienstreams repräsentieren, während Kommunikationsmediensegmente insbesondere vorzugsweise unter 250 Millisekunden des Medienstreams repräsentieren würden. In dieser Ausführungsform werden die Mediensegmente an Decoder 112 übertragen, der die Segmente decodiert, um den Medienstream auf Empfängersystem 102 zu präsentieren. In anderen Ausführungsformen können Mediensegmente von Puffer 111 an andere Module als Decoder 112 übertragen werden.
  • Darüber hinaus sind die Mediensegmente in Ebenen angeordnet. Wenn sie in Ebenen angeordnet sind, beziehen sich wenigstens manche der Mediensegmente auf andere Mediensegmente, sodass nur die Unterschiede zwischen Segmenten übertragen werden müssen. So beziehen sich zum Beispiel Segmente in höheren Ebenen auf Segmente in niedrigeren Ebenen, sodass erlaubt wird, dass jedes Segment in höherer Ebene Daten mit einschließt, die einen Unterschied zwischen diesem und dem Bezugssegment repräsentieren, anstelle der Gesamtdaten, die zum Repräsentieren des Segments erforderlich sind. Demnach verringert diese Ebenenkonfiguration den Datenfußabdruck des Medienstreams.
  • Während des Medienstreams in Schritt 2 gingen ein oder mehrere der Pakete im Medienstream bei der Übertragung von Medienquelle 101 verloren. Ein Paket kann als verloren angesehen werden, wenn es nie empfangen worden ist, mit Fehlern empfangen worden ist, unvollständig empfangen worden ist, oder aus einem anderen Grund, der das Paket unbrauchbar macht.
  • Eine aktuelle Tiefe der Mediensegmente innerhalb von adaptivem Medienpuffer 111 wird in Schritt 3 bestimmt und ein Round Trip Delay für Pakete zwischen Puffer 111 und Medienquelle 101 wird in Schritt 4 abgeschätzt. Während Schritt 3 und/oder 4 als Reaktion auf das Erfassen des Paketverlusts ausgeführt werden können, kann Schritt 3 und/oder 4 während der gesamten Länge des Medienstreams in Erwartung des Erfassens des Paketverlusts ausgeführt werden. Die aktuelle Tiefe der Mediensegmente deutet eine Anzahl von Mediensegmente an, die an Decoder 112 übertragen werden können, bevor die Mediensegmente erreicht werden, die wenigstens zum Teil durch die verlorenen Pakete repräsentiert werden. Auf der Grundlage der Anzahl von Mediensegmenten, die im Medienstream pro Sekunde präsentiert werden, kann diese Tiefe von Mediensegmenten in eine Zeitlänge bis zu dem Zeitpunkt konvertiert werden, an dem die präsentierten Mediensegmente, die durch die verlorenen Pakete repräsentiert werden, erreicht werden.
  • In manchen Beispielen kann der Round Trip Delay durch das Senden einer Testnachricht an, und das Messen des Zeitraums bis zum Empfangen einer Antwort von Quelle 101 gemessen werden. In anderen Beispielen kann der Round Trip Delay abgeschätzt werden, indem die Tiefe der Mediensegmente in Puffer 111 im Laufe der Zeit nachverfolgt wird. Insbesondere werden, wenn Paketverlust einmal erfasst worden ist, falls die Neuübertragung des Pakets/der Pakete angefordert worden ist, Mediensegmente 111 gehalten, während auf die Neuübertragung gewartet wird, was zu einem kurzen Stillstehen der Medien führt. Während des Haltens werden Mediensegmente weiterhin empfangen und in Puffer 111 abgelegt. Auf der Grundlage der zeitlichen Länge der Medien, die durch die Mediensegmente repräsentiert werden, welche nach dem Halten und vor dem Empfangen der neuübertragenen Pakete empfangen werden, wird der Round Trip Delay abgeschätzt (z. B. kann der Zeitraum mit dem Round Trip Delay gleichgesetzt werden).
  • Mediensegmente für den Medienstream werden in Schritt 5 auf Grundlage des Round Trip Delays, der Tiefe der Puffers und der Ebene, in der jedes der Mediensegmente enthalten ist, selektiv verworfen. Es werden also wenigstens diese drei Faktoren abgewägt, um die Segmente zu bestimmen, die zu verwerfen sind, um sicherzustellen, dass die Präsentation der Medien ohne Unterbrechung fortfahren kann. Diese verworfenen Mediensegmente können von den Mediensegmenten stammen, die sich gegenwärtig im Puffer befinden, oder aber können Mediensegmente sein, die nach dem Erfassen des Paketverlusts empfangen und in adaptivem Medienpuffer 111 abgelegt werden. Auf ähnliche Weise kann das eine oder können die mehreren durch die verlorenen Pakete repräsentierten Mediensegmente in den verworfenen Mediensegmenten enthalten sein.
  • Wenn zum Beispiel der Round Trip Delay geringer ist als die Tiefe des Puffers, dann werden möglicherweise keine Segmente verworfen, da die verlorenen Pakete angefordert und empfangen werden, bevor die vorangehenden Mediensegmente im Puffer aufgebraucht sind. Wenn aber der Round Trip Delay größer ist als die aktuelle Tiefe des Puffers, dann werden Mediensegmente je nach ihrer Ebene verworfen, bevor die verbleibenden Segmente in Schritt 6 an Decoder 112 übergeben werden. Darüber hinaus ist es für Segmente in höher gelegenen Ebenen, auf die durch weniger Segmente Bezug genommen wird, wahrscheinlicher, dass sie aus Puffer 111 verworfen werden, da der Verlust eines bestimmten Segments effektiv auch den Verlust von jedem Segment bewirkt, das sich auf dieses bezieht. Demnach wird die Qualität der Medienstreampräsentation weniger durch das Verwerfen von Segmenten in höheren Ebenen beeinträchtigt als durch das Verwerfen von Segmenten aus niedrigeren Ebenen.
  • In Fällen, in denen die Pakete nicht neuübertragen werden oder die neuübertragenen Pakete empfangen werden, bevor die verlorenen Mediensegmente an Decoder 112 zu übertragen sind, bedeutet das obige selektive Verwerfen von Mediensegmenten, dass die Präsentation des Streams nicht stillsteht, während er weiterhin verständlich ist. So können zum Beispiel die Mediensegmente Videoframes repräsentieren und die verworfenen Segmente verworfenen Viodeoframes entsprechen. Demnach kann das Verwerfen von Videoframes die Framerate eines Videostreams verringern, ermöglicht es aber, mit einer geringeren Verzögerung mit der Präsentation des Videostreams fortzufahren. In einem ähnlichen Beispiel können die Mediensegmente Segmente eines Audiostreams sein und während verworfene Segmente die Klangtreue des Audiostreams verringern, ist der Audiostream weiterhin verständlich, sofern sich die verworfenen Pakete auf niedrige Energie (z. B. Pakete mit geringerer Sprachaktivität) beziehen.
  • Wie oben angedeutet, werden, falls bestimmt wird, dass verlorene Pakete neuübertragen werden sollen und die neuübertragenen Pakete nicht empfangen werden, bevor ihr Mediensegment an Decoder 112 übergeben werden soll, Mediensegmente, angefangen bei dem durch das verlorene Paket repräsentierte Mediensegment, in Puffer 111 gehalten, bis die neuübertragenen Segmente empfangen werden. Dies führt dazu, dass sich bei der Neuübertragung Mediensegmente in Puffer 111 anhäufen, was die Pufferverzögerung erhöht und das Medienpräsentationserlebnis beeinträchtigen kann. Demnach werden in diesen Situationen Mediensegmente verworfen, um die Präsentation des Medienstreams zu beschleunigen, bis die Pufferverzögerung wieder auf einen annehmbaren Wert verringert worden ist, was durch eine vorgegebene Grenzwert-Puffertiefe angedeutet werden kann.
  • In einigen Ausführungsformen basiert das Bestimmen darüber, ob ein bestimmtes Mediensegment zu verwerfen ist, ferner auf einer Angabe der Wichtigkeit des Segmentinhalts innerhalb des Segments oder der Pakete, die Daten für dieses Segment enthalten. So kann zum Beispiel im Falle von Audiomedien ein Segment von Audiodaten (in der Regel einem Paket entsprechend, das Audiodaten enthält) Informationen zu einem durch das Segment repräsentierten Audioleistungspegel enthalten. Geringe Leistungspegel werden möglicherweise vor höheren Leistungspegeln (die aufgrund von einem oder mehreren Schwellenwerten differenziert werden können) verworfen, da es weniger wahrscheinlich ist, dass ein geringerer Audioleistungspegel Audioinformationen repräsentiert, die gehört werden sollen. Dementsprechend kann Sprachaktivitätserkennung (Voice Activity Detection - VAD) eingesetzt werden, um anzuzeigen, ob ein Segment relevante Audioinformationen enthält. Wenn also ein Segment andeutet, dass keine Sprachaktivität im Audiostream des Segments vorliegt, dann kann das Segment mit keiner oder nur geringer Auswirkung auf die Audiopräsentation verworfen werden.
  • In weiteren Ausführungsformen kann, auf der Grundlage der Tiefe des Puffers und des Round Trip Delays, der adaptive Medienpuffer sich vom Anfordern der Neuübertragung von verlorenen Segmenten dazu ändern, dass Segmente unter Einsatz von Fehlerkorrektur bei Weiterleitung von Quelle 101 angefordert werden. Darüber hinaus kann sich der adaptive Medienpuffer möglicherweise zurücksetzen, um die Medienpufferverzögerung zu verringern, und um erneut damit zu beginnen, den Stream zu puffern.
  • Es wird darauf hingewiesen, dass die obigen Vorgänge durchgehend wiederholt werden, während mehr und mehr verlorene Pakete durch das Empfängersystem 102 erfasst werden. Demnach werden der Round Trip Delay und die Puffertiefe durchgehend als Reaktion auf das Erkennen von verlorenen Paketen bestimmt. Dementsprechend kann Empfängersystem 102 ferner die Gesamtzahl der Segmente betrachten, die durch die verlorenen Pakete repräsentiert werden, wenn bestimmt wird, ob Segmente zu verwerfen sind. Falls zum Beispiel ausreichend viele Pakete verloren worden sind (z. B. über einem vorgegebenen Schwellenwert), können alle Segmente ab einem bestimmten Pegel verworfen werden, bis die Paketverlustrate abfällt (z. B. unter einen Schwellenwert sinkt).
  • Vorteilhafterweise verwirft Betriebsszenario 100 selektiv Medienpakete auf der Grundlage von sowohl Netzbedingungen (z. B. dem Round Trip Delay) und den Medien selbst (z. B. der Menge der Segmente in dem Puffer und der Frage, zu welchen Ebenen diese Segmente gehören). Demnach verringert dadurch, dass das Verwerfen von Mediensegmenten eine Verringerung der Qualität der Präsentation der Medien (z. B. ein Verringern der Videoframerate) verursachen kann, das Verwerfen von Mediensegmenten das Stillstehen der Präsentation und erfordert nicht die zusätzliche Bandbreite, welche die Fehlerkorrektur bei Weiterleitung benötigt.
  • 2 zeigt ein Verfahren 200 zum Verwalten von adaptivem Medienpuffer 111. Verfahren 200 enthält das Empfangen mehrerer Pakete, die einen Medienstream repräsentieren, in den adaptiven Medienpuffer (Schritt 201). Der Medienstream umfasst eine Reihe von Mediensegmenten, die in mehreren Segmentebenen angeordnet sind. Bei dem Medienstream kann es sich um jeden Typ von Medien handeln, einschließlich aber nicht ausschließlich Video und Audio, und bei den Mediensegmenten kann es sich um jede mögliche Weise handeln, in der die Medien für Streaming aufgeteilt werden können.
  • Während des Medienstreams stellt das Verfahren das Erfassen des Verlusts von einem oder mehreren Paketen der mehreren Pakete bereit (Schritt 202). Das eine oder die mehreren Pakete repräsentieren ein Mediensegment der mehreren Mediensegmente. Demnach ist das Mediensegment aufgrund des Verlusts des einen oder der mehreren Segmente nicht vollständig empfangen worden.
  • Das Verfahren stellt ferner das Abschätzen eines Round Trip Delays für Pakete zwischen dem adaptiven Medienpuffer 111 und einem Sender des Medienstreams, Quelle 101, bereit (Schritt 203). Darüber hinaus stellt das Verfahren das Bestimmen einer aktuellen Tiefe der Mediensegmente innerhalb des adaptiven Medienpuffers bereit (Schritt 204). Schritte 203 und 204 können als Reaktion auf das Erfassen des Paketverlusts durchgeführt werden oder können wiederholt im Laufe des Medienstreams durchgeführt werden, sodass der Round Trip Delay und die aktuelle Tiefe des Puffers 111 im Falle des Erfassens von Paketverlust bereits bekannt sind.
  • Als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete stellt das Verfahren Folgendes bereit: Verwerfen von einem oder mehreren Mediensegmenten innerhalb des adaptiven Medienpuffers auf der Grundlage des Round Trip Delays, der aktuellen Tiefe und einer Ebene der mehreren Segmentebenen in der jedes des einen oder der mehreren Mediensegmente enthalten ist (Schritt 205). Das Verfahren wägt demnach Folgendes ab: den erforderlichen Zeitraum zum Empfangen der neuübertragenen Pakete; den Zeitraum, der durch die Mediensegmente in Puffer 111 repräsentiert wäre, bevor die verlorenen Pakete erforderlich wären und die Ebenen, in denen die Mediensegmente enthalten sind, um zu bestimmen, welche Mediensegmente mit minimaler Störung für die Präsentation des Medienstreams aus dem Medienstream zu verwerfen sind.
  • 3 zeigt ein Multiclient-Betriebsszenario 300, in dem ein adaptiver Medienpuffer einen Echtzeit-Videostream puffert. Betriebsszenario 300 enthält Videoserver 301, Clientgerät 302 und Kommunikationsnetz 303. Bei Videoserver 301 kann es sich um einen Videokonferenzserver, einen Live-Videostreamserver, ein Peer-Clientgerät oder um ein anderes System handeln, das Videostreaming ausführen kann. Clientgerät 302 enthält adaptiven Medienpuffer 321, Videodecoder 322 und Anzeige 321. Clientgerät 302 kann ein Computer, ein Tabletcomputer, ein Smartphone, ein Spielsystem oder ein anderes Gerät sein, das gestreamtes Video empfangen und darstellen kann. Kommunikationsnetz 303 umfasst Netzelemente, wie etwa Switches, drahtlose Zugangsknoten, Internet-Router, Netzgateways, Anwendungsserver, Computersysteme, Kommunikationsverbindungen oder eine andere Form von Kommunikationsausrüstung - einschließlich Kombinationen aus diesen.
  • In Betriebsszenario 300 wird in Schritt 1 Echtzeitvideo von Videoserver 301 zu Clientgerät 301 gestreamt. Das Video wird als eine Reihe von Videoframes übertragen, wobei jeder Frame in wenigstens einem Paket übertragen wird. Darüber hinaus wird jeder Frame mit einem Videocodec codiert, welcher Frames verwendet, die sich auf wenigstens einen vorhergehenden Frame beziehen, um die Datenmenge zu optimieren, die zum Repräsentieren des Videos erforderlich ist. Auf der Grundlage dieser Eigenschaft ist das Video in Ebenen aufgeteilt, wobei durch Frames in einer höheren Ebene auf Frames in einer niedrigeren Ebene Bezug genommen wird. Auf die Frames in der höchsten Ebene wird nicht durch andere Frames Bezug genommen. Während die Frames empfangen werden, werden die Frames in adaptivem Medienpuffer 321 platziert. Da die Frames aufgrund verschiedener Bedingungen, die auf Wegen durch Kommunikationsnetz 303 vorliegen können, möglicherweise außerhalb der Reihenfolge empfangen werden, werden die Frames in Puffer 321 in die korrekte Reihenfolge platziert, bevor sie an Decoder 322 übergeben werden.
  • Während das Video gestreamt wird, wird in Schritt 2 ein Verlust von einem oder mehreren der Pakete, die die Daten enthalten, welche einen Frame repräsentieren, von Clientgerät 302 erfasst. Ein Paket kann als verloren angesehen werden, wenn es nie empfangen worden ist, mit Fehlern empfangen worden ist, unvollständig empfangen worden ist, oder aus einem anderen Grund, der das Paket unbrauchbar macht. Dementsprechend geht, da das Paket verloren gegangen ist, auch der Frame verloren, den die Daten repräsentieren, was die Präsentation des Videos durch das Clientgerät 302 beeinträchtigen könnte.
  • Um sicherzustellen, dass das Video mit möglichst wenigen Problemen präsentiert wird, bestimmt Clientgerät 302 allerdings, ob Frames zu verwerfen sind und ob die verlorenen Pakete in Schritt 3 neu zu übertragen sind. Bei diesen Frames kann es sich um Frames handeln, die bereits in Puffer 321 vorliegen, oder aber um Frames, die empfangen werden, nachdem die verlorenen Pakete erfasst worden sind. Dieses Bestimmen basiert auf der Anzahl von Frames in dem Puffer, auf dem Round Trip Delay, der auftreten wird, wenn ein Neuübertragen der verlorenen Pakete angefordert wird, sowie auf der Ebene, in die jeder verworfene Frame platziert wird. So werden zum Beispiel Frames, die sich auf den Frame beziehen, der durch die verlorenen Pakete repräsentiert wird, auf der Grundlage des Round Trip Delays verworfen, wenn die verlorenen Pakete nicht empfangen werden, bevor diese Frames präsentiert werden sollen. In einem anderen Beispiel kann der Frame einfach zusammen mit allen bezugnehmenden Frames verworfen werden, wenn der durch die verlorenen Pakete repräsentierte Frame eine ausreichend kleine Anzahl von anderen Frames aufweist (z. B. unter einem Grenzwert), die sich darauf beziehen.
  • Es wird darauf hingewiesen, dass der Begriff „verworfen“ hier bedeutet, dass der Frame nicht präsentiert wird. In manchen Fällen beziehen sich nachfolgende Frames, die präsentiert werden, auf einen nicht präsentierten Frame. Demnach wird der nicht präsentierte Frame für eine solche Bezugnahme wenigstens solange beibehalten, bis er nicht länger zur Bezugnahme erfordert wird.
  • Jegliche Frames, die nicht verworfen werden, werden in Schritt 4 an Decoder 322 übergeben. Decoder 322 nutzt den Videocodec, der verwendet wird, um den Videostream zu kodieren, um den Videostream aus den aus Puffer 321 empfangenen Frames zu decodieren. Sind die Frames einmal decodiert, stellt Schritt 5 die Frames auf Anzeige 323 an. Während der verworfene Videoframe/die verworfenen Videoframes die Framerate des präsentierten Videos verringern, wird das Video ohne Stillstand und ohne die Notwendigkeit der Fehlerverdeckung oder Wiederherstellung angezeigt. Demnach kann die Präsentation des Videostreams ununterbrochen fortfahren, wenn auch mit einer niedrigeren Qualität.
  • Es wird darauf hingewiesen, dass Paketverlust im Laufe des Videostreams mehrmals vorkommen kann. Demnach können Schritt 2 und 3 mehrmals ausgeführt werden, um sicherzustellen, dass der Videostream ohne Unterbrechung aufgrund von verlorenen Paketen präsentiert wird.
  • 4 zeigt ein Sequenzdiagramm von Betriebsszenario 400, in dem adaptiver Medienpuffer 321 einen Echtzeit-Videostream puffert. In Szenario 400 wird ein Echtzeit-Videostream eingeleitet und unter Einsatz von Paketen von Videoserver 301 über Kommunikationsnetz 303 an adaptiven Medienpuffer 321 gestreamt. Frames des Videostreams werden in Ebenen codiert, wobei sich Frames mit höheren Ebenen auf Frames mit niedrigeren Ebenen beziehen. Darüber hinaus enthält jeder Frame einen Zeitstempel, der die Reihenfolge andeutet, in welcher die Frames in dem Videostream auftreten. Adaptiver Medienpuffer 321 puffert Frames des Videos, bevor er sie an Decoder 322 übergibt, sodass Client 302 die Frames präsentieren kann. Während des Videostreams erfasst Client 302 wenigstens eines der Pakete, die die Daten für einen Frame des Videostreams enthalten. Nach dem Erfassen des Verlusts verwendet Client 302 Vorgang 500, um zu bestimmen, ob und welche Frames, zu verwerfen sind, um mit der Präsentation des Videostreams fortzufahren.
  • 5 zeigt in einem Ausführungsbeispiel Vorgang 500 zum Bestimmen, welche Frames zu verwerfen sind. Client 302 bestimmt die Tiefe des Puffers und schätzt den Round Trip Delay von Datenpaketen über Netz 303 ab (Schritt 501). Unter Einsatz der Puffertiefe und des Round Trip Delays kann Client 302 bestimmen, ob eine Neuübertragung der verlorenen Pakete anzufordern ist (Schritt 502). Insbesondere zeigt die Puffertiefe den Zeitraum an, bis der durch verlorene Pakete repräsentierte Frame an Decoder 322 übergeben wird. Aus diesem Grund können, falls dieser Zeitraum länger ist als der Round Trip Delay, die Pakete neuübertragen und von Client 302 empfangen werden, bevor der Frame an Decoder 322 übergeben werden muss. Falls ausreichende nachfolgende Frames sich auf den durch die verlorenen Pakete repräsentierten Frame beziehen, wird Client 302 selbst dann eine Neuübertragung dieser Pakete anfordern, wenn die Puffertiefe andeutet, dass der durch diese Pakete repräsentierte Frame vor dem Empfang der Neuübertragung angezeigt werden soll. Falls Schritt 502 bestimmt, dass die Pakete neuübertragen werden sollen, dann fordert das Clientgerät 302 wie in Betriebsszenario 400 gezeigt eine Neuübertragung der Pakete an.
  • Durch Fortfahren mit Vorgang 500 bestimmt Clientgerät 302 unabhängig davon, ob Paketneuübertragung angefordert wird, auf der Grundlage der Ebene, in der die verworfenen Frames enthalten sind und eines Zeitstempels der Frames, ob bestimmte Frames des Videostreams zu verwerfen sind (Schritt 503). Im Allgemeinen werden Frames aus höheren Ebenen vor Frames aus niedrigeren Ebenen verworfen und ältere Frames, wie durch den Zeitstempel angegeben, vor neueren Frames verworfen. Frames können verworfen werden, um das Stillstehen des Videos zu verhindern oder können verworfen werden, um Pufferverzögerung aufgrund von Frameanhäufung in Puffer 321 während des Stillstehens zu verringern.
  • Insbesondere werden, falls Schritt 502 bestimmt, dass verlorene Pakete neuübertragen werden sollen, um einen verlorenen Frame wiederherzustellen, der durch die verlorenen Pakete repräsentiert wird, auf den verlorenen Frame folgende Frames in Puffer 321 gehalten, während die Pakete neuübertragen werden. Dies führt zu einem kurzen Stillstand in der Wiedergabe des Videos und erzeugt eine größere Verzögerung in Puffer 321. Sind die verlorenen Pakete nach dem Anfordern der Neuübertragung einmal empfangen worden, kann der verlorene Frame an Decoder 322 übergeben werden. Darüber hinaus werden, um die Verzögerung zu verringern, die aufgebaut worden ist, während die Pakete gehalten werden, Frames in Schritt 503 verworfen, um die Videopräsentation wirksam zu beschleunigen, bis die Pufferverzögerung wieder auf einen angemessenen Wert gesunken ist (z. B. < 250 Millisekunden), indem Frames selbst dann mit der normalen Rate an Decoder 322 gesendet werden, wenn manche Frames verworfen worden sind.
  • Alternativ dazu bestimmt, falls Schritt 502 bestimmt, dass die verlorenen Pakete nicht neu zu übertragen sind, Schritt 503 den Frame/die Frames, der/die durch diese Pakete repräsentiert worden ist/sind sowie alle Frames, die sich auf den verlorenen Frame beziehen, zu verwerfen. Die übrigen Frames werden an Decoder 522 übergeben. Dies ermöglicht ein Fortfahren der Präsentation des Videos ohne Stillstand, wenngleich mit einer verringerten Framerate.
  • In manchen Ausführungsformen können Betriebsszenario 400 und Vorgang 500 selektiv eingesetzt werden, um Puffer 321 zu verwalten. Die zuvor erwähnten Neuübertragungsszenarien sind besonders dann angemessen, wenn ein andauerndes Paketverlustmuster andeutet, dass der Verlust in Schüben auftritt (d. h. weniger häufig ist), da die Stillstände aufgrund von Neuübertragung weniger häufig sind. Wenn der Paketverlust allerdings regelmäßiger ist, dann sind die Nebenauswirkungen von Neuübertragung weniger wünschenswert, da auch die Pufferverzögerung regelmäßig sein wird.
  • 6 zeigt eine beispielhafte in Ebenen angeordnete Framereihe 600. Die Frames aus Framereihe 600 sind in vier verschiedene Ebenen aufgeteilt, eine Basisebene und drei darauffolgende verstärkte Ebenen, die unter Einsatz der Legende 601 unterschieden werden können. Es wird darauf hingewiesen, dass Videoframes codiert werden können, um mehr oder weniger verstärkte Ebenen zu enthalten. Darüber hinaus können manche Videocodierungen Basisebenenframes enthalten, die sich nicht auf andere Frames beziehen.
  • Die Pfeile in Framereihe 600 weisen von einem Frame einer niedrigeren Ebene hin zu einem beliebigen Frame, der auf diesen Frame einer niedrigeren Ebene verweist. Dementsprechend sind die Basisebenenframes diejenigen Frames der niedrigsten Ebene, auf die durch die meisten anderen Frames entweder direkt oder indirekt verwiesen wird. So beziehen sich zum Beispiel vier Frames (Frames 1, 2, 4 und 8) direkt auf Basisebenenframe 0 und vier Frames (Frames 3, 5, 6 und 7) beziehen sich indirekt auf Basisebenenframe 0, was eine Gesamtzahl von 8 Frames ergibt. Verstärkte Ebene 1 liegt eine Ebene höher als die Basisebene und auf jedes Frame auf dieser Ebene beziehen sich zwei Frames direkt und ein Frame indirekt. Verstärkte Ebene 2 liegt eine Ebene höher als verstärkte Ebene 1 und auf jedes Frame in dieser Ebene bezieht sich nur jeweils ein Frame. Abschließend beziehen sich auf die Frames in verstärkter Ebene 3 keine anderen Frames.
  • Während eines Videostreams sollen Frames 0-16 in ansteigender numerischer Reihenfolge präsentiert werden. Falls Frames 0-16 in einem adaptiven Medienpuffer gehalten werden, werden die Frames demnach angefangen mit Frame 0 und durchgehend bis zu Frame 16 an einen Decoder übergeben. Selbstverständlich können auch über Frame 16 hinausgehende weitere Frames als Teil des Videostreams empfangen werden, sind aber hier nicht dargestellt.
  • Im Betrieb kann ein empfangendes Gerät beim Empfangen von Frames 0-16 und beim Platzieren derselben in einen adaptiven Medienpuffer vor Weitergabe an einen Decoder bestimmen, dass ein oder mehrere ein Frame repräsentierende Pakete verloren sind. Nach dem Ermitteln des Verlustes bestimmt das empfangende Gerät eine aktuelle Tiefe eines adaptiven Medienpuffers und schätzt einen Round Trip Delay, um eine Neuübertragung der verlorenen Pakete anzufordern. Diese Informationen werden dann verwendet, um zu bestimmen, ob eine Neuübertragung der Pakete anzufordern ist und ob irgendwelche der Frames zu verwerfen sind.
  • In einem Beispiel repräsentieren die verlorenen Pakete Frame 7 aus Framegruppe 600. Frame 7 liegt in verstärkter Ebene 3; somit beziehen sich keine Frames darauf. Falls der adaptive Medienpuffer gegenwärtig Frames 0-6 enthält und der Round Trip Delay es ermöglicht, dass die verlorenen Pakete empfangen werden, bevor Frame 7 an den Decoder übergeben werden soll, dann fordert das Gerät die Neuübertragung der verlorenen Pakete von Frame 7 an. Alternativ dazu wird Frame 7 aus dem adaptiven Medienpuffer verworfen, wenn Frame 7 an den Decoder übergeben werden soll, bevor neuübertragene Pakete empfangen werden können. Das Video wird demnach vom empfangenden Gerät ohne Frame 7 präsentiert. Das Verwerfen von Frame 7 kann dazu führen, dass ein Zuschauer einen kleinen Sprung im Video wahrnimmt, aber das Video steht nicht still.
  • In einem anderen Beispiel repräsentieren die verlorenen Pakete Frame 12 aus Framegruppe 600. Frame 12 liegt in verstärkter Ebene 1 und somit beziehen sich Frame 13 aus verstärkter Ebene 3 und Frame 14 aus verstärkter Ebene 2 direkt darauf. Darüber hinaus bezieht sich Frame 15 in verstärkter Ebene 3 auf Frame 14 und somit indirekt auch auf Frame 12. Wie auch bei den verlorenen Paketen von Frame 7 bestimmt das empfangende Gerät die aktuelle Tiefe des adaptiven Medienpuffers und den Round Trip Delay zum Anfordern von Paketneuübertragung zum Gebrauch beim Bestimmen, ob Pakete zu verwerfen sind. Da Frame 12 auf einer niedrigeren Ebene liegt als Frame 7, verursacht Frame 12, dass Frames 13-15 ebenfalls zu verwerfen sind, da alle diese Frames sich auf Frame 12 beziehen. Obwohl ein Zwischenraum von vier Frames beim Präsentieren des Videostreams zwar einen eher merklichen Sprung verursachen kann, bleibt das Video nicht stehen.
  • Darüber hinaus können in manchen Fällen Frames im adaptiven Medienpuffer gehalten werden, während Frame 12 neu übertragen wird. Dies erhöht effektiv die Verzögerung, die durch zusätzliche Pakete verursacht wird, welche sich im adaptiven Medienpuffer ansammeln. Ist aber Frame 12 nach dem Neuübertragen einmal empfangen worden, so müssen Frames, die sich auf Frame 12 beziehen, nicht verworfen werden. Dementsprechend kommt es aufgrund von Neuübertragung von Frames aus niedrigeren Ebenen häufiger zum Bestimmen, dass Frames im adaptiven Medienpuffer zu halten sind, da mehr Frames sich auf Frames aus niedrigeren Ebenen als auf Frames aus höheren Ebenen beziehen.
  • In den zwei obigen Beispielen werden die Frames auf Einzelbasis verworfen. Hier beschriebene Betriebsszenarien beziehen sich aber auch auf Situationen, in denen Pakete während eines Videostreams weiterhin verloren werden. Je mehr Pakete weiterhin verloren werden, desto mehr Frames werden verworfen. Wenn zum Beispiel die im adaptiven Medienpuffer aufgebaute Verzögerung (z. B. aufgrund von mehr Paketneuübertragungen) einen Schwellenwert übersteigt, können alle Frames von verstärkter Ebene 3 verworfen werden, bis die Pufferverzögerung sich wenigstens soweit verbessert, dass sie in einen Pufferverzögerungs-Schwellenwert fällt. Dies beschleunigt effektiv die Präsentation des Videos auf das Doppelte seiner normalen Rate, da die Hälfte der Frames nicht verwendet wird.
  • Falls sich der Zustand verschlechtert und noch mehr Verzögerung im adaptiven Medienpuffer angehäuft wird (z. B. über einen zweiten, höheren Verzögerungsschwellenwert), dann können selbst Pakete aus einer niedrigeren Ebene aus dem adaptiven Medienpuffer verworfen werden. So können zum Beispiel Frames aus verstärkter Ebene 2 zusätzlich zu Frames aus verstärkter Ebene 3 verworfen werden, was die Framerate im Grunde wieder verdoppelt.
  • 7 zeigt das adaptive Pufferverwaltungssystem 700. Das adaptive Pufferverwaltungssystem 700 ist ein Beispiel für Empfängersystem 102 und Clientgerät 302, wenngleich System 102 und Gerät 302 andere Konfigurationen verwenden können. Das adaptive Pufferverwaltungssystem 700 umfasst Kommunikationsschnittstelle 701, Benutzerschnittstelle 702 und Verarbeitungssystem 703. Das Verarbeitungssystem 703 ist mit Drahtloskommunikationsschnittstelle 701 und Benutzerschnittstelle 702 verbunden. Das Verarbeitungssystem 703 enthält eine Verarbeitungsschaltung 705 und ein Speichergerät 706, in dem eine Betriebssoftware 707 gespeichert ist. Das adaptive Pufferverwaltungssystem 700 kann noch andere wohl bekannte Komponenten wie eine Batterie und ein Gehäuse enthalten, die der Klarheit halber nicht gezeigt sind. Das adaptive Pufferverwaltungssystem 700 kann ein Telefon, ein Computer, ein E-Book, eine mobile Internet-Appliance, ein Medienwiedergabegerät, eine Spielkonsole, eine Drahtlosnetzschnittstellenkarte oder irgendeine andere Kommunikationsvorrichtung sein - einschließlich Kombinationen davon.
  • Die Kommunikationsschnittstelle 701 umfasst Komponenten, die über Kommunikationsverbindungen wie Netzkarten, Ports, HF-Transceiver, Verarbeitungsschaltungen und Software oder beliebige andere Kommunikationsgeräte kommunizieren. Die Kommunikationsschnittstelle 401 kann konfiguriert sein, um über metallische, drahtlose oder optische Verbindungen zu kommunizieren. Die Kommunikationsschnittstelle 701 kann konfiguriert sein, um TDM, IP, Ethernet, optische Netze, Drahtlosprotokolle, Nachrichtensignalisierung oder ein beliebiges anderes Kommunikationsformat zu nutzen - einschließlich Kombinationen davon.
  • Die Benutzerschnittstelle 702 umfasst Komponenten, die mit einem Benutzer interagieren, um Benutzereingaben zu empfangen und Medien und/oder Informationen zu präsentieren. Die Benutzerschnittstelle 702 enthält möglicherweise einen Lautsprecher, ein Mikrofon, Schaltflächen, Lichter, einen Anzeigebildschirm, einen Berührungsbildschirm, ein Berührungspad, ein Mausrad, einen Kommunikationsport oder irgendeine andere Vorrichtung für Benutzereingaben/ausgaben - einschließlich Kombinationen davon. Die Benutzerschnittstelle 702 ist in einigen Beispielen möglicherweise weggelassen.
  • Die Verarbeitungsschaltung 705 umfasst einen Mikroprozessor und andere Schaltungsbauteile, welche die Betriebssoftware 707 aus dem Speichergerät 706 abrufen und ausführen. Das Speichergerät 706 umfasst ein nicht transientes Speichermedium wie etwa ein Plattenlaufwerk, ein Flashlaufwerk, eine Datenspeicherschaltung oder irgendeine andere Speichervorrichtung. Die Verarbeitungsschaltung 705 ist typischerweise auf einer Leiterplatte montiert, die auch mit dem Speichergerät 706 und Teilen der Kommunikationsschnittstelle 701 und der Benutzerschnittstelle 702 bestückt sein kann. Die Betriebssoftware 707 umfasst Computerprogramme, Firmware oder beliebige andere Formen maschinenlesbarer Verarbeitungsanweisungen. Die Betriebssoftware 707 enthält Zustandsbestimmungsmodul 708 und Segmentverwurfsmodul 709. Die Betriebssoftware 707 kann ferner ein Betriebssystem, Dienstprogramme, Treiber, Netzschnittstellen, Anwendungen oder Software von beliebigen anderen Typen enthalten. Wenn die Betriebssoftware 707 durch die Verarbeitungsschaltung 705 ausgeführt wird, weist sie das Verarbeitungssystem 703 dazu an, das adaptive Pufferverwaltungssystem 700 wie hierin beschrieben zu betreiben.
  • Insbesondere weist die Betriebssoftware 707 das Verarbeitungssystem 703 an, mehrere Pakete, die einen Medienstream repräsentieren, in den adaptiven Medienpuffer zu empfangen, wobei der Medienstream eine Reihe von Mediensegmenten umfasst, die in mehreren Segmentebenen angeordnet sind. Das Zustandsbestimmungsmodul 708 weist das Verarbeitungssystem 703 an, den Verlust von einem oder mehreren Paketen der mehreren Pakete zu erfassen, wobei das eine oder die mehreren Pakete ein Mediensegment der mehreren Mediensegmente repräsentieren. Das Zustandsbestimmungsmodul 708 weist das Verarbeitungssystem 703 an, einen Round Trip Delay für Pakete zwischen dem adaptiven Medienpuffer und einem Sender des Medienstreams abzuschätzen und eine aktuelle Tiefe der Mediensegmente innerhalb des adaptiven Medienpuffers zu bestimmen. Als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete weist das Segmentverwurfsmodul 709 das Verarbeitungssystem 703 zu Folgendem an: Verwerfen von einem oder mehreren Mediensegmenten innerhalb des adaptiven Medienpuffers auf der Grundlage des Round Trip Delays, der aktuellen Tiefe und einer Ebene der mehreren Segmentebenen, in der jedes des einen oder der mehreren Mediensegmente enthalten ist.
  • Die obige Beschreibung und die assoziierten Figuren lehren die beste Ausführungsart der Erfindung. Die folgenden Ansprüche legen den Schutzbereich der Erfindung fest. Es ist zu beachten, dass einige Aspekte der besten Ausführungsart möglicherweise nicht in den Schutzbereich der Erfindung, wie von den Ansprüchen festgelegt, fallen. Fachleute erkennen, dass sich die oben beschriebenen Merkmale auf verschiedene Weisen kombinieren lassen, um mehrere Varianten der Erfindung zu bilden. Deswegen ist die Erfindung nicht auf die speziellen Ausführungsformen, die oben beschrieben werden, sondern nur durch die folgenden Ansprüche und ihre Äquivalente eingeschränkt.

Claims (10)

  1. Verfahren zum Verwalten eines adaptiven Medienpuffers, Folgendes umfassend: Empfangen mehrerer Pakete, die einen Medienstream repräsentieren, in den adaptiven Medienpuffer, wobei der Medienstream eine Reihe von Mediensegmenten umfasst, die in mehreren Segmentebenen angeordnet sind; Erfassen von Verlust eines oder mehrerer Pakete der mehreren Pakete, wobei das eine oder die mehreren Pakete ein Mediensegment der mehreren Mediensegmente repräsentieren; Abschätzen eines Round Trip Delays für Pakete zwischen dem adaptiven Medienpuffer und einem Sender des Medienstreams; Bestimmen einer aktuellen Tiefe der Mediensegmente innerhalb des adaptiven Medienpuffers; und als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete, Verwerfen von einem oder mehreren Mediensegmenten innerhalb des adaptiven Medienpuffers auf der Grundlage des Round Trip Delays, der aktuellen Tiefe und einer Ebene der mehreren Segmentebenen, in der jedes des einen oder der mehreren Mediensegmente enthalten ist.
  2. Verfahren nach Anspruch 1, ferner Folgendes umfassend: [0071] darüber Bestimmen, ob das eine oder die mehreren Pakete als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete auf der Grundlage des Round Trip Delays und der aktuellen Tiefe erneut zu übertragen sind.
  3. Verfahren nach Anspruch 2, ferner Folgendes umfassend: nach dem Bestimmen, dass ein erneutes Übertragen anzufordern ist, Anfordern des einen oder der mehreren Pakete vom Sender und Halten von Frames, die mit dem Mediensegment beginnen, bis das eine oder die mehreren Pakete vom Sender empfangen werden, und nach dem Bestimmen, kein erneutes Übertragen anzufordern, Verwerfen des Mediensegments und anderer Mediensegmente, die sich auf das Mediensegment beziehen, aus dem adaptiven Medienpuffer.
  4. Verfahren nach Anspruch 3, ferner Folgendes umfassend: nach dem Empfangen des einen oder der mehreren Pakete von dem Sender, Übergeben des Mediensegments an einen Decoder und Übergeben verbleibender Mediensegmente an einen Decoder mit einer Rate, die die Präsentation des Medienstreams beschleunigt, bis die Pufferverzögerung auf einen Verzögerungsgrenzwert zurückkehrt.
  5. Verfahren nach Anspruch 1, wobei die mehreren Segmentebenen eine Basisebene und mehrere verstärkte Ebenen enthalten, die sich jeweils entweder auf ein Mediensegment der Basisebene oder auf ein Mediensegment einer niedrigeren verstärkten der mehreren verstärkten Ebenen beziehen.
  6. Verfahren nach Anspruch 5, wobei ein Mediensegment, das in einer höheren verstärkten Ebene enthalten ist, mit größerer Wahrscheinlichkeit verworfen wird als ein Mediensegment, das in einer niedrigeren verstärkten Ebene oder einer Basisebene enthalten ist.
  7. Verfahren nach Anspruch 1, wobei das Verwerfen eines oder mehrerer Mediensegmente ferner auf Inhaltsprioritätsindikatoren basiert, die mit den Mediensegmenten verknüpft sind.
  8. Verfahren nach Anspruch 1, wobei das Abschätzen des Round Trip Delays Folgendes umfasst: Messen einer Tiefe der Mediensegmente innerhalb des Puffers während einer oder mehrerer Paketneuübertragungen; und Bestimmen des Round Trip Delays auf der Grundlage der Tiefe der Mediensegmente innerhalb des Puffers während der einen oder der mehreren Paketneuübertragungen.
  9. Adaptives Medienpufferverwaltungssystem, Folgendes umfassend: eine Kommunikationsschnittstelle, konfiguriert zum Empfangen mehrerer Pakete, die einen Medienstream repräsentieren, in den adaptiven Medienpuffer, wobei der Medienstream eine Reihe von Mediensegmenten umfasst, die in mehreren Segmentebenen angeordnet sind; ein Verarbeitungssystem, für Folgendes konfiguriert: Erfassen des Verlusts eines oder mehrerer Pakete der mehreren Pakete, wobei das eine oder die mehreren Pakete ein Mediensegment der mehreren Mediensegmente repräsentieren; Abschätzen eines Round Trip Delays für Pakete zwischen dem adaptiven Medienpuffer und einem Sender des Medienstreams; Bestimmen einer aktuellen Tiefe der Mediensegmente innerhalb des adaptiven Medienpuffers und, als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete, Verwerfen von einem oder mehreren Mediensegmenten der Mediensegmente innerhalb des adaptiven Medienpuffers auf der Grundlage des Round Trip Delays, der aktuellen Tiefe und einer Ebene der mehreren Segmentebenen, in der jedes des einen oder der mehreren Mediensegmente enthalten ist; und ein Speichersystem, konfiguriert, um den adaptiven Medienpuffer zu speichern.
  10. Adaptives Medienpufferverwaltungssystem nach Anspruch 9, ferner Folgendes umfassend: das Verarbeitungssystem, konfiguriert zum Bestimmen darüber, ob das eine oder die mehreren Pakete erneut zu übertragen sind, als Reaktion auf das Erfassen des Verlusts des einen oder der mehreren Pakete, auf der Grundlage des Round Trip Delays und der aktuellen Tiefe.
DE102015115896.5A 2014-09-22 2015-09-21 Adaptives Verwalten eines Medienpuffers Active DE102015115896B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/492,721 US9769043B2 (en) 2014-09-22 2014-09-22 Adaptive management of a media buffer
US14/492,721 2014-09-22

Publications (2)

Publication Number Publication Date
DE102015115896A1 DE102015115896A1 (de) 2016-03-24
DE102015115896B4 true DE102015115896B4 (de) 2021-07-29

Family

ID=55444939

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015115896.5A Active DE102015115896B4 (de) 2014-09-22 2015-09-21 Adaptives Verwalten eines Medienpuffers

Country Status (2)

Country Link
US (1) US9769043B2 (de)
DE (1) DE102015115896B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303626B2 (en) * 2015-03-31 2019-05-28 Cavium, Llc. Approach for chip-level flop insertion and verification based on logic interface definition
US10200424B2 (en) * 2016-09-28 2019-02-05 Gogo Llc Seamless delivery of real-time media stream with intermittent signal loss
US10686861B2 (en) * 2018-10-02 2020-06-16 Google Llc Live stream connector
EP4035288A1 (de) 2019-09-25 2022-08-03 Mixhalo Corp. Mapping von paketnutzdaten zur robusten übertragung von daten

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120120813A1 (en) 2009-06-12 2012-05-17 Telefonaktiebolaget L M Ericsson (Publ) Monitoring of Delay in Packet-Switched Networks

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7218610B2 (en) * 2001-09-27 2007-05-15 Eg Technology, Inc. Communication system and techniques for transmission from source to destination
US7483487B2 (en) * 2002-04-11 2009-01-27 Microsoft Corporation Streaming methods and systems
US20060187970A1 (en) * 2005-02-22 2006-08-24 Minkyu Lee Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification
US20070201365A1 (en) * 2006-01-23 2007-08-30 Frederick Skoog Video packet multiplexer with intelligent packet discard
US7609709B2 (en) * 2006-01-23 2009-10-27 Alcatel-Lucent Usa Inc. Video aware traffic management
US9380091B2 (en) * 2012-06-12 2016-06-28 Wi-Lan Labs, Inc. Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US9386058B2 (en) * 2012-02-27 2016-07-05 Qualcomm Incorporated DASH client and receiver with playback rate selection
US9462021B2 (en) * 2012-09-24 2016-10-04 Google Technology Holdings LLC Methods and devices for efficient adaptive bitrate streaming
US10075498B2 (en) * 2012-12-21 2018-09-11 Vmware, Inc. Systems and methods for transmitting data in real time

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120120813A1 (en) 2009-06-12 2012-05-17 Telefonaktiebolaget L M Ericsson (Publ) Monitoring of Delay in Packet-Switched Networks

Also Published As

Publication number Publication date
US9769043B2 (en) 2017-09-19
US20160087866A1 (en) 2016-03-24
DE102015115896A1 (de) 2016-03-24

Similar Documents

Publication Publication Date Title
DE102015115896B4 (de) Adaptives Verwalten eines Medienpuffers
DE102008003068B4 (de) Verfahren zum Senden von Datenpaketen von einem Server an einen Client, wobei der Client zeitgleich die empfangenen Daten mit einem konstanten Durchsatz D verwendet
DE602004007329T2 (de) Zuverlässiges Multimedia Streaming mit wiederholten Übertragungen
DE602004006981T2 (de) Datenabrufende und -übertragende vorrichtungen und verfahren
CN108809893B (zh) 一种视频质量评估方法和设备
US10135897B2 (en) Backfill of video stream
DE102010018376A1 (de) Dynamische Pufferung und Synchronisation verwandter Medienströme in Paketnetzwerken
DE102013209118A1 (de) Beibehaltung und Änderung von Netzwerküberlastungsbenachrichtigungen während der Übertragung von Netzwerkdaten zwischen einem physischen Netzwerk und einem virtuellen Netzwerk
US20150244650A1 (en) Efficient packet processing at video receiver in multimedia communications over packet networks
CN106416179A (zh) 实现扩展传输控制功能的传输加速器
DE112013007509B4 (de) Verfahren, Einrichtung und System zum Auswählen von Audio-Video-Daten zum Streamen
US20200099981A1 (en) Fault Detection Method, Monitoring Device, and Network Device
CN110113662B (zh) 一种适应多种网络状况的视频监控客户端系统
DE112019003229T5 (de) Videoverarbeitung in virtuellen Realitätsumgebungen
CN107864402A (zh) 直播视频播放方法及装置
EP2654309A1 (de) Verfahren und vorrichtung zur beurteilung einer videoqualität
CN104284135B (zh) 视频传输方法及设备
WO2017016568A1 (de) Verfahren und telekommunikationsnetz zum streamen und zur wiedergabe von anwendungen
CN108769735A (zh) 一种网络传输的数据压缩中优化Spice方法
DE112020003526T5 (de) Geringe latenz und geringer jitter bei docsis mittels mehrerer warteschlangen
CN110300278A (zh) 视频传输方法和设备
US20160316211A1 (en) Video Data Coding and Decoding Methods and Apparatuses
CN105898358A (zh) 视频数据的发送方法及装置
EP2938085B1 (de) Verfahren und vorrichtung zur übermittlung von kodierten mediendaten
CN105915967A (zh) 一种纠正视频延时的方法和系统

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final