DE102016008427A1 - Streaming von Videos über ein hybrides Netzwerk - Google Patents

Streaming von Videos über ein hybrides Netzwerk Download PDF

Info

Publication number
DE102016008427A1
DE102016008427A1 DE102016008427.8A DE102016008427A DE102016008427A1 DE 102016008427 A1 DE102016008427 A1 DE 102016008427A1 DE 102016008427 A DE102016008427 A DE 102016008427A DE 102016008427 A1 DE102016008427 A1 DE 102016008427A1
Authority
DE
Germany
Prior art keywords
video
frames
bit rate
video server
processor
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.)
Withdrawn
Application number
DE102016008427.8A
Other languages
English (en)
Inventor
Yong Li
Xuemin Chen
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Publication of DE102016008427A1 publication Critical patent/DE102016008427A1/de
Withdrawn legal-status Critical Current

Links

Images

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/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2665Gathering content from different sources, e.g. Internet and satellite
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Astronomy & Astrophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

In dem vorliegenden Dokument werden ein System und Verfahren zum Zustellen von Streaming-Video über ein hybrides Netzwerk vorgesehen. Als Reaktion auf eine Anforderung zum schnellen Vor- oder Zurückspulen wird eine angepasste Bitrate zum Übertragen von Video von einem Server an einen Client bestimmt. Frames aus einem Video werden selektiv übertragen, um der angepassten Bitrate auf der Grundlage einer Bitrate einer Verbindung zwischen dem Server und dem Client Rechnung zu tragen.

Description

  • Die in dem vorliegenden Dokument dargestellten Ausführungsbeispiele betreffen allgemein das Streaming von Videos über ein hybrides Netzwerk.
  • Client-basierte digitale Video-Zustellungssysteme, wie beispielsweise TiVoTM weisen typischerweise eine Festplatte auf, die ein direkt mit einem Fernsehnetz oder einem lokalen Netzwerk verbundenes Video speichert. Beim Streaming von Videos über ein lokales Netzwerk bestehen ein paar Einschränkungen hinsichtlich der Bandbreite. Jedoch planen die Kabelbetreiber die Bereitstellung von Client-basiertem digitalem Video über hybride Netzwerke. Die hybriden Netzwerke können das Internet und weitere Netzwerke, wie beispielsweise DOCSIS-Netzwerke (Data Over Cable Service Interface Specification), beinhalten. Das Video-Streaming mit hoher Qualität über ein hybrides Netzwerk erfordert eine hohe Bandbreite zur Übertragung, die möglicherweise nicht zur Verfügung steht. Wenn ein Nutzer außerdem „Trick-Modus”-Vorgänge (zum Beispiel schnelles Vor- und Zurückspulen der Video-Streaming-Daten) in Anspruch nimmt, erhöht sich die Bandbreitenanforderung für das Streaming des schnell vor- oder zurückgespulten Videos ganz erheblich. Wenn die erforderliche Bandbreite nicht verfügbar ist, bleibt das Video stehen oder seine Qualität sinkt.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einer Erscheinungsform umfasst ein Video-Server zum Bereitstellen von Video über ein hybrides Netzwerk Folgendes:
    einen Speicher; und
    einen mit dem Speicher gekoppelten Prozessor, wobei der Prozessor auf der Grundlage von in dem Speicher gespeicherten Anweisungen für Folgendes konfiguriert ist:
    Speichern einer Vielzahl von Kopien eines mit einer Vielzahl von Bitraten in dem Speicher codierten Videos;
    Übertragen einer ersten Kopie der Vielzahl von Kopien durch Streaming an eine Client-Vorrichtung über ein hybrides Netzwerk auf der Grundlage einer Bitrate der Verbindung zwischen dem Video-Server und dem Client, wobei die erste Kopie mit einer ersten Bitrate der Vielzahl von jeweiligen Bitraten codiert ist;
    Empfangen eines Signals von der Client-Vorrichtung, um die erste Kopie mit einer spezifischen Geschwindigkeit schnell vor- oder zurückzuspulen;
    Bestimmen einer zum schnellen Vor- und Zurückspulen des Videos erforderlichen, angepassten Bitrate auf der Grundlage der spezifischen Geschwindigkeit und der ersten Bitrate;
    Bestimmen, ob die angepasste Bitrate die Bitrate der Verbindung zwischen dem Video-Server und dem Client überschreitet; und
    schnelles Vor- und Zurückspulen des Videos mit der spezifischen Geschwindigkeit durch selektives Übertragen einer Vielzahl von Frames (Einzelbildern) von einer zweiten Kopie der Vielzahl von Kopien, die mit einer zweiten Bitrate der Vielzahl von jeweiligen Bitraten codiert ist, wenn die angepasste Bitrate die Bitrate der Verbindung überschreitet, wobei die zweite Bitrate geringer ist als die erste Bitrate.
  • Zweckmäßigerweise ist der Prozessor ferner so konfiguriert, dass er auf der Grundlage von in dem Speicher gespeicherten Anweisungen die Bitrate der Verbindung zwischen dem Video-Server und dem Client aus dem hybriden Netzwerk empfangen kann.
  • Zweckmäßigerweise beinhaltet das hybride Netzwerk ein DOCSIS-Netzwerk (Data Over Cable Service Interface Specification) und ein TCP/IP-Netzwerk (Transmission Control Protocol/Internet Protocol).
  • Zweckmäßigerweise beinhaltet die Vielzahl von Frames I-Frames, P-Frames oder B-Frames.
  • Zweckmäßigerweise ist der Prozessor ferner so konfiguriert, dass er auf der Grundlage von in dem Speicher gespeicherten Anweisungen die I-Frames oder die P-Frames auf der Grundlage von mit der zweiten Kopie verbundenen Metadaten aus der zweiten Kopie zur Übertragung auswählen kann.
  • Zweckmäßigerweise beinhalten die Metadaten den Typ, die Größe und die Position der Vielzahl von Frames.
  • Zweckmäßigerweise handelt es sich bei dem Typ des Frame um einen von einem I-Frame, einem P-Frame oder einem B-Frame.
  • Zweckmäßigerweise basiert die Position der Vielzahl von Frames auf einem Versatz von einem ersten Frame der zweiten Kopie.
  • Zweckmäßigerweise ist der Prozessor ferner so konfiguriert, dass er auf der Grundlage von in dem Speicher gespeicherten Anweisungen von der Vielzahl von Frames nur I-Frames überträgt, wenn die spezifische Geschwindigkeit einen ersten Schwellenwert überschreitet; eine Kombination von I-Frames und P-Frames überträgt, wenn die spezifische Geschwindigkeit den ersten Schwellenwert unterschreitet; und I-Frames, P-Frames und B-Frames überträgt, wenn die spezifische Geschwindigkeit einen zweiten Schwellenwert unterschreitet.
  • Zweckmäßigerweise ist der Prozessor ferner so konfiguriert, dass er auf der Grundlage von in dem Speicher gespeicherten Anweisungen an dem Ende des schnellen Vor- oder Zurückspulens die erste Kopie mit der ersten Bitrate überträgt.
  • Gemäß einer Erscheinungsform umfasst ein QoS-Manager, (Quality of Service, Dienstgüte) zum Vorsehen von adaptiver QoS für einen Videostrom Folgendes:
    einen Speicher; und
    einen mit dem Speicher gekoppelten Prozessor, wobei der Prozessor auf der Grundlage von in dem Speicher gespeicherten Anweisungen für Folgendes konfiguriert ist:
    Empfangen eines ersten Satzes von QoS-Parametern von einem Video-Server als Reaktion auf eine Client-Vorrichtung, die ein schnelles Vor- oder Zurückspulen eines Videostroms angefordert hat, der von dem Video-Server mit einer ersten Bitrate über ein hybrides Netzwerk an eine mit der Client-Vorrichtung verbundene Set-Top-Box zugestellt wurde;
    Generieren eines zweiten Satzes von QoS-Parametern als Reaktion auf den ersten Satz von QoS-Parametern; und
    Übertragen des zweiten Satzes von QoS-Parametern an ein CMTS (Cable Modem Termination System), wobei der zweite Satz von QoS-Parametern das CMTS veranlasst, der Set-Top-Box eine Verbindung bereitzustellen, die eine zweite Bitrate aufweist, die gleich der ersten Bitrate oder höher als diese ist.
  • Zweckmäßigerweise weist der erste Satz von QoS-Parametern Folgendes auf:
    eine mittlere Bitrate, eine Spitzen-Bitrate, eine minimale Bitrate oder eine maximale Bildinstabilität eines schnell vor- oder zurückgespulten Videostroms.
  • Zweckmäßigerweise weist der zweite Satz von QoS-Parametern Folgendes auf:
    eine MRR (Minimum Reserved Rate, minimale reservierte Rate), eine MSR (Maximum Sustained Rate, maximale Dauerrate), eine MBS (Maximum Burst Size, maximale Zellenanzahl) oder eine PE (Peak Rate, Spitzenrate) eines schnell vor- oder zurückgespulten Videostroms.
  • Zweckmäßigerweise handelt es sich bei dem QoS-Manager um einen PCMM-Server (Packet Cable Multimedia).
  • Zweckmäßigerweise ist der Prozessor ferner so konfiguriert, dass er auf der Grundlage der in dem Speicher gespeicherten Anweisungen Folgendes aufweist:
    einen Anwendungsmanager, der so konfiguriert ist, dass er auf der Grundlage des ersten Satzes von Parametern Anwendungssitzungsdaten generiert; und
    einen mit dem Anwendungsmanager gekoppelten und zum Generieren des zweiten Satzes von QoS-Parametern auf der Grundlage der Anwendungssitzungsdaten konfigurierten Richtlinienmanager,
    wobei die Anwendungssitzungsdaten einen von dem Videostrom verwendeten Codec, eine Prioritätsstufe des Videostroms, eine mittlere Bitrate, eine maximale Zellenanzahl, eine maximale Bitrate und TSpec-Parameter eines schnell vor- oder zurückgespulten Videostroms beinhalten.
  • Zweckmäßigerweise beinhaltet das hybride Netzwerk ein DOCSIS-Netzwerk (Data Over Cable Service Interface Specification) und ein TCP/IP-Netzwerk (Transmission Control Protocol/Internet Protocol).
  • Zweckmäßigerweise ist der Prozessor ferner so konfiguriert, dass er als Reaktion auf ein Ende des schnellen Vor- oder Zurückspulens des Videostroms auf der Grundlage von in dem Speicher gespeicherten Anweisungen einen dritten Satz von QoS-Parametern überträgt, wobei der dritte Satz von QoS-Parametern das CMTS veranlasst, der Set-Top-Box die erste Bitrate bereitzustellen.
  • Gemäß einer Erscheinungsform umfasst ein Video-Server Folgendes:
    einen Speicher; und
    einen mit dem Speicher gekoppelten Prozessor, wobei der Prozessor auf der Grundlage von in dem Speicher gespeicherten Anweisungen für Folgendes konfiguriert ist:
    Empfangen eines Signals von einer Client-Vorrichtung, die ein schnelles Vor- oder Zurückspulen eines Videostroms, der von dem Video-Server mit einer ersten Bitrate über ein hybrides Netzwerk an eine mit der Client-Vorrichtung verbundene Set-Top-Box zugestellt wurde, anfordert; und
    Übertragen eines Satzes von QoS-Parametern (Quality of Service, Dienstgüte) an einen QoS-Manager, um den QoS-Manager zu veranlassen, bei einem CMTS (Cable Modem Termination System) anzufordern, dass der Set-Top-Box eine zweite Bitrate bereitgestellt wird, die sich von der ersten Bitrate unterscheidet.
  • Zweckmäßigerweise weist der Satz von QoS-Parametern eine mittlere Bitrate, eine Spitzen-Bitrate, eine minimale Bitrate oder eine maximale Bildinstabilität eines schnell vor- oder zurückgespulten Videostroms auf.
  • Zweckmäßigerweise ist die zweite Bitrate höher als die erste Bitrate.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN/FIGUREN
  • Die beigefügten Zeichnungen, die in das vorliegende Dokument aufgenommen wurden und einen Bestandteil der Anmeldung bilden, veranschaulichen die Ausführungsbeispiele der vorliegenden Offenbarung und dienen ferner zusammen mit der Beschreibung dazu, die Prinzipien der Ausführungsbeispiele zu erläutern und es Fachleuten auf dem betreffenden Gebiet zu ermöglichen, die Ausführungsbeispiele auszuführen und zu verwenden.
  • 1 veranschaulicht ein beispielhaftes Video-Zustellungssystem.
  • 2 veranschaulicht ein Beispiel für einen Videostrom, der von einem Video-Server an eine Client-Vorrichtung übertragen werden kann.
  • 3 veranschaulicht mittlere Bitraten beim schnellen Vorspulen von digitalem Video.
  • 4. veranschaulicht ein beispielhaftes System zum Bereitstellen von Video während eines Trick-Modus-Betriebs.
  • 5 veranschaulicht ein beispielhaftes Ablaufdiagramm, das Schritte zum Vorsehen von QoS-Kontrolle (Quality of Service, Dienstgüte) für das Streaming von Videos gemäß einem Ausführungsbeispiel der Offenbarung veranschaulicht.
  • 6 veranschaulicht ein beispielhaftes System zum Bereitstellen von erhöhter Bandbreite beim schnellen Vor- oder Zurückspulen von Video.
  • 7 veranschaulicht ein beispielhaftes Ablaufdiagramm, das Schritte zum Vorsehen von QoS-Kontrolle zum Streaming von Video gemäß einem Ausführungsbeispiel der Offenbarung veranschaulicht.
  • 8 veranschaulicht einen Strom von Paketen mit Markierungen gemäß einem Ausführungsbeispiel, die durch einen Video-Server an eine Client-Vorrichtung übertragen werden.
  • 9 veranschaulicht ein beispielhaftes System zum Klassifizieren, Einreihen, Verwerfen und Planen von Paketen gemäß einem Ausführungsbeispiel der Offenbarung.
  • 10 veranschaulicht eine Wahrscheinlichkeit des Verwerfens von Paketen nach WRED (Weighted Random Early Detection, gewichtete zufällige Früherkennung) gemäß einem Ausführungsbeispiel der Offenbarung.
  • 11 veranschaulicht ein beispielhaftes Ablaufdiagramm, das Schritte für ein differenzielles Einreihen und für eine QoS-Kontrolle zum Streaming von Videopaketen gemäß einem Ausführungsbeispiel der Offenbarung veranschaulicht.
  • 12 veranschaulicht einen Strom von Paketen mit Markierungen gemäß einem Ausführungsbeispiel der Offenbarung, die durch einen Video-Server an eine Client-Vorrichtung übertragen werden.
  • 13 veranschaulicht ein beispielhaftes System zum Klassifizieren, Einreihen, Verwerfen und Planen von Paketen gemäß einem Ausführungsbeispiel der Offenbarung.
  • 14 veranschaulicht ein beispielhaftes Ablaufdiagramm, das Schritte für ein differenzielles Einreihen und für eine QoS-Kontrolle zum Streaming von Videopaketen gemäß einem Ausführungsbeispiel der Offenbarung veranschaulicht.
  • 15 veranschaulicht ein beispielhaftes Computersystem, in dem in dem vorliegenden Dokument dargestellte Ausführungsbeispiele implementiert sein können.
  • Die Ausführungsbeispiele der vorliegenden Offenbarung werden unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Die Zeichnung, in der ein Element jeweils zum ersten Mal vorkommt, ist in der Regel in dem entsprechenden Bezugszeichen durch die ganz links befindliche(n) Ziffer(n) angegeben.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt, um ein tiefes Verständnis der Ausführungsbeispiele der vorliegenden Offenbarung vorzusehen. Für Fachleute auf diesem Gebiet ist es jedoch offensichtlich, dass die Ausführungsbeispiele einschließlich Strukturen, Systemen und Verfahren ohne diese spezifischen Einzelheiten ausgeführt werden können. Die Beschreibung und Darstellung in dem vorliegenden Dokument sind die gemeinsamen Mittel, die von den erfahrenen oder kompetenten Fachleuten auf diesem Gebiet verwendet werden, um das Wesentliche ihrer Arbeit anderen Fachleuten möglichst effektiv zu vermitteln. In anderen Fällen wurden allgemein bekannte Verfahren, Vorgehensweisen, Komponenten und Schaltungsanordnungen nicht ausführlich beschrieben, um die Erscheinungsformen der Erfindung nicht unnötigerweise unübersichtlich zu machen.
  • Hybride Netzwerke, wie sie in dem vorliegenden Dokument beschrieben werden, können Netzwerke beinhalten, die eines oder mehrere Kommunikationsprotokolle implementieren. In dem vorliegenden Dokument beschriebene hybride Netzwerke können Protokolle für eine drahtgebundene oder drahtlose Kommunikation, einschließlich zum Beispiel TCP (Transmission Control Protocol), IP (Internet Protocol), DOCSIS (Data Over Cable Service Interface Specification) und WLANs (Wireless Local Area Networks, drahtlose lokale Netzwerke) nutzen, wie sie von dem IEEE (Institute of Electrical and Electronics Engineers) in der Spezifikation IEEE 802.11, die per Bezugnahme in ihrer Gesamtheit in die vorliegende Anmeldung aufgenommen ist, standardisiert wurden. Bei dem Internet, auf das in dem vorliegenden Dokument Bezug genommen wird, handelt es sich um ein Netzwerk, das TCP/IP verwendet. Beispielhafte Ausführungsbeispiele sind nicht auf Netzwerke für drahtlose Kommunikation in Übereinstimmung mit der Spezifikation 802.11 beschränkt und können in einer oder mehreren anderen Arten von Netzwerken mit Zugriff über drahtlose Kommunikation verwendet oder implementiert werden, einschließlich (aber nicht beschränkt auf) Bluetooth (IEEE 802.15.1 und Bluetooth Special Interest Group), Nahfeldkommunikation (Near-Field Communication, NFC) (ISO/IEC 18092), ZigBee (IEEE 802.15.4), Hochfrequenzidentifikation (Radio-Frequency Identification (RFID), und/oder Infrarotkommunikation, um einige Beispiele zu nennen. Diese verschiedenen Standards und/oder Protokolle sind jeweils in ihrer Gesamtheit per Bezugnahme in die Anmeldung aufgenommen.
  • Ferner sind beispielhafte Ausführungsbeispiele nicht auf die oben genannten Netzwerke für drahtlose Kommunikation beschränkt, und sie können in einem oder mehreren Netzwerken für drahtlose Kommunikation in Übereinstimmung mit einem oder mehreren 3GPP-Protokollen für drahtlose Kommunikation (3rd Generation Partnership Project) und/oder einem oder mehreren Nicht-3GPP-Protokollen für drahtlose Kommunikation verwendet oder implementiert werden. Zum Beispiel können die beispielhaften Ausführungsbeispiele so konfiguriert werden, dass sie einen oder mehrere Standards für die Mobilfunkkommunikation nutzen, einschließlich (aber nicht beschränkt auf) LTE (Long-Term Evolution), HSPA+ (Evolved High-Speed Packet Access), W-CDMA (Wideband Code Division Multiple Access), CDMA2000, TD-SCDMA (Time Division-Synchronous Code Division Multiple Access), GSM (Global System for Mobile Communications), GPRS (General Packet Radio Service), EDGE (Enhanced Data Rates for GSM Evolution) und WiMAX (Worldwide Interoperability for Microwave Access) (IEEE 802.16), um einige Beispiele zu nennen.
  • Zu dem Zweck dieser Erörterung ist der Begriff „Prozessor-Schaltungsanordnung” so zu verstehen, dass er gleich einem oder mehrerer der folgenden Elemente ist: Schaltung(en), Prozessor(en) oder eine Kombination aus diesen. Zum Beispiel kann eine Schaltung eine analoge Schaltung, eine digitale Schaltung, Zustandsautomatenlogik, andere strukturelle Elektronik-Hardware oder eine Kombination aus diesen beinhalten. Ein Prozessor kann einen Mikroprozessor, eine Digitalsignalverarbeitungseinheit (DSP) oder einen anderen Hardwareprozessor beinhalten. Der Prozessor kann gemäß in dem vorliegenden Dokument beschriebenen Ausführungsbeispielen mit Anweisungen zum Durchführen von entsprechenden Funktionen „fest codiert” sein. Alternativ kann der Prozessor auf einen internen und/oder externen Speicher zugreifen, um in dem Speicher gespeicherte Anweisungen abzurufen, die, wenn sie von dem Prozessor ausgeführt werden, die entsprechende(n), mit dem Prozessor verbundene(n) Funktion(en) durchführen.
  • Systemübersicht
  • 1 veranschaulicht ein beispielhaftes Video-Zustellungssystem 100. Das System 100 weist einen über ein hybrides Netzwerk 104 mit einer Client-Vorrichtung gekoppelten Video-Server 102 auf. Das hybride Netzwerk 104 weist einen mit dem Internet 110 gekoppelten Ethernet-Switch 108 auf. Das Internet 110 ist mit einem DOCSIS-Netzwerk 112 (Data Over Cable Service Interface Specification) gekoppelt. Das Internet weist einen ausgangsseitigen Edge-Router 114 und einen zielseitigen Edge-Router 116 auf. Das DOCSIS-Netzwerk 112 weist ein mit einem kombinierten Kabelmodem 122 gekoppeltes CMTS (Cable Modem Termination System) 118 auf. Bei dem Kabelmodem kann es sich um einen Teil eines Gateways oder einer Set-Top-Box 120 (in dem vorliegenden Dokument auch nur als Set-Top-Box 120 bezeichnet) handeln. Die Set-Top-Box 120 kann einen drahtgebundenen oder drahtlosen Router (nicht gezeigt) zum Kommunizieren mit der Client-Vorrichtung 106 aufweisen. Das Video kann als Videostrom oder als digitaler Videostrom bezeichnet werden. Der Video-Server 102 stellt der Client-Vorrichtung 106 über das hybride Netzwerk 104 einen Videostrom zu. Das hybride Netzwerk 104 kann neben dem Internet 110 und dem DOCSIS-Netzwerk 112 weitere Netzwerke beinhalten. Bei einem Ausführungsbeispiel fordert die Client-Vorrichtung 106 über das hybride Netzwerk 104 einen Videostrom von dem Video-Server 102 an.
  • 2 veranschaulicht ein Beispiel für einen Videostrom 200, der von dem Video-Server 102 an die Client-Vorrichtung 106 übertragen werden kann. Der Videostrom 200 setzt sich aus einer Reihe von GOPs (Group of Picture, Bildergruppe) 202 zusammen. Jede GOP 202 setzt sich wiederum aus einer Reihe von I-Frames 204 (Intra-coded, intra-codiert), B-Frames (Bi-Directionally Predictive, bidirektional prädiktiv codiert) 206 und P-Frames (Predictive, prädiktiv codiert) 208 zusammen.
  • Durchschnittlich sind I-Frames viel größer als P-Frames, und P-Frames sind viel größer als B-Frames. 2 veranschaulicht, dass I-Frames annähernd zweimal so groß sind wie P-Frames und dass P-Frames annähernd zweimal so groß sind wie B-Frames. Bei der neuesten Generation von HEVC-Video-Codecs (High Efficiency Video Coding) und 4k-Videoinhalten ist das Verhältnis zwischen I- und P-Frames sowie zwischen P- und B-Frames jeweils etwa 3.
  • I-Frames werden ohne Bezugnahme auf andere Bilder codiert. Eine gemäßigte Kompression wird durch Verringern der räumlichen Redundanz, aber nicht der zeitlichen Redundanz, erreicht. Sie können periodisch verwendet werden, um in dem Bitstrom Zugangspunkte vorzusehen, an denen die Decodierung beginnen kann. Bei einem I-Frame handelt es sich tatsächlich um ein vollständiges Bild wie bei einer herkömmlichen, statischen Bilddatei. P-Frames und B-Frames speichern nur einen Teil eines Bildes, daher benötigen sie weniger Platz zum Speichern als ein I-Frame und verbessern so die Videokompressionsraten. Ein P-Frame enthält nur die Änderungen in dem Bild gegenüber dem vorherigen Bild. Zum Beispiel können in einer Szene, in der sich ein Auto vor einem stationären Hintergrund bewegt, nur die Bewegungen des Autos in einen P-Frame codiert werden. Ein Codierer braucht die sich nicht verändernden Hintergrundpixel nicht in dem P-Frame zu speichern und spart dadurch Platz. P-Frames sind auch als Delta-Frames bekannt. P-Frames können die vorherigen I- oder P-Frames zum Bewegungsausgleich verwenden. Jeder Block in einem P-Frame kann entweder prädiktiv codiert oder intra-codiert sein. Durch Verringern der räumlichen und zeitlichen Redundanz bieten P-Frames verglichen mit I-Frames eine erhöhte Kompression. B-Frames können prädiktiv codiert oder von einem früheren und/oder späteren Frame interpoliert werden. Ein B-Frame spart sogar mehr Platz als ein P-Frame, indem er zur Angabe seines Inhalts Unterschiede zwischen einem aktuellen Frame und sowohl dem vorhergehenden als auch dem folgenden Frame verwendet. Zum Beispiel verwenden B-Frames den vorherigen und den nächsten I- oder P-Frame zum Bewegungsausgleich und bieten das höchste Maß an Kompression. Jeder Block in einem B-Frame kann vorwärts, rückwärts oder bidirektional prädiktiv codiert oder intra-codiert sein. Um Rückwärts-Prädiktion von einem künftigen Frame zu ermöglichen, ordnet der Codierer die Bilder aus ihrer natürlichen Anzeigereihenfolge so in eine Bitstrom-Reihenfolge um, dass der B-Frame nach dem vorherigen und dem nächsten Frame, auf die er Bezug nimmt, übertragen wird. Dies bringt eine von der Anzahl von aufeinander folgenden B-Frames abhängige Umordnungsverzögerung mit sich.
  • Jede GOP 202 besteht aus einer Folge verschiedener Kombinationen von I-, P- und B-Bildern. Sie beginnt in der Regel mit einem I-Frame, der die Referenz für die folgenden P- und B-Frames vorsieht und den Punkt zum Umschalten und für die Bandbearbeitung identifiziert. Die GOPs 202 können zum Beispiel 15 Frames aufweisen, nach denen ein neuer I-Frame eine Folge von P- und B-Frames beginnt. Die Frames können unter Verwendung von bidirektionaler prädiktiver Codierung für B-Bilder in einer anderen Reihenfolge codiert und decodiert werden, als sie angezeigt werden.
  • 3 veranschaulicht mittlere Bitraten beim schnellen Vorspulen von digitalem Video. Das schnelle Vor- oder Zurückspulen von Streaming-Video kann als „Trick-Modus” bezeichnet werden, und das schnell vor- und zurückgespulte Video kann in dem vorliegenden Dokument als „Trick-Modus-Video” bezeichnet werden. Video, das über das Internet oder ein hybrides Netzwerk zugestellt wird, kann in dem vorliegenden Dokument als „Cloud-basiertes” Video bezeichnet werden. Für Cloud-basierte Video-Zustellungsdienste haben die Trick-Modi eine wesentliche Auswirkung auf die Kenndaten des Videostroms. Zum Beispiel werden beim Erhöhen einer Geschwindigkeit beim schnellen Vorspulen immer mehr B- und P-Frames zugunsten von I-Frames mit mehr Videoinhalt übersprungen. Wie oben beschrieben können I-Frames zweimal so groß sein wie P-Frames und viermal so groß wie B-Frames. Wenn mehr I-Frames übertragen werden müssen, wenn ein Video mit schnellem Vorspulen angezeigt wird, erhöht sich die mittlere Bitrate erheblich. In Extremfällen, wie beispielsweise einer sechsfachen Geschwindigkeit beim schnellen Vorspulen, verbleiben möglicherweise nur I-Frames in dem Videostrom, da P- und B-Frames vollständig übersprungen werden. Wie in 3 gezeigt, erhöht sich mit der Erhöhung der Geschwindigkeit beim schnellen Vorspulen die mittlere Bitrate. Analog erhöht sich bei Zurückspulvorgängen (nicht gezeigt) mit der Erhöhung der Zurückspulgeschwindigkeit die mittlere Bitrate. Die Erhöhung der Bitrate („Burst”), könnte beim schnellen Vor- oder Zurückspulen von Video dazu führen, dass der Videostrom stockt, während das hybride Netzwerk 104 versucht, den Videostrom mit der höheren Rate an die Client-Vorrichtung 106 zu übertragen. Bei Cloud-basiertem Streaming-Video kann das Video während Trick-Modus-Vorgängen von Nutzern andauernde Bursts erfahren. Solche Bursts werden unter Verwendung von effizienteren Video-Codecs, wie beispielsweise HEVC, nicht abgemildert, da diese Codecs die Größen von I-Frames nicht wesentlich verringern. Die Auswirkungen von andauernden Bursts werden mit der Übernahme von Bitraten-intensiveren Videoformaten, wie beispielsweise Ultra-HD (Ultra-High-Definition), gravierender. Ultra-HD-Fernsehen (auch als Super-Hi-Vision, UHDTV oder UHD bekannt) beinhaltet 4K-UHD-Video (2160p) und 8K-UHD-Video (4320p).
  • Video-Streaming-Dienste werden den Nutzern herkömmlicherweise als OTT-Dienste (Over-the-Top) bereitgestellt. OTT-Dienste umfassen zum Beispiel NetflixTM und YouTubeTM. Es ist nicht erforderlich, dass die Wahrnehmungsqualität bei diesen Diensten Betreiberniveau aufweist. Zum Beispiel übertragen Netflix und YouTube einen Videostrom mit niedrigerer Qualität, wenn das Netz überlastet ist, was zu einer geringeren Bandbreite zwischen dem Video-Server 102 und der Client-Vorrichtung 106 führt. Jedoch wird das reguläre Fernsehprogramm nach wie vor nicht über IP (Internet Protocol) bereitgestellt. Wenn das reguläre Fernsehprogramm einer riesigen Anzahl von Nutzern über IP bereitgestellt wird, wird sich das Volumen des Videodatenverkehrs in einem IP-Netzwerk wesentlich erhöhen. Zweitens werden die Erwartungen der Nutzer vermutlich denen entsprechen, die an traditionelle digitale TV-Sendungen gerichtet sind. Unter den Herausforderungen, denen sich ein Kabelbetreiber gegenübersieht, sind Fragen der Dienstgüte (QoS, Quality of Service), die aktuell nicht angegangen werden. Sogar während des normalen Betriebs, in dem das Video nicht schnell vor- oder zurückgespult wird, erfordern unerwartete Bursts in dem Videostrom eine große Menge an Bandbreite und können entlang des Datenübertragungswegs in dem hybriden Netzwerk 104 eine Herausforderung für die Konfiguration von QoS-Parametern in dem ausgangsseitigen Edge-Router 114, in dem zielseitigen Edge-Router 115 und in dem CMTS 118 darstellen. Herkömmliche Systeme verwerfen schließlich Pakete, wenn sie in einem Videostrom auf einen Pakete-Burst treffen, der angesichts der zwischen dem Video-Server 102 und der Client-Vorrichtung 106 verfügbaren Bandbreite nicht übertragen werden kann.
  • QoS-Kontrolle von Streaming-Video über ein hybrides Netzwerk
  • 4 veranschaulicht ein beispielhaftes System zur QoS-Kontrolle von Streaming-Video über ein hybrides Netzwerk gemäß einem Ausführungsbeispiel der Offenbarung. 4 veranschaulicht einen Video-Server 102, der einen Videostrom 410 über ein hybrides Netzwerk 104 an eine Client-Vorrichtung 106 überträgt. Bei einem Ausführungsbeispiel weist der Video-Server 102 einen mit einem Prozessor 402 und einem Speicher 404 gekoppelten ABR-Server (Server mit adaptiver Bitrate) 400 auf. Der Speicher 404 kann ein RAM (Random Access Memory, Schreib-Lese-Speicher) und/oder eine Speichervorrichtung, wie beispielsweise ein Festplattenlaufwerk, beinhalten.
  • Der ABR-Server 400 codiert und speichert Kopien eines Videos mit verschiedenen Bitraten in dem Speicher 404. Die Kopien von mit verschiedenen Bitraten codierten Videos werden als Videoströme 408-1 bis 408-n dargestellt. Zum Beispiel wird der Videostrom 408-1 mit 500 kBit/s codiert, der Videostrom 408-2 wird mit 2 MBit/s codiert, und der Videostrom 808-n wird mit 20 MBit/s codiert. Wenn der Video-Server 102 von der Client-Vorrichtung 106 eine Anforderung 412 eines Videos empfängt, überträgt er einen ersten Videostrom, zum Beispiel den mit einer ersten Rate, zum Beispiel 2 MBit/s, mit der er codiert wurde, codierten Strom 408-2 über das Signal 410 über das hybride Netzwerk 104 an die Client-Vorrichtung 106. Die erste Rate kann auf einer Bitrate einer Verbindung zwischen dem Video-Server 102 und der Client-Vorrichtung 106, wie durch das Rückmeldesignal 414 angegeben, und/oder auf einer Servicestufe basieren, die ein Nutzer der Client-Vorrichtung 106 abonniert hat.
  • Die Client-Vorrichtung 106 kann auf der Grundlage einer Eingabe eines Zuschauers ein Signal 412 zum schnellen Vor- oder Zurückspulen des ersten Videostroms 408 mit einer spezifischen Geschwindigkeit, zum Beispiel schnelles Vor- oder Zurückspulen eines Videostroms 408 mit einer 5-fachen Geschwindigkeit, an den Video-Server 102 übertragen. Wenn der Video-Server 102 die Anforderung über das Signal 412 empfängt, bestimmt er eine angepasste Bitrate des Videos, das auf der Grundlage der angeforderten spezifischen Geschwindigkeit schnell vor- oder zurückgespult wird. Wenn zum Beispiel der Video-Server 102 einen ersten, bei 2 MBit/s codierten Videostrom 408-1 überträgt, dann kann eine angepasste Bitrate für einen schnell vorgespulten Strom auf der Grundlage der spezifischen Geschwindigkeit (zum Beispiel 5-fach) für von dem Nutzer ausgewähltes schnelles Vor- oder Zurückspulen zum Beispiel 5 MBit/s betragen. Die angepasste Bitrate erhöht sich verglichen mit der ersten Bitrate, weil während des schnellen Vor- und Rückspulens kleinere Frames, wie beispielsweise B-Frames, zugunsten von größeren Frames, wie beispielsweise I- und P-Frames, übersprungen werden können. Sowie sich die angeforderte spezifische Geschwindigkeit erhöht, könnten mehr kleine Frames, wie beispielsweise sowohl P- als auch B-Frames, zugunsten von mehr I-Frames, die übertragen werden, übersprungen werden, was zu einer noch höheren angepassten Bitrate führt. Der Video-Server 102 bestimmt, ob die angepasste Bitrate eine Bitrate der Verbindung zwischen dem Video-Server 102-Server und der Client-Vorrichtung 106 überschreitet, wie durch das Rückmeldesignal 414 angegeben. Wenn die angepasste Bitrate (zum Beispiel 5 MBit/s) die Bitrate der Verbindung nicht überschreitet (zum Beispiel wenn die Bitrate der Verbindung 7 MBit/s beträgt), dann überträgt der Video-Server 102 selektiv Frames aus dem ersten Strom 408-2 mit der angepassten Bitrate von 5 MBit/s. Zum Beispiel überträgt der Video-Server 102 selektiv mehr I- oder P-Frames als B-Frames aus dem Videostrom 408-2, was eine 5-fache Geschwindigkeit zum schnellen Vor- oder Zurückspulen und eine angepasste Bitrate von 5 MBit/s ergibt.
  • Wenn die angepasste Bitrate (zum Beispiel 5 MBit/s) die Bitrate der Verbindung überschreitet (wenn die Bitrate der Verbindung zum Beispiel 3 MBit/s beträgt), dann wird bestimmt, ob ein Videostrom 408 so verfügbar ist, dass, wenn er mit einer 5-fachen Geschwindigkeit schnell vor- oder zurückgespult wird, die daraus folgende angepasste Bitrate von der Bitrate der Verbindung (das heißt 3 MBit/s) unterstützt werden kann. Wenn zum Beispiel der Strom 408-1, der mit 500 kBit/s codiert ist, mit einer 5-fachen Geschwindigkeit schnell vor- oder zurückgespult wird, kann daraus eine angepasste Bitrate von 2 MBit/s folgen, die von der Verbindungsrate 3 MBit/s unterstützt werden kann. Wenn kein solcher Strom 408 verfügbar ist, dann kann der Video-Server 102 eine Geschwindigkeit zum schnellen Vor- oder Zurückspulen (zum Beispiel eine 3-fache Geschwindigkeit anstelle der ursprünglich angeforderten 5-fachen Geschwindigkeit) so auswählen, dass, wenn ein Videostrom 408 mit dieser Geschwindigkeit schnell vor- oder zurückgespult wird, die daraus folgende angepasste Bitrate von der Bitrate der Verbindung unterstützt werden kann.
  • Bei einem Ausführungsbeispiel überträgt der Video-Server 102 beim schnellen Vor- oder Zurückspulen selektiv I-, P- oder B-Frames oder eine Kombination aus I-, P- und B-Frames aus einem Videostrom 408. Bei einem Beispiel überträgt der Video-Server 102 nur I-Frames aus einem Videostrom 408, wenn die spezifische Geschwindigkeit des schnellen Vor- oder Zurückspulens einen ersten Schwellenwert überschreitet, er überträgt eine Kombination aus I-Frames und P-Frames aus dem zweiten Strom, wenn die spezifische Geschwindigkeit unterhalb des ersten Schwellenwerts und oberhalb eines zweiten Schwellenwerts liegt, und er überträgt eine Kombination aus I-Frames, P-Frames und B-Frames, wenn die spezifische Geschwindigkeit unterhalb eines zweiten Schwellenwerts liegt. Wenn die spezifische Geschwindigkeit des schnellen Vor- oder Zurückspulens zum Beispiel das 10-Fache beträgt, dann überträgt der Video-Server 102 selektiv nur I-Frames aus dem Videostrom. Wenn die spezifische Geschwindigkeit unterhalb des 10-Fachen und oberhalb des 6-Fachen liegt, dann überträgt der Video-Server 102 selektiv I- und P-Frames aus dem Videostrom. Wenn die spezifische Geschwindigkeit unterhalb des 6-Fachen liegt, dann kann der Video-Server 102 eine Kombination aus I-, P- oder B-Frames übertragen.
  • Bei einem Ausführungsbeispiel findet der Video-Server 102 die I-, P- oder B-Frames zur Übertragung aus einem Video-Strom auf der Grundlage der mit den Frames verbundenen Metadaten. Zum Beispiel beinhalten die mit den Frames verbundenen Metadaten in einem Videostrom den Typ, die Größe und die Position der Frames. Bei einem Beispiel basiert die Position der Frames auf einem Versatz von einem ersten Frame eines Videostroms.
  • Nachdem der schnelle Vor- oder Rückspulvorgang beendet ist, überträgt der Video-Server den ersten Videostrom erneut mit der ersten Rate.
  • 5 veranschaulicht ein beispielhaftes Ablaufdiagramm 500, das Schritte zum Vorsehen von QoS-Kontrolle für das Streaming von Video gemäß einem Ausführungsbeispiel der Offenbarung veranschaulicht. Das Ablaufdiagramm 500 wird unter fortgesetzter Bezugnahme auf die in 1 bis 4 abgebildete beispielhafte Betriebsumgebung beschrieben. Der Prozess ist jedoch nicht auf diese Ausführungsbeispiele beschränkt. Es sei angemerkt, dass einige in dem Ablaufdiagramm 500 beschriebene Schritte nicht zwangsläufig in der gezeigten Reihenfolge auftreten müssen. Bei einem Beispiel werden die Schritte in dem Ablaufdiagramm 500 auf der Grundlage von in dem Speicher 404 gespeicherten Anweisungen durch den Prozessor 402 durchgeführt.
  • In Schritt 502 wird auf der Grundlage einer Bitrate einer Verbindung zwischen einem Video-Server und einer Client-Vorrichtung, die ein Video anfordert, ein erster Videostrom mit einer ersten Bitrate übertragen. Zum Beispiel führt der Video-Server 102 als Reaktion auf eine Anforderung über das Signal 412 ein Streaming eines Videostroms 408-2 mit einer ersten Rate (zum Beispiel 2 MBit/s) an eine Client-Vorrichtung 106 so durch, dass die Bitrate des ausgewählten Videostroms 408-2 geringer ist oder gleich einer Bitrate einer Verbindung zwischen dem Video-Server 102 und der Client-Vorrichtung 106 ist.
  • In Schritt 504 wird ein Signal zum schnellen Vor- oder Zurückspulen des ersten Videostroms mit einer spezifischen Geschwindigkeit empfangen. Zum Beispiel wird ein Signal 412 von der Client-Vorrichtung 106 empfangen, um den ersten Videostrom mit der spezifischen Geschwindigkeit, zum Beispiel mit 5-facher Geschwindigkeit, schnell vor- oder zurückzuspulen.
  • In Schritt 506 wird auf der Grundlage der spezifischen Geschwindigkeit und der ersten Bitrate eine angepasste Bitrate zum Übertragen des Videostroms bestimmt. Zum Beispiel kann ein Videostrom, der mit 2 MBit/s mit einer 5-fachen Geschwindigkeit schnell vorgespult wird, zu einer angepassten Bitrate von 5 MBit/s führen.
  • In Schritt 508 wird bestimmt, ob die angepasste Bitrate (zum Beispiel 5 MBit/s) größer ist als eine Bitrate der Verbindung. Zum Beispiel bestimmt der Video-Server 102, ob die angepasste Bitrate (zum Beispiel 5 MBit/s) größer ist als die Rate der Verbindung zwischen dem Video-Server 102 und der Client-Vorrichtung 106. Wenn sie größer ist, wird der Prozess bei Schritt 510 fortgesetzt, und wenn sie kleiner ist, dann wird der Prozess bei Schritt 516 fortgesetzt. Wenn die Rate der Verbindung zum Beispiel 3 MBit/s beträgt, dann wird der Prozess bei Schritt 510 fortgesetzt. Wenn die Rate der Verbindung 7 MBit/s beträgt, dann wird der Prozess bei Schritt 516 fortgesetzt.
  • In Schritt 516 werden Frames aus dem ursprünglichen Videostrom von Schritt 502 mit der angepassten Bitrate selektiv übertragen. Zum Beispiel werden mehr I- oder P-Frames als B-Frames aus dem Videostrom 408-2 übertragen, was zu der höheren angepassten Bitrate für den schnellen Vor- oder Zurückspulvorgang führt.
  • In Schritt 510 wird bestimmt, ob ein Videostrom verfügbar ist, der die spezifische Geschwindigkeit zum schnellen Vor- oder Zurückspulen mit der Bitrate der Verbindung unterstützen kann. Zum Beispiel bestimmt der Video-Server 102, ob ein Videostrom 408 verfügbar ist, der die spezifische Geschwindigkeit zum schnellen Vor- oder Zurückspulen mit dem 5-Fachen der Bitrate der Verbindung, die zum Beispiel 3 MBit/s sein kann, unterstützen kann. Wenn er verfügbar ist, dann wird der Prozess bei Schritt 512 fortgesetzt, und wenn er nicht verfügbar ist, dann wird der Prozess bei Schritt 514 fortgesetzt.
  • In Schritt 512 werden Frames aus einem Videostrom, der die spezifische Geschwindigkeit zum schnellen Vor- oder Zurückspulen mit der Bitrate der Verbindung unterstützen kann, selektiv übertragen. Zum Beispiel führt der mit 500 kBit/s codierte Videostrom 408-1, wenn er mit dem 5-Fachen schnell vorgespult wird, zu einem Strom mit einer angepassten Bitrate von 2 MBit/s, der auf einer Verbindung mit 3 MBit/s übertragen werden kann.
  • In Schritt 514 wird eine Geschwindigkeit zum schnellen Vor- oder Zurückspulen ausgewählt, welche die angepasste Bitrate unterstützen kann. Zum Beispiel wird, anstelle der in Schritt 504 angeforderten 5-fachen Geschwindigkeit, eine niedrigere Geschwindigkeit, zum Beispiel das 3-Fache, die von der Bitrate der Verbindung unterstützt werden kann, ausgewählt.
  • Bandbreitenzuteilung beim schnellen Vor- oder Zurückspulen von Video
  • 6 veranschaulicht ein beispielhaftes System 600 zum Bereitstellen von erhöhter Bandbreite beim schnellen Vor- oder Zurückspulen von Video. Zusätzlich zu dem Video-Server 102, dem Ethernet-Switch 108, dem ausgangsseitigen Edge-Router 114, dem zielseitigen Edge-Router 116, dem CMTS 118, der Set-Top-Box 120 und der Client-Vorrichtung 106, die oben im Hinblick auf 1 beschrieben wurden, weist das System 600 einen mit dem Video-Server 102 und dem CMTS 118 gekoppelten QoS-Manager 602 auf. Der QoS-Manager 602 beinhaltet den mit dem Richtlinien-Server 606 gekoppelten Anwendungsmanager 604. Der QoS-Manager 602 beinhaltet außerdem einen mit einem Speicher 610 gekoppelten Prozessor 608. Die in dem vorliegenden Dokument beschriebenen Funktionen, wie sie von dem QoS-Manager 603, dem Anwendungsmanager 604 und dem Richtlinien-Server 606 durchgeführt werden, kann auf der Grundlage von in dem Speicher 610 gespeicherten Anweisungen durch den Prozessor 608 durchgeführt werden.
  • Wenn die Client-Vorrichtung 106 ein Signal an den Video-Server 102 sendet, um einen von dem Video-Server 102 übertragenen Videostrom schnell vor- oder zurückzuspulen, weist der schnell vor- oder zurückgespulte Videostrom eine höhere Bitrate auf als der ursprünglich übertragene Videostrom. Dies liegt daran, dass der Video-Server 102 während der schnellen Vor- und Zurückspulvorgänge I-Frames sendet, die bei einer schnelleren Rate eine große Größe aufweisen. Eine erste Bitrate der Verbindung zwischen dem CMTS 118 und der Set-Top-Box 120 ist möglicherweise jedoch nicht ausreichend, um eine für den schnell vor- oder zurückgespulten Videostrom, der zwischen dem CMTS 118 und der Set-Top-Box übertragen werden soll, erforderliche zweite, höhere, Bitrate zu unterstützen. Bei herkömmlichen Systemen überträgt ein Video-Server 102 den mit der höheren Rate schnell vor- oder zurückgespulten Videostrom an die Client-Vorrichtung, 106, ohne die verfügbare Bandbreite zwischen dem CMTS 118 und der Set-Top-Box 120 zu berücksichtigen. Dies führt dazu, dass das Video aufgrund eines Fehlens von QoS oder Bandbreite stocken oder stehen bleiben kann, bis es gepuffert werden kann. Bei Anwendungen wie Netflix oder YouTube könnte ein Video-Server 102 während schneller Vor- oder Zurückspulvorgänge nur ein Video mit geringerer Qualität an die Client-Vorrichtung 120 senden. Wenn jedoch die QoS-Parameter für die Verbindung zwischen dem CMTS 118 und der Set-Top-Box 120 geändert werden können, kann das schnell vor- oder zurückgespulte Video mit höherer Rate zugestellt werden. Anwendungen wie TiVo befinden sich lokal auf der Client-Vorrichtung 106 und sind daher von der Bitrate der Verbindung zwischen dem CMTS 118 und der Set-Top-Box 120 nicht betroffen.
  • Gemäß einem Ausführungsbeispiel sendet die Client-Anwendung 106, wenn sie einen schnellen Vor- oder Zurückspulvorgang anfordert, ein Signal an den Video-Server 102. Als Reaktion auf das Signal bestimmt der Video-Server 102 die zum Übertragen des schnell vor- oder zurückgespulten Videostroms erforderliche zweite Bitrate zwischen dem CMTS 118 und der Set-Top-Box 120 und sendet einen ersten Satz von QoS-Parametern an den QoS-Manager 602. Der erste Satz von QoS-Parametern beinhaltet eine für den schnell vor- oder zurückgespulten Videostrom erforderliche mittlere Bitrate, eine Spitzen-Bitrate, eine minimale Bitrate oder eine maximale Bildinstabilität.
  • Als Antwort auf den ersten Satz von QoS-Parametern generiert der Anwendungsmanager 604 Anwendungssitzungsdaten, wie beispielsweise einen von dem Videostrom verwendeten Codec, die Prioritätsstufe des Videostroms, die mittlere Bitrate, die maximale Zellenanzahl, die maximale Bitrate und weitere TSpec-Parameter (Traffic Specification, Datenverkehrsspezifikation) für den schnell vor- oder zurückgespulten Videostrom. Auf der Grundlage der Anwendungssitzungsdaten generiert der Richtlinien-Server 606 einen zweiten Satz von QoS-Parametern. Der zweite Satz von QoS-Parametern beinhaltet eine MRR (Minimum Reserved Rate, minimale reservierte Rate), eine MSR (Maximum Sustained Rate, maximale Dauerrate), eine MBS (Maximum Burst Size, maximale Zellenanzahl) oder eine PE (Peak Rate, Spitzenrate) für den schnell vor- oder zurückgespulten Videostrom. Der QoS-Manager 602 überträgt den zweiten Satz von QoS-Parametern an das CMTS 118. Auf der Grundlage des zweiten Satzes von QoS-Parametern ändert das CMTS 118 die Bitrate der Verbindung zwischen dem CMTS 118 und der Set-Top-Box 120 in die zweite Bitrate, sodass das CMTS 118 den schnell vor- oder zurückgespulten Videostrom an die Set-Top-Box 120 übertragen kann, ohne dass das Video stockt oder stehen bleibt. Nachdem das schnell vor- oder zurückgespulte Video an die Set-Top-Box 120 übertragen wurde, überträgt der QoS-Manager 602 einen dritten Satz von QoS-Parametern an das CMTS 118, um die Verbindung zwischen dem CMTS 118 und der Set-Top-Box 120 in die erste Bitrate zurück zu ändern.
  • 7 veranschaulicht ein beispielhaftes Ablaufdiagramm 700, das Schritte zum Vorsehen von QoS-Kontrolle für das Streaming von Video gemäß einem Ausführungsbeispiel der Offenbarung veranschaulicht. Das Ablaufdiagramm 700 wird unter fortgesetzter Bezugnahme auf die in 1 bis 6 abgebildete, beispielhafte Betriebsumgebung beschrieben. Der Prozess ist jedoch nicht auf diese Ausführungsbeispiele beschränkt. Es sei angemerkt, dass einige in dem Ablaufdiagramm 700 beschriebene Schritte nicht zwangsläufig in der gezeigten Reihenfolge auftreten müssen. Bei einem Beispiel können die Schritte in dem Ablaufdiagramm 700 durch einen oder mehrere von dem Video-Server 102, dem Prozessor 402 auf der Grundlage von in dem Speicher 404 gespeicherten Anweisungen, dem QoS-Manager 602, dem Anwendungsmanager 602, dem Richtlinien-Server 606 oder dem Prozessor 608 auf der Grundlage von in dem Speicher 610 gespeicherten Anweisungen, durchgeführt werden.
  • In Schritt 702 wird eine Anforderung eines Videos mit Trick-Modus empfangen. Zum Beispiel empfängt der Video-Server 102 von der Client-Vorrichtung 106 eine Anforderung eines Videos mit Trick-Modus.
  • In Schritt 704 wird eine zum Übertragen des Videos mit Trick-Modus erforderliche Bitrate bestimmt. Zum Beispiel bestimmt der Video-Server 102 eine zum Übertragen des Videos mit Trick-Modus erforderliche Bitrate der Verbindung zwischen dem CMTS 118 und der Set-Top-Box 120.
  • In Schritt 706 wird auf der Grundlage der in Schritt 704 bestimmten Bitrate ein erster Satz von QoS-Parametern generiert. Zum Beispiel generiert der Video-Server 102 auf der Grundlage der in Schritt 704 bestimmten Bitrate einen ersten Satz von QoS-Parametern und überträgt den ersten Satz von QoS-Parametern an den QoS-Manager 602.
  • In Schritt 708 werden auf der Grundlage des ersten Satzes von QoS-Parametern Anwendungssitzungsdaten generiert. Zum Beispiel generiert der Anwendungsmanager 604 in dem QoS-Manager 602 auf der Grundlage des ersten Satzes von QoS-Parametern Anwendungssitzungsdaten und sendet an den Richtlinienmanager 606.
  • In Schritt 710 wird auf der Grundlage von Anwendungssitzungsdaten ein zweiter Satz von QoS-Parametern generiert. Zum Beispiel generiert der Richtlinien-Server 606 auf der Grundlage der Anwendungssitzungsdaten den zweiten Satz von QoS-Parametern und überträgt ihn an das CMTS 118.
  • In Schritt 712 wird auf der Grundlage des zweiten Satzes von QoS-Parametern die in Schritt 704 bestimmte Bitrate bereitgestellt. Zum Beispiel implementiert das CMTS 118 den zweiten Satz von QoS-Parametern und stellt der Verbindung zwischen dem CMTS 118 und der Set-Top-Box 120 die in Schritt 704 bestimmte Bitrate zusammen mit weiterer erforderlicher QoS bereit.
  • In Schritt 714 wird an dem Ende der Trick-Modus-Anforderung von Schritt 702 ein dritter Satz von QoS-Parametern generiert und übertragen. Zum Beispiel generiert der QoS-Manager 602 an dem Ende des Trick-Modus einen dritten Satz von QoS-Parametern und überträgt ihn an das CMTS 118, um die Bitrate der Verbindung zwischen dem CMTS 118 und der Set-Top-Box 120 auf die ursprüngliche Bitrate zwischen dem CMTS 118 und der Set-Top-Box 120 zurückzuführen.
  • Differenzielles Einreihen von Video-Frames für Videostromübertragungen auf Betreiberniveau in hybriden Netzwerken
  • Unter erneuter Bezugnahme auf 1 führt der Video-Server 102 ein Video-Streaming über das hybride Netzwerk 104 an die Client-Vorrichtung 106 durch. Der Video-Server 102 führt ein Video-Streaming an die Client-Vorrichtung 106 durch, indem er I-, P- und B-Frames des Videos in IP-Paketen (Internet Protocol) platziert. Bei der Übertragung des Streaming-Videos kann an einer beliebigen Stelle in dem Netzwerk eine Überlastung auftreten. Zum Beispiel kann eine Überlastung zwischen dem Ethernet-Switch 108 und dem ausgangsseitigen Edge-Router 114, zwischen dem ausgangsseitigen Edge-Router 114 und dem zielseitigen Edge-Router 116, zwischen dem zielseitigen Edge-Router 116 und dem CMTS 118 und zwischen dem CMTS 118 und der Set-Top-Box 120 vorliegen. Eine Überlastung tritt in der Regel aufgrund eines Abfalls der verfügbaren Bandbreite auf. Um die Qualität des Videos aufrechtzuerhalten, muss der Übertragung von I-Frames gegenüber der Übertragung von P-Frames Priorität eingeräumt werden, und der Übertragung von P-Frames muss gegenüber der Übertragung von B-Frames Priorität eingeräumt werden. Dies liegt daran, dass I-Frames die größte Datenmenge zum Anzeigen des Videos enthalten. Das Verwerfen von I-Frames zum Vermeiden von Überlastung führt dazu, dass das Video stockt, oder es hat eine inakzeptable Verschlechterung in der Qualität des Videos zur Folge.
  • Gemäß einem Ausführungsbeispiel markiert der Video-Server 102 ein Feld in den IP-Paketen, um anzugeben, ob das IP-Paket einen I-, P- oder B-Frame beinhaltet. Zum Beispiel markiert der Video-Server 102 ein Feld, zum Beispiel ein DSCP-Feld (Differentiated Services Code Point) in dem Header jedes IP-Paketes, um anzugeben, ob das Paket einen I-, P- oder B-Frame beinhaltet. 8 veranschaulicht einen Strom von Paketen 802-1 bis 802-10 mit Markierungen in jedem Paket 802, um einen Frame-Typ in dem Paket anzugeben. Der Strom 802-1 bis 802-10 wird durch den Video-Server 102 an die Client-Vorrichtung 106 übertragen. Zum Beispiel sind die DSCP-Felder in den Paketen 802-1 und 802-10 mit einem „x” markiert, um anzugeben, dass jedes von ihnen einen I-Frame beinhaltet. Die DSCP-Felder in den Paketen 802-2 und 802-3, 802-5 und 802-6 sowie 802-8 und 802-9 sind mit einem „y” markiert, um anzugeben, dass jedes von ihnen einen B-Frame beinhaltet. Die DSCP-Felder der Pakete 802-4 und 802-7 sind mit einem „z” markiert, um anzugeben, dass jedes von ihnen einen P-Frame beinhaltet. Es versteht sich, dass andere Felder und andere Arten von Markierungen verwendet werden können, um Frame-Typen in einem Paket zu identifizieren. Diese Markierungen werden für die Paketklassifizierung, für das Einreihen, Verwerfen und Planen verwendet, wie unten im Hinblick auf 9 beschrieben.
  • 9 veranschaulicht ein beispielhaftes System 900 zur Paketklassifizierung, zum Einreihen, Verwerfen und Planen gemäß einem Ausführungsbeispiel der Offenbarung. Das System 900 kann Bestandteil von jedem von dem Ethernet-Switch 108, dem ausgangsseitigen Edge-Router 114, dem zielseitigen Edge-Router 116 und dem CMTS 118 sein. Das System 900 weist einen mit den Warteschlangen 904-1 bis 904-n gekoppelten Klassifizierer 902 auf. Bei einer Warteschlange, wie in dem vorliegenden Dokument bezeichnet, handelt es sich um eine Folge von in einem Speicher gespeicherten Paketen. Die Warteschlangen 904-1 bis 904-n sind mit dem Planer 906 gekoppelt. Der Planer 906 ist mit dem Former 908 gekoppelt. Die Warteschlangen 904 beinhalten die Streaming-Video-Warteschlange 904-2, die nur Pakete mit I-Frames speichert, die Streaming-Video-Warteschlange 904-3, die nur Pakete mit P-Frames speichert, und die Streaming-Video-Warteschlange 904-4, die nur Pakete mit B-Frames speichert. Das System 900 weist außerdem weitere Warteschlangen, wie die Warteschlangen 904-5 bis 904-n und die Prioritätswarteschlange 904-1 auf, um weitere Pakete zu speichern, die keine Video-Frames beinhalten. Die Warteschlangen 905-5 bis 904-n können zum Beispiel Massendaten-Warteschlangen, Aufrufsignal-Warteschlangen und Standarddaten-Warteschlangen beinhalten. Der Klassifizierer 900 bestimmt, an welche Warteschlange 904 ein eingehendes Paket gesendet werden soll und welche eingehenden Pakete verworfen werden sollen. Der Planer 906 bestimmt eine Folge, in der Pakete von den Warteschlangen 904 übertragen werden. Der Former 908 bestimmt eine Rate, mit der Pakete von den Warteschlangen 904 übertragen werden.
  • Der Klassifizierer 902 speichert ein eingehendes Paket auf der Grundlage des DSCP-Feldes in dem Paket, das den Typ von Video-Frame in dem Paket angibt, in einer jeweiligen Warteschlange 904. Zum Beispiel speichert der Klassifizierer 902 mit einem „x” markierte Pakete in der Streaming-Video-Warteschlange 904-2, mit einem „y” markierte Pakete in der Streaming-Video-Warteschlange 904-3 und mit einem „z” markierte Pakete in der Streaming-Video-Warteschlange 904-4. Jede Warteschlange 904-2 bis 904-4 ist gemäß den für den Typ von Frame, den sie speichern, spezifischen QoS-Parametern konfiguriert. Bei den QoS-Parametern kann es sich um die minimale, mittlere und maximale Bitrate für die jeweilige Warteschlange handeln. Die minimale, mittlere und maximale Bitrate für eine Warteschlange gibt die jeweiligen minimalen, mittleren und maximalen Bitraten an, mit denen der Planer 906 Daten aus der Warteschlange übertragen soll. Die Streaming-Video-Warteschlange 904-2, die Pakete mit I-Frames speichert, weist eine höhere minimale, mittlere und maximale Übertragungs-Bitrate auf als die Streaming-Video-Warteschlange 904-3, die P-Frames speichert, und die Streaming-Video-Warteschlange 904-3 weist eine höhere minimale, mittlere und maximale Übertragungs-Bitrate auf als die Streaming-Video-Warteschlange 904-4, die B-Frames speichert. Zum Beispiel wird der Streaming-Video-Warteschlange 904-2, die I-Frames speichert, die minimale Bitrate von 50 MBit/s, eine mittlere Bitrate von 70 MBit/s und eine maximale Bitrate von 100 MBit/s zugeteilt. Der Streaming-Video-Warteschlange 904-3, die P-Frames speichert, kann eine minimale Bitrate von 30 MBit/s, eine mittlere Bitrate von 50 MBit/s und eine maximale Bitrate von 70 MBit/s zugeteilt werden. Der Streaming-Video-Warteschlange 904-4, die B-Frames speichert, kann eine minimale Bitrate von 10 MBit/s, eine mittlere Bitrate von 20 MBit/s und eine maximale Bitrate von 30 MBit/s zugeteilt werden. Der Planer 906 und der Former 908 bestimmen, welche Pakete auf der Grundlage der minimalen, maximalen und mittleren mit einer Warteschlange 904 verbundenen Bitrate zur Übertragung ausgewählt werden sollen.
  • Zusätzlich zu der Zuteilung von minimalen, maximalen und mittleren Bitraten kann jede Warteschlange 904-4 außerdem WRED (Weighted Random Early Detection, gewichtete zufällige Früherkennung) implementieren, anstelle von herkömmlichen „Taildrop”-Mechanismen, bei denen Pakete von einem Ende einer Warteschlange verworfen werden, wenn eine Überlastung erkannt wird. Im Gegensatz dazu werden bei WRED die Pakete gemäß einer Paketverwerfungswahrscheinlichkeit verworfen, die auf der Grundlage einer mittleren Größe der Warteschlange berechnet wird. Die Wahrscheinlichkeit des Verwerfens eines Pakets wird durch drei konfigurierbare Parameter bestimmt: den minimalen Schwellenwert (auch als minimaler Schwellenwert der Warteschlangentiefe bekannt), den maximalen Schwellenwert (auch als maximaler Schwellenwert der Warteschlangentiefe bekannt) und eine Markierungswahrscheinlichkeit. Es können weitere Schwellenwerte verwendet werden. 10 veranschaulicht eine WRED-Paketverwerfungswahrscheinlichkeit. Die X-Achse ist die mittlere Warteschlangentiefe und die Y-Achse die Wahrscheinlichkeit, mit der ein in der Warteschlange eingehendes Paket verworfen wird. Wenn die mittlere Warteschlangengröße (das heißt die mittlere Anzahl von Paketen in der Warteschlange) niedriger ist als der mittlere Schwellenwert, wird kein in der Warteschlange eingehendes Paket verworfen. Wenn die mittlere Warteschlangengröße den maximalen Schwellenwert überschreitet, dann werden alle in der Warteschlange eingehenden Pakete verworfen. Wenn, wie in 10 zu sehen ist, die mittlere Warteschlangengröße zwischen dem minimalen und dem maximalen Schwellenwert liegt, dann wird das eingehende Paket gemäß der linear ansteigenden Wahrscheinlichkeit verworfen, wobei die Markierungswahrscheinlichkeit die höchste Wahrscheinlichkeit ist, die erreicht wird, wenn die mittlere Warteschlangengröße bei dem maximalen Schwellenwert liegt. Wenn die Markierungswahrscheinlichkeit zum Beispiel 0,2 ist, dann könnte das Paket zu 20% der Zeit verworfen werden. Wenn die Markierungswahrscheinlichkeit 0,5 ist, dann könnte das Paket zu 50% der Zeit verworfen werden. Wenn die Markierungswahrscheinlichkeit 1 ist, dann wird das Paket zu 100% der Zeit verworfen. Zur Unterstützung von WRED können der minimale Schwellenwert und der maximale Schwellenwert für die Streaming-Video-Warteschlange 904-2, die I-Frames enthält, höher eingestellt werden als für die Streaming-Video-Warteschlange 904-3 für P-Frames und die Streaming-Video-Warteschlange 904-4 für B-Frames. Ferner kann die Markierungswahrscheinlichkeit für die Streaming-Video-Warteschlange 904-2 niedriger eingestellt werden als für die Streaming-Video-Warteschlange 904-3 und die Streaming-Video-Warteschlange 904-4. Dies erlaubt es, dass verschiedene Frame-Typen während einer Überlastung verschiedene Schwellenwerte für das Verwerfen aufweisen, wobei für I-Frames die geringste Wahrscheinlichkeit gilt, verworfen zu werden, und für P- und B-Frames eine höhere Wahrscheinlichkeit gilt, verworfen zu werden. Bei einem Beispiel haben P-Frames eine niedrigere Wahrscheinlichkeit, verworfen zu werden, als B-Frames.
  • Selbst wenn keine Überlastung (das heißt Bedingungen mit niedriger Bandbreite) vorliegt, räumt das vorliegende Ausführungsbeispiel dem Übertragen von I-Frames eine höhere Priorität ein. Zum Beispiel erlaubt das obige Einreihungssystem nach Priorität, während Trick-Modus-Anforderungen nach schnell vor- und zurückgespultem Video, bei denen eine größere Anzahl von I-Frames übertragen werden muss, eine Übertragung von I-Frames mit Priorität gegenüber P- und B-Frames und eine Übertragung von P-Frames mit Priorität gegenüber B-Frames. Der Klassifizierer 902 bestimmt auf der Grundlage des mit einer Warteschlange 904 verbundenen minimalen Schwellenwerts, des maximalen Schwellenwerts und der Markierungswahrscheinlichkeit, welches eingehende Paket verworfen werden soll.
  • 11 veranschaulicht ein beispielhaftes Ablaufdiagramm 1100, das Schritte zum differenziellen Einreihen und zur QoS-Kontrolle von Streaming-Videopaketen gemäß einem Ausführungsbeispiel der Offenbarung veranschaulicht. Das Ablaufdiagramm 1100 wird unter fortgesetzter Bezugnahme auf die in 1 bis 10 abgebildete, beispielhafte Betriebsumgebung beschrieben. Der Prozess ist jedoch nicht auf diese Ausführungsbeispiele beschränkt. Es sei angemerkt, dass einige in dem Ablaufdiagramm 1100 beschriebene Schritte nicht zwangsläufig in der gezeigten Reihenfolge auftreten müssen. Bei einem Beispiel können die Schritte in dem Ablaufdiagramm 1100 durch einen oder mehrere von dem Video-Server 102, dem Ethernet-Switch 108, dem ausgangsseitigen Edge-Router 114, dem zielseitigen Edge-Router 116 und dem CMTS 112 durchgeführt werden.
  • In Schritt 1102 werden Warteschlangen bereitgestellt, um Pakete mit I-, P- oder B-Frames zu speichern. Zum Beispiel wird die Streaming-Video-Warteschlange 904-2 bereitgestellt, um Pakete mit I-Frames zu speichern, die Streaming-Video-Warteschlange 904-3 wird bereitgestellt, um Pakete mit P-Frames zu speichern, und die Streaming-Video-Warteschlange 904-4 wird bereitgestellt, um Pakete mit B-Frames zu speichern.
  • In Schritt 1104 wird jede der bereitgestellten Warteschlangen mit entsprechenden QoS-Kenndaten verbunden. Zum Beispiel wird jede der Streaming-Warteschlangen 904-2 bis 904-4 mit einer jeweiligen minimalen Übertragungsrate, einer mittleren Übertragungsrate, einer maximalen Übertragungsrate, einem minimalen Schwellenwert, einem maximalen Schwellenwert und einer Markierungswahrscheinlichkeit verbunden.
  • In Schritt 1106 werden Pakete mit Markierungen empfangen, die angeben, ob die Pakete I-, P- oder B-Frames beinhalten. Zum Beispiel gibt ein DSCP-Feld in jedem der empfangenen Pakete an, ob ein Paket einen I-, P- oder B-Frame beinhaltet.
  • In Schritt 1108 werden Pakete auf der Grundlage der Markierungen in den Paketen und der Markierungswahrscheinlichkeit, dem minimalen Schwellenwert und dem maximalen Schwellenwert, die mit den Warteschlangen verbunden sind, in jeweiligen Warteschlangen gespeichert oder verworfen.
  • In Schritt 1110 werden Warteschlangen auf der Grundlage von zugewiesenen QoS-Kenndaten bedient. Zum Beispiel erhält auf der Grundlage der minimalen Übertragungsrate, der maximalen Übertragungsrate und der mittleren Übertragungsrate, der Markierungswahrscheinlichkeit, dem maximalen Schwellenwert und dem minimalen Schwellenwert, wie oben beschrieben, die Übertragung von der Streaming-Warteschlange 904-2 Priorität gegenüber der Übertragung von der Streaming-Warteschlange 904-3, und die Übertragung von der Streaming-Warteschlange 904-3 erhält Priorität gegenüber der Übertragung von der Streaming-Warteschlange 904-4.
  • Distributives Einreihen von kritischen Video-Frames für Videostromübertragungen auf Betreiberniveau über hybride Netzwerke
  • Unter erneuter Bezugnahme auf 1 führt der Video-Server 102 ein Video-Streaming über das hybride Netzwerk 104 an die Client-Vorrichtung 106 durch. Der Video-Server 102 kann ein Streaming von Video an die Client-Vorrichtung 106 durchführen, indem er I-, P- und B-Frames in IP-Paketen (Internet Protocol) platziert. Bei der Übertragung des Streaming-Videos kann an einer beliebigen Stelle in dem Netzwerk eine Überlastung auftreten. Zum Beispiel kann eine Überlastung zwischen dem Ethernet-Switch 108 und dem ausgangsseitigen Edge-Router 114, zwischen dem ausgangsseitigen Edge-Router 114 und dem zielseitigen Edge-Router 116, zwischen dem zielseitigen Edge-Router 116 und dem CMTS 118 und zwischen dem CMTS 118 und der Set-Top-Box 120 vorliegen. Eine Überlastung tritt in der Regel aufgrund eines Abfalls der verfügbaren Bandbreite auf. Eine Überlastung kann auch auftreten, weil eine Client-Vorrichtung 106 einen Trick-Modus angefordert hat, der das schnelle Vor- oder Zurückspulen eines Videos bedingt, was zu einem Burst von I-Frames führt. Um die Qualität des Videos aufrechtzuerhalten, muss der Übertragung von I-Frames Priorität gegenüber der Übertragung von P-Frames und B-Frames eingeräumt werden. Dies liegt daran, dass I-Frames die größte Datenmenge zum Anzeigen des Videos enthalten. Das Verwerfen von I-Frames zum Vermeiden von Überlastung führt dazu, dass das Video stockt, oder es führt zu einer inakzeptablen Verschlechterung der Qualität des Videos. Bei dem Beispiel in 9 ist nur die Streaming-Video-Warteschlange 904-2 spezifisch zum Speichern von I-Frames vorgesehen. In dem Trick-Modus, bei dem die Client-Vorrichtung 106 schnell vor- oder zurückgespultes Video anfordert, kann der Burst von I-Frames zu groß sein, da es nur eine Streaming-Video-Warteschlange 904-2 gibt, die I-Frames zugewiesen ist, was dazu führt, dass I-Frames verworfen werden.
  • Gemäß einem Ausführungsbeispiel markiert der Video-Server 102 auf zyklische Weise ein Feld in IP-Paketen, die I-Frames beinhalten. Zum Beispiel veranschaulicht 12 einen Strom von Paketen 1200-1 bis 1200-6, die durch den Video-Server 102 an die Client-Vorrichtung 106 übertragen werden. Der Video-Server 102 markiert auf zyklische Weise ein Feld, zum Beispiel ein DSCP-Feld in dem Header jedes Pakets, das einen I-Frame beinhaltet, mit einer anderen Markierung. Bei dem Beispiel in 12 gibt es die drei Markierungen a, b und c, die verwendet werden, um Pakete mit I-Frames auf zyklische Weise zu markieren. Die Anzahl von Markierungen hängt von der Anzahl von Warteschlangen 1304 ab, die, wie in 13 veranschaulicht, I-Frames zugeteilt werden. Zum Beispiel ist das DSCP-Feld in dem Paket 1200-1 mit einem „a” markiert, in dem Paket 1200-2 ist es mit einem „b” markiert, und in dem Paket 1200-3 ist es mit einem „c” markiert. Der Video-Server 102 führt dann einen erneuten Zyklus durch, um das DSCP-Feld in dem nächsten IP-Paket 1200-4, das einen I-Frame aufweist, mit einem „a” zu markieren, das IP-Paket 1200-5 mit einem „b” und das IP-Paket 1200-6 mit einem „c”. Bei einem Beispiel markiert der Video-Server 102 nur dann periodisch ein Feld in IP-Paketen, die I-Frames aufweisen, wenn die Client-Vorrichtung 106 ein Video mit Trick-Modus anfordert. Diese Markierungen werden zum Klassifizieren, Einreihen, Verwerfen und Planen von Paketen, wie unten im Hinblick auf 13 beschrieben, verwendet.
  • 13 veranschaulicht ein beispielhaftes System 1300 zur Paketklassifizierung, zum Einreihen, Verwerfen und Planen gemäß einem Ausführungsbeispiel der Offenbarung. Das System 1300 kann Bestandteil von jedem von dem Ethernet-Switch 108, dem ausgangsseitigen Edge-Router 114, dem zielseitigen Edge-Router 116 und dem CMTS 118 sein. Das System 1300 weist einen mit den Warteschlangen 1304-1 bis 1304-n gekoppelten Klassifizierer 1302 auf. Die Warteschlangen 1304-1 bis 1304-n sind mit dem Planer 306 gekoppelt. Der Planer 306 ist mit dem Former 1308 gekoppelt. Die Warteschlangen 1304 beinhalten die Streaming-Video-Warteschlangen 1304-2 bis 1304-4, die nur Pakete mit I-Frames speichern. Das System 1300 weist außerdem weitere Warteschlangen, wie die Warteschlangen 1304-5 bis 1304-n und die Prioritätswarteschlange 1304-1 auf, um weitere Pakete zu speichern, die keine Video-Frames beinhalten. Die Warteschlangen 1304-5 bis 1304-n können zum Beispiel Massendaten-Warteschlangen, Aufrufsignal-Warteschlangen und Standarddaten-Warteschlangen umfassen. Der Klassifizierer 1302 bestimmt, an welche Warteschlange 1304 ein eingehendes Paket gesendet werden soll und welche eingehenden Pakete verworfen werden sollen. Der Planer 1306 bestimmt eine Folge, in der Pakete von den Warteschlangen 1304 übertragen werden. Der Former 1308 bestimmt eine Rate, mit der Pakete von den Warteschlangen 904 übertragen werden.
  • Der Klassifizierer 1302 speichert ein eingehendes Paket auf der Grundlage des DSCP-Feldes in dem Paket, das den Typ von Video-Frame in dem Paket angibt, in einer der Warteschlangen 1304-2 bis 1304-4. Zum Beispiel speichert der Klassifizierer 1302 ein mit einem „a” markiertes IP-Paket in der Streaming-Video-Warteschlange 1304-2, ein mit einem „b” markiertes IP-Paket in der Streaming-Video-Warteschlange 904-3 und ein mit einem „c” markiertes IP-Paket in der Streaming-Video-Warteschlange 904-4. Jede Warteschlange 1304-2 bis 1304-4 ist gemäß den QoS-Parametern für I-Frames konfiguriert. Zum Beispiel werden die Streaming-Video-Warteschlangen 1304-2 bis 1304-4, die Pakete mit I-Frames speichern, mit einer höheren minimalen, mittleren und maximalen Übertragungs-Bitrate versorgt als die Prioritätswarteschlangen 1304-1 und 1304-5 bis 1304-n. Zusätzlich zu der Zuteilung einer minimalen, maximalen und mittleren Bitrate kann jeder der Warteschlangen 1304-2 bis 1304-4 außerdem zur Unterstützung von WRED ein minimaler Schwellenwert, ein maximaler Schwellenwert und eine Markierungswahrscheinlichkeit zugeteilt werden, die größer sind als ein minimaler Schwellenwert, ein maximaler Schwellenwert und eine Markierungswahrscheinlichkeit für die Prioritätswarteschlangen 1304-1 und 1304-5 bis 1304-n. Selbst dann, wenn keine Überlastung vorliegt (das heißt Bedingungen mit niedriger Bandbreite), räumt das vorliegende Ausführungsbeispiel der Übertragung von I-Frames höhere Priorität ein. Zum Beispiel verhindert das obige Einreihungssystem nach Priorität während Trick-Modus-Anforderungen eines schnell vor- und zurückgespulten Videos, bei denen eine größere Anzahl von I-Frames übertragen werden muss, dass I-Frames verworfen werden, da es die drei Warteschlangen 1304-2 bis 1304-4 gibt, die I-Frames zugeteilt sind. Bei dem vorliegenden Ausführungsbeispiel sind nur die drei Warteschlangen 1304-2 bis 1304-4 I-Frames zugeteilt. Es versteht sich, dass die Anzahl von I-Frames zugeteilten Warteschlangen 1304 von der Auslegung abhängt und variieren kann.
  • 14 veranschaulicht ein beispielhaftes Ablaufdiagramm 1400, das Schritte zum differenziellen Einreihen und zur QoS-Kontrolle von Streaming-Videopaketen gemäß einem Ausführungsbeispiel der Offenbarung veranschaulicht. Das Ablaufdiagramm 1400 wird unter fortgesetzter Bezugnahme auf die in 1 bis 13 abgebildete beispielhafte Betriebsumgebung beschrieben. Der Prozess ist jedoch nicht auf diese Ausführungsbeispiele beschränkt. Es sei angemerkt, dass einige in dem Ablaufdiagramm 1400 beschriebene Schritte nicht zwangsläufig in der gezeigten Reihenfolge auftreten müssen. Bei einem Beispiel können die Schritte in dem Ablaufdiagramm 1400 durch einen oder mehrere von dem Video-Server 102, dem Ethernet-Switch 108, dem ausgangsseitigen Edge-Router 114, dem zielseitigen Edge-Router 116 und dem CMTS 112 durchgeführt werden.
  • In Schritt 1402 werden Warteschlangen bereitgestellt, um Pakete mit I-Frames zu speichern. Zum Beispiel wird die Streaming-Video-Warteschlange 1304-2 bereitgestellt, um Pakete mit I-Frames, die eine Markierung „a” aufweisen, zu speichern, die Streaming-Video-Warteschlange 1304-3 wird bereitgestellt, um Pakete mit P-Frames zu speichern, die eine Markierung „b” aufweisen, und die Streaming-Video-Warteschlange 1304-4 wird bereitgestellt, um Pakete mit B-Frames zu speichern, die eine Markierung „c” aufweisen.
  • In Schritt 1404 wird jede der bereitgestellten Warteschlangen mit entsprechenden QoS-Kenndaten verbunden. Zum Beispiel wird jede der Streaming-Warteschlangen 1304-2 bis 1304-4 mit einer jeweiligen minimalen Übertragungsrate, einer mittleren Übertragungsrate, einer maximalen Übertragungsrate, einem jeweiligen minimalen Schwellenwert, einem maximalen Schwellenwert und einer Markierungswahrscheinlichkeit verbunden.
  • In Schritt 1406 werden Pakete mit Markern empfangen, die I-Frame-Pakete mit den Markierungen „a”, „b” oder „c” identifizieren. Zum Beispiel gibt ein DSCP-Feld in den empfangen Paketen mit einer Markierung „a”, „b” oder „c” an, ob ein Paket einen I-Frame beinhaltet.
  • In Schritt 1408 werden die Pakete auf der Grundlage der Markierungen in den Paketen in jeweiligen Warteschlangen gespeichert. Zum Beispiel werden I-Frame-Pakete mit der Markierung „a” in der Streaming-Video-Warteschlange 1304-2, I-Frame-Pakete mit der Markierung „b” in der Streaming-Video-Warteschlange 1304-3 und I-Frame-Pakete mit der Markierung „c” in der Streaming-Video-Warteschlange 1304-4 gespeichert.
  • In Schritt 1410 werden Warteschlangen auf der Grundlage von zugewiesenen QoS-Kenndaten bedient. Zum Beispiel wird auf der Grundlage einer mit den Warteschlangen 1304 verbundenen minimalen Übertragungsrate, einer maximalen Übertragungsrate, einer mittleren Übertragungsrate, einer Markierungswahrscheinlichkeit, eines maximalen Schwellenwerts und eines minimalen Schwellenwerts der Übertragung von den Streaming-Warteschlangen 1304-2 bis 1304-4 Priorität gegenüber der Übertragung von den Warteschlangen 1304-1 und 1304-5 bis 1304-n eingeräumt.
  • Die in dem vorliegenden Dokument dargestellten Ausführungsbeispiele gelten für jedes Kommunikationssystem zwischen zwei oder mehr Vorrichtungen oder innerhalb von Unterkomponenten einer Vorrichtung. Die in dem vorliegenden Dokument beschriebenen, maßgeblichen Funktionen können in Hardware, Software oder einer Kombination daraus implementiert sein. Zum Beispiel können die maßgeblichen Funktionen unter Verwendung von Computerprozessoren, Computerlogik, ASICs (Application Specific Circuit, anwendungsspezifische Schaltung), Digitalsignalverarbeitungseinheiten, usw., wie es für die Fachleute auf dem Gebiet auf der Grundlage der in dem vorliegenden Dokument angeführten Erörterung offensichtlich ist, implementiert werden. Demgemäß liegt jeder Prozessor, der die in dem vorliegenden Dokument beschriebenen Funktionen durchführt, in dem Schutzumfang und dem Gedanken der in dem vorliegenden Dokument dargestellten Ausführungsbeispiele.
  • Die folgenden Ausführungen beschreiben ein Allzweck-Computersystem, das verwendet werden kann, um Ausführungsbeispiele der in dem vorliegenden Dokument dargestellten Offenbarung zu implementieren. Die vorliegende Offenbarung kann in Hardware, Software oder als Kombination von Software und Hardware implementiert werden. Folglich kann die Offenbarung in der Umgebung eines Computersystems oder eines anderen Verarbeitungssystems implementiert werden. Ein Beispiel für ein solches Computersystem 1500 ist in 15 gezeigt. Das Computersystem 1500 umfasst einen oder mehrere Prozessoren, wie beispielsweise den Prozessor 1504. Bei dem Prozessor 1504 kann es sich um eine Digitalsignalverarbeitungseinheit für einen speziellen oder einen allgemeinen Zweck handeln. Der Prozessor 1504 ist mit einer Kommunikationsinfrastruktur 1506 (zum Beispiel einem Bus oder Netzwerk) verbunden. Verschiedene Software-Implementierungen werden anhand dieses beispielhaften Computersystems beschrieben. Nach dem Lesen dieser Beschreibung wird es für Fachleute auf dem relevanten Gebiet offensichtlich, wie die Offenbarung unter Verwendung anderer Computersysteme und/oder Computerarchitekturen implementiert werden kann.
  • Das Computersystem 1500 umfasst außerdem einen Hauptspeicher 1505, vorzugsweise einen Speicher mit wahlfreien Zugriff (Random Access Memory, RAM), und kann außerdem einen sekundären Speicher 1510 umfassen. Der sekundäre Speicher 1510 kann zum Beispiel ein Festplattenlaufwerk 1512, eine RAID-Anordnung 1516 und/oder ein Laufwerk für Wechseldatenträger 1514 umfassen, das ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein optisches Plattenlaufwerk, usw. darstellt. Das Laufwerk für Wechseldatenträger 1514 liest auf allgemein bekannte Weise Daten von einer Wechseldatenträgereinheit 1518 und/oder schreibt auf diese. Die Wechseldatenträgereinheit 1518 stellt ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein optisches Plattenlaufwerk, usw. dar. Es versteht sich, dass die Wechseldatenträgereinheit 1518 ein von einem Computer verwendbares Speichermedium aufweist, auf dem Computersoftware und/oder Daten gespeichert sind.
  • Bei alternativen Implementierungen kann der sekundäre Speicher 1510 andere, ähnliche Mittel aufweisen, um es zu erlauben, dass Computerprogramme oder andere Anweisungen in das Computersystem 1500 geladen werden. Solche Mittel können zum Beispiel eine Wechseldatenträgereinheit 1522 und eine Schnittstelle 1520 umfassen. Beispiele für solche Mittel können eine Programmkassette und eine Kassettenschnittstelle aufweisen (wie sie in Vorrichtungen für Videospiele zu finden sind), einen entnehmbaren Speicherchip (wie beispielsweise ein EPROM oder PROM) und einen zugeordneten Sockel und weitere Wechseldatenträgereinheiten 1522 und Schnittstellen 1520, die es erlauben, dass Software (das heißt Anweisungen) und Daten von der Wechseldatenträgereinheit 1522 zu dem Computersystem 1500 transferiert werden.
  • Das Computersystem 1500 kann außerdem eine Kommunikationsschnittstelle 1524 umfassen. Die Kommunikationsschnittstelle 1524 erlaubt es, dass Software und Daten zwischen dem Computersystem 1500 und externen Vorrichtungen transferiert werden. Beispiele für die Kommunikationsschnittstelle 1524 können ein Modem, eine Netzwerkschnittstelle (wie beispielsweise eine Ethernet-Karte), einen Kommunikations-Port, einen PCMCIA-Slot mit Karte, usw., die mit einer Kommunikationsstrecke 1526 gekoppelt sind, beinhalten. Die Kommunikationsstrecke 1526 kann unter Verwendung von Draht oder Kabel, Glasfaser, einer Telefonleitung, einer Mobiltelefonverbindung, einer Hochfrequenzverbindung und anderen Kommunikationsverbindungen oder -kanälen implementiert sein.
  • Die Begriffe „Computerprogramm-Medium” und „von einem Computer verwendbares Medium” werden in dem vorliegenden Dokument im Allgemeinen so verwendet, dass sie Medien wie beispielsweise ein Laufwerk für einen Wechseldatenträger 1514, eine in ein Festplattenlaufwerk 1512 eingebaute Festplatte oder einen anderen Hardwarespeicher betreffen. Diese Computerprogramm-Produkte sind Mittel, um dem Computersystem 1500 Software (zum Beispiel Anweisungen) bereitzustellen oder darauf zu speichern.
  • Computerprogramme (die auch als Computer-Steuerlogik bezeichnet werden) werden in dem Hauptspeicher 1505 und/oder in dem sekundären Speicher 1510 gespeichert. Computerprogramme können außerdem über eine Kommunikationsschnittstelle 1524 empfangen werden. Solche Computerprogramme versetzen, wenn sie ausgeführt werden, das Computersystem 1500 in die Lage, die vorliegende Offenbarung so zu implementieren, wie in dem vorliegenden Dokument erörtert. Genauer gesagt versetzen die Computerprogramme, wenn sie ausgeführt werden, den Prozessor 1504 in die Lage, die Prozesse und/oder Funktionen der vorliegenden Offenbarung zu implementieren. Zum Beispiel versetzen die Computerprogramme, wenn sie ausgeführt werden, den Prozessor 1504 in die Lage, einen Teil oder alle der oben unter Bezugnahme auf die Ablaufdiagramme in dem vorliegenden Dokument beschriebenen Schritte zu implementieren. Wenn die Offenbarung unter Verwendung von Software implementiert wird, kann die Software unter Verwendung der RAID-Anordnung 1516, des Laufwerks für Wechseldatenträger 1514, des Festplattenlaufwerks 1512 oder der Kommunikationsschnittstelle 1524 in einem Computerprogrammprodukt gespeichert und in das Computersystem 1500 geladen werden.
  • Bei weiteren Ausführungsbeispielen sind die Merkmale der Offenbarung unter Verwendung zum Beispiel von Hardwarekomponenten, wie beispielsweise ASICs (Application Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung) und programmierbaren oder statischen Gatteranordnungen oder einer anderen Zustandsautomatenlogik hauptsächlich in Hardware implementiert. Die Implementierung eines Hardware-Zustandsautomaten zum Durchführen der in dem vorliegenden Dokument beschriebenen Funktionen ist für Fachleute auf dem bzw. den betreffenden Gebiet(en) auch offensichtlich.
  • Die Ausführungsbeispiele können in Hardware (zum Beispiel Schaltungen), Firmware, Software oder einer beliebigen Kombination daraus implementiert sein. Die Ausführungsbeispiele können auch als auf einem maschinenlesbaren Medium, das mittels eines oder mehrerer Prozessoren gelesen und ausgeführt werden kann, gespeicherte Anweisungen implementiert sein. Ein maschinenlesbares Medium kann einen beliebigen Hardwaremechanismus zum Speichern von Informationen in einer mittels einer Maschine (zum Beispiel einer Computervorrichtung) lesbaren Form aufweisen. Zum Beispiel kann ein maschinenlesbares Medium ein ROM (Read-Only Memory, Nur-Lese-Speicher); RAM (Random Access Memory, Speicher mit wahlfreiem Zugriff); Speichermedien mit Magnetplatte; optische Speichermedien; Flash-Speicher-Vorrichtungen; und weitere Hardware-Implementierungen beinhalten. Ferner kann in dem vorliegenden Dokument beschrieben sein, dass Firmware, Software, Routinen, Anweisungen bestimmte Aktionen durchführen. Es versteht sich jedoch, dass solche Beschreibungen lediglich praktischen Gründen dienen und dass solche Aktionen tatsächlich daraus resultieren, dass Computervorrichtungen, Prozessoren, Controller oder andere Vorrichtungen die Firmware, Software, Routinen, Anweisungen, usw. ausführen. Ferner können beliebige der Implementierungsvarianten mittels eines Allzweckcomputers durchgeführt werden.
  • Bei Ausführungsbeispielen mit einer oder mehreren Komponenten, die einen oder mehrere Prozessoren aufweisen, können einer oder mehrere der Prozessoren einen oder mehrere interne und/oder externe Speicher, die Anweisungen und/oder Code speichern, welche bei Ausführung durch den bzw. die Prozessor(en) bewirken, dass der bzw. die Prozessor(en) eine oder mehrere den Betrieb der entsprechenden Komponente(n) betreffende Funktionen und/oder Operationen durchführen, wie es in dem vorliegenden Dokument beschrieben ist und/oder wie es für die Fachleute auf dem bzw. den betreffenden Gebiet(en) offensichtlich ist, aufweisen (und/oder zum Zugreifen darauf konfiguriert sein).
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEEE 802.11 [0041]
    • IEEE 802.15.1 [0041]
    • ISO/IEC 18092 [0041]
    • IEEE 802.15.4 [0041]
    • IEEE 802.16 [0042]

Claims (10)

  1. Video-Server zum Bereitstellen von Video, der Folgendes umfasst: einen Speicher; und einen mit dem Speicher gekoppelten Prozessor, wobei der Prozessor auf der Grundlage von in dem Speicher gespeicherten Anweisungen für Folgendes konfiguriert ist: Speichern einer Vielzahl von Kopien eines mit einer Vielzahl von Bitraten in dem Speicher codierten Videos; Übertragen einer ersten Kopie der Vielzahl von Kopien durch Streaming an eine Client-Vorrichtung auf der Grundlage einer Bitrate der Verbindung zwischen dem Video-Server und dem Client, wobei die erste Kopie mit einer ersten Bitrate der Vielzahl von jeweiligen Bitraten codiert ist; Empfangen eines Signals von der Client-Vorrichtung, um die erste Kopie mit einer spezifischen Geschwindigkeit schnell vor- oder zurückzuspulen.
  2. Video-Server nach Anspruch 1, wobei der Prozessor für Folgendes konfiguriert ist: Bestimmen einer zum schnellen Vor- und Zurückspulen des Videos erforderlichen, angepassten Bitrate auf der Grundlage der spezifischen Geschwindigkeit und der ersten Bitrate.
  3. Video-Server nach Anspruch 2, wobei der Prozessor für Folgendes konfiguriert ist: Bestimmen, ob die angepasste Bitrate die Bitrate der Verbindung zwischen dem Video-Server und dem Client überschreitet.
  4. Video-Server nach Anspruch 3, wobei der Prozessor für Folgendes konfiguriert ist: schnelles Vor- und Zurückspulen des Videos mit der spezifischen Geschwindigkeit durch selektives Übertragen einer Vielzahl von Frames (Einzelbildern) von einer zweiten Kopie der Vielzahl von Kopien, die mit einer zweiten Bitrate der Vielzahl von jeweiligen Bitraten codiert ist, wenn die angepasste Bitrate die Bitrate der Verbindung überschreitet, wobei die zweite Bitrate geringer ist als die erste Bitrate.
  5. Video-Server nach einem der vorhergehenden Ansprüche, wobei der Video-Server und der Client über ein hybrides Netzwerk verbunden sind.
  6. Video-Server nach Anspruch 5, wobei der Prozessor ferner so konfiguriert ist, dass er auf der Grundlage von in dem Speicher gespeicherten Anweisungen die Bitrate der Verbindung zwischen dem Video-Server und dem Client aus dem hybriden Netzwerk empfangen kann.
  7. Video-Server nach Anspruch 6, wobei das hybride Netzwerk ein DOCSIS-Netzwerk (Data Over Cable Service Interface Specification) und ein TCP/IP-Netzwerk (Transmission Control Protocol/Internet Protocol) beinhaltet.
  8. Video-Server nach einem der Ansprüche 4 bis 7, wobei die Vielzahl von Frames I-Frames, P-Frames oder B-Frames beinhaltet.
  9. Video-Server nach Anspruch 8, wobei der Prozessor ferner so konfiguriert ist, dass er auf der Grundlage von in dem Speicher gespeicherten Anweisungen die I-Frames oder die P-Frames auf der Grundlage von mit der zweiten Kopie verbundenen Metadaten aus der zweiten Kopie zur Übertragung auswählen kann.
  10. Video-Server nach Anspruch 9, wobei die Metadaten den Typ, die Größe und die Position der Vielzahl von Frames beinhalten.
DE102016008427.8A 2015-03-31 2016-02-05 Streaming von Videos über ein hybrides Netzwerk Withdrawn DE102016008427A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562141208P 2015-03-31 2015-03-31
US62/141,208 2015-03-31
US14/734,643 US9935993B2 (en) 2015-03-31 2015-06-09 Streaming video over a hybrid network
US14/734,643 2015-06-09

Publications (1)

Publication Number Publication Date
DE102016008427A1 true DE102016008427A1 (de) 2016-10-06

Family

ID=56937479

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102016001331.1A Active DE102016001331B4 (de) 2015-03-31 2016-02-05 Streaming von Videos über ein hybrides Netzwerk
DE102016008427.8A Withdrawn DE102016008427A1 (de) 2015-03-31 2016-02-05 Streaming von Videos über ein hybrides Netzwerk

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102016001331.1A Active DE102016001331B4 (de) 2015-03-31 2016-02-05 Streaming von Videos über ein hybrides Netzwerk

Country Status (3)

Country Link
US (2) US9935993B2 (de)
CN (2) CN110049349A (de)
DE (2) DE102016001331B4 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2921027A4 (de) * 2012-11-19 2016-07-13 Nokia Technologies Oy Verfahren und vorrichtung zur erzeugung eines niederenergetischen bluetooth-datenpakets mit audionutzdaten
US9935993B2 (en) 2015-03-31 2018-04-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Streaming video over a hybrid network
US11107177B1 (en) * 2017-06-16 2021-08-31 Amazon Technologies, Inc. Data/metadata synchronization using metadata queue statistics
CN109151612B (zh) * 2017-06-27 2020-10-16 华为技术有限公司 一种视频传输方法、设备及系统
EP3439308A1 (de) * 2017-07-31 2019-02-06 Zhilabs S.L. Bestimmung von qoe bei verschlüsselten videoströmen unter verwendung von betreutem lernen
US20190075171A1 (en) * 2017-09-05 2019-03-07 EtherLabs, Inc. System and Method for Generating Marker Data
KR102413839B1 (ko) * 2017-11-15 2022-06-28 삼성전자 주식회사 컨텐츠 제공장치, 그 제어방법 및 기록매체
US11171890B1 (en) 2018-12-28 2021-11-09 Innovium, Inc. Reducing power consumption in an electronic device
US11122311B2 (en) * 2019-08-08 2021-09-14 At&T Intellectual Property I, L.P. Method and apparatus for delivery of media content
JP7247952B2 (ja) * 2020-05-19 2023-03-29 トヨタ自動車株式会社 設定装置、パラメータの設定方法及びプログラム
CN115474232A (zh) * 2021-06-10 2022-12-13 维沃移动通信有限公司 QoS的控制方法及装置
CN113747123B (zh) * 2021-08-24 2024-02-09 成都纵横自动化技术股份有限公司 航拍违法检测系统、视频处理装置和违法检测装置
CN115297323B (zh) * 2022-08-16 2023-07-28 广东省信息网络有限公司 一种rpa流程自动化方法和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6426948B1 (en) * 1999-06-02 2002-07-30 Accenture Llp Video conferencing fault management in a hybrid network
WO2005036884A1 (en) * 2003-10-07 2005-04-21 Ucentric Holdings, Inc. Digital video recording and playback system with quality of service playback from multiple locations via a home area network
US7577980B2 (en) * 2006-01-19 2009-08-18 International Business Machines Corporation Bit-rate constrained trick play through stream switching and adaptive streaming
US8458753B2 (en) * 2006-02-27 2013-06-04 Time Warner Cable Enterprises Llc Methods and apparatus for device capabilities discovery and utilization within a content-based network
CA2616440C (en) 2006-12-29 2015-02-17 Broadband Royalty Corporation Source optimized dynamic trickplay
US8370520B2 (en) * 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
CN103053170B (zh) * 2011-02-14 2017-03-29 艾科星科技公司 用以在串流重放期间提供特技播放的系统和方法
US8489760B2 (en) 2011-03-31 2013-07-16 Juniper Networks, Inc. Media file storage format and adaptive delivery system
US20130132462A1 (en) 2011-06-03 2013-05-23 James A. Moorer Dynamically Generating and Serving Video Adapted for Client Playback in Advanced Display Modes
US9137551B2 (en) 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
US8407747B1 (en) * 2012-03-13 2013-03-26 Google Inc. Adaptive trick play streaming
US9532093B2 (en) 2012-05-15 2016-12-27 Bright House Networks, Llc Initiating a unicast stream based on a triggering event associated with a node receiving a multicast stream
EP2680527A1 (de) * 2012-06-28 2014-01-01 Alcatel-Lucent Anpassungsfähiger strömungserfassender Knoten und Klient zur Gewährleistung eines glatten Qualitätsübergangs
US9935993B2 (en) 2015-03-31 2018-04-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Streaming video over a hybrid network

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
IEEE 802.15.1
IEEE 802.15.4
IEEE 802.16
ISO/IEC 18092

Also Published As

Publication number Publication date
CN110049349A (zh) 2019-07-23
US20160294910A1 (en) 2016-10-06
US20180227348A1 (en) 2018-08-09
DE102016001331B4 (de) 2024-01-25
US9935993B2 (en) 2018-04-03
CN106028053A (zh) 2016-10-12
US10567465B2 (en) 2020-02-18
CN106028053B (zh) 2019-05-28
DE102016001331A1 (de) 2016-10-06

Similar Documents

Publication Publication Date Title
DE102016001331B4 (de) Streaming von Videos über ein hybrides Netzwerk
CN106068495B (zh) 将使用不同编码参数编码的多个编码成流
US9930388B2 (en) Differential and distributive queuing of video frames
DE112006002899B4 (de) Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz
DE112011101911T5 (de) Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams
US10820024B2 (en) Communication apparatus, communication data generation method, and communication data processing method
DE102005001287A1 (de) Verfahren und Vorrichtung zur Verarbeitung von skalierbaren Daten
DE102013221798A1 (de) Parallele Transcodierung
DE102014019581A1 (de) Anwendungsqualitätsverwaltung in einem kommunikationssystem
EP1836852B1 (de) Verfahren und vorrichtungen zur übertragung von skalierbaren daten
DE112015004179T5 (de) Router-Fabric
EP2938085B1 (de) Verfahren und vorrichtung zur übermittlung von kodierten mediendaten
WO2016050413A1 (de) Anpassung einer videokomprimierung bei einem mobilen server
DE60131602T2 (de) Multiplexabhängige Videokomprimierung
DE112006002900T5 (de) Parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz
Liu et al. H. 264/MVC interleaving for real-time multiview video streaming
KR101405455B1 (ko) 서브 플로우를 기반으로 네트워크를 관리하기 위한 장치
DE112013005157B4 (de) Systeme und Verfahren zur Teilung von Bandbreite über eine Vielzahl von Videodatenströmen
DE202015008258U1 (de) Moderne Bilddatenübertragung durch Streaming zu veralteten und modernen Displays
KR101249613B1 (ko) 비디오 스트리밍을 위한 네트워크 적응형 가변 스트림 계층화 장치 및 방법
Chodorek et al. TFD-capable dynamic QoS assurance using a variable time horizon based on scene changes
DE112011103035T5 (de) Echtzeit-Schlüsselframe-Synchronisierung
DE102010031514B4 (de) Übertragung von Daten über ein paketorientiertes Netzwerk in einem Fahrzeug
DE102018131617B4 (de) Verfahren zum Streamen von Datenpaketen zwischen einem Sender und wenigstens einem Empfänger über ein Mobilfunknetzwerk
DE102005046382A1 (de) Verfahren, Kommunikationsanordnung und dezentrale Kommunikationseinrichtung zum Übermitteln von Multimedia-Datenströmen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R129 Divisional application from

Ref document number: 102016001331

Country of ref document: DE

R081 Change of applicant/patentee

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LT, SG

Free format text: FORMER OWNER: BROADCOM CORPORATION, IRVINE, CALIF., US

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE., SG

Free format text: FORMER OWNER: BROADCOM CORPORATION, IRVINE, CALIF., US

R082 Change of representative

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE

R081 Change of applicant/patentee

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LT, SG

Free format text: FORMER OWNER: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE, SG

R082 Change of representative

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE

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