DE112011103035T5 - Echtzeit-Schlüsselframe-Synchronisierung - Google Patents

Echtzeit-Schlüsselframe-Synchronisierung Download PDF

Info

Publication number
DE112011103035T5
DE112011103035T5 DE112011103035T DE112011103035T DE112011103035T5 DE 112011103035 T5 DE112011103035 T5 DE 112011103035T5 DE 112011103035 T DE112011103035 T DE 112011103035T DE 112011103035 T DE112011103035 T DE 112011103035T DE 112011103035 T5 DE112011103035 T5 DE 112011103035T5
Authority
DE
Germany
Prior art keywords
frames
different media
keyframe
media stream
streams
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
DE112011103035T
Other languages
English (en)
Inventor
Kent Karlsson
Fritz Barnes
Ola Hallmarker
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.)
MobiTv Inc
Original Assignee
MobiTv Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MobiTv Inc filed Critical MobiTv Inc
Publication of DE112011103035T5 publication Critical patent/DE112011103035T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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/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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4383Accessing a communication channel
    • H04N21/4384Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Es sind Mechanismen vorgesehen zum Durchführen einer Echtzeitsynchronisierung von Schlüsselframes über mehrere Ströme. Ein Streaming Server fragt Frames von verschiedenen Medienströmen mit unterschiedlichen Qualitätsniveaus zum Kodieren eines Stücks Medieninhalts ab. Der Streaming Server identifiziert Schlüsselframes in den Medienströmen und Zeitpunkte zum Abfragen nach Schüsselframes, die die Chancen erhöhen, Schlüsselframes aus der gleichen Gruppe von Bildern (GOPs) zu detektieren. Bei einigen Beispielen liegt der Abfragepunkt im Wesentlichen in der Mitte zwischen zwei GOPs. Wenn eine Verbindungsanforderung bezüglich eines alternativen Stroms von einer Clientvorrichtung kommend empfangen wird, wird eine gemessene Verzögerung zum Berechnen einer verbesserten Startzeit verwendet.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Offenbarung beansprucht Priorität der gleichzeitig anhängigen US-Patentanmeldung Nr. 13/227,364 des gleichen Inhabers (MOBIP060US), eingereicht am 7. September 2011, mit dem Titel ”ECHTZEIT-SCHLÜSSELFRAME-SYNCHRONISIERUNG”, und der gleichzeitig anhängigen vorläufigen US-Anmeldung Nr. 61/381,865 (MOBIP060P) mit dem Titel ”ECHTZEIT-SCHLÜSSELFRAME-SYNCHRONISIERUNG”, eingereicht am 10 September 2010, wobei die Offenbarungen der früheren Anmeldungen Teil und Gegenstand der vorliegenden Offenbarung sind.
  • BESCHREIBUNG DES EINSCHLÄGIGEN STANDS DER TECHNIK
  • Die vorliegende Offenbarung betrifft eine Echtzeitsynchronisierung von Schlüsselframes von mehreren Strömen.
  • Verschieden Vorrichtungen sind in der Lage, Medienströme abzuspielen, die von einem Streaming Server kommend empfangen werden. Ein Beispiel für einen Medienstrom ist ein Moving Picture Experts Group(MPEG-)Videostrom. Medienströme, wie z. B. MPEG-Videoströme, kodieren häufig Mediendaten als eine Sequenz von Frames und liefern die Sequenz von Frames zu einer Clientvorrichtung. Einige Frames sind Schlüsselframes, die im Wesentlichen sämtliche Daten liefern, die zum Darstellen eines Bilds erforderlich sind. Ein MPEG I-Frame ist ein Beispiel für ein Schlüsselframe. Andere Frames sind prädiktive Frames, die Informationen über Unterschiede zwischen dem prädiktiven Frame und einem Referenz-Schlüsselframe liefern.
  • Prädiktive Frames, wie z. B. MPEG B-Frames und MPEG P-Frames sind kleiner und bandbreiteneffizienter als Schlüsselframes. Prädiktive Frames stützen sich hinsichtlich Informationen jedoch nur auf Schlüsselframes und können ohne Informationen von Schlüsselframes nicht genau dargestellt werden. Ein Streaming Server weist häufig eine Anzahl von Medienströmen auf, die er empfängt und in seinen Puffern hält.
  • Bei einigen Beispielen empfängt ein Streaming Server und/oder ein Live-Encoder mehrere Ströme für den gleichen Inhalt. Die mehreren Ströme können unterschiedliche Bitraten, unterschiedliche Frameraten oder unterschiedliche Targetauflösungen aufweisen. Wenn sich eine Clientvorrichtung mit einem Streaming Server verbindet, liefert der Streaming Server einen ausgewählten Medienstrom zu der Clientvorrichtung. Die Clientvorrichtung kann dann den Medienstrom unter Verwendung eines Dekodiermechanismus abspielen.
  • Mechanismen zum effizienten Liefern von Medienströmen an Clientvorrichtungen unterliegen jedoch Einschränkungen. In vielen Fällen werden Medienströme derart geliefert, dass negative Effekte eingebracht werden. Folglich stellen die Techniken der vorliegenden Erfindung Mechanismen zum Verbessern der Fähigkeit eines Streaming Servers zum effizienten Liefern von Medienströmen zu Clientvorrichtungen bereit.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung ist am besten mit Bezug auf die folgende Beschreibung in Zusammenhang mit den beiliegenden Zeichnungen verständlich, in denen bestimmte Ausführungsformen der vorliegenden Erfindung dargestellt sind.
  • 1 zeigt eine Sequenz von Videostromframes.
  • 2 zeigt eine weitere Sequenz von Videostromframes.
  • 3 zeigt ein Beispiel für Schlüsselframes, die mehreren Strömen zugeordnet sind.
  • 4 zeigt ein Beispiel für ein Netzwerk, das die Techniken der vorliegenden Erfindung nutzen kann.
  • 5 zeigt ein Beispiel für einen Streaming Server.
  • 6 zeigt eine Verarbeitung an einem Streaming Server.
  • 7 zeigt eine Verarbeitung an einer Clientvorrichtung.
  • BESCHREIBUNG VON BESONDEREN AUSFÜHRUNGSFORMEN
  • Es wird nun genauer auf einige spezifische Beispiele der Erfindung Bezug genommen, einschließlich der besten Methoden, die die Erfinder zum Durchführen der Erfindung in Betracht ziehen. Beispiele für diese spezifischen Ausführungsformen sind in den beiliegenden Zeichnungen dargestellt. Obwohl die Erfindung in Zusammenhang mit diesen spezifischen Ausführungsformen beschrieben wird, sei darauf hingewiesen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen beschränkt ist. Sie deckt im Gegenteil Alternativen, Modifikationen und Äquivalente ab, die in den Geist und den Umfang der Erfindung fallen, wie sie in den beiliegenden Patentansprüchen definiert ist.
  • Zum Beispiel werden die Techniken der vorliegenden Erfindung in Zusammenhang mit bestimmten Netzwerken und bestimmten Vorrichtungen beschrieben. Es sei jedoch darauf hingewiesen, dass die Techniken der vorliegenden Erfindung auf eine Vielzahl von Netzwerken und eine Vielzahl von unterschiedlichen Vorrichtungen angewendet werden können. In der folgenden Beschreibung sind zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu ermöglichen. Die vorliegende Erfindung kann auch ohne einige oder sämtliche dieser spezifischen Details implementiert werden. In anderen Fällen sind bekannte Prozessabläufe nicht detailliert beschrieben, um die vorliegende Erfindung nicht unnötigerweise unklar zu machen.
  • Verschiedene Techniken und Mechanismen der vorliegenden Erfindung werden aus Gründen der Klarheit manchmal im Singular beschrieben. Es sei jedoch darauf hingewiesen, dass einige Ausführungsformen mehrere Wiederholungen einer Technik oder mehrere Instanziierungen eines Mechanismus umfassen, sofern nichts anderes angegeben ist. Zum Beispiel wird ein Prozessor in einer Vielzahl von Kontexten verwendet. Es sei jedoch darauf hingewiesen, dass auch mehrere Prozessoren verwendet werden können, wobei dies in den Umfang der vorliegenden Erfindung fällt, sofern nichts anderes angegeben ist. Ferner werden bei den Techniken und Mechanismen der vorliegenden Erfindung manchmal zwei Entitäten als miteinander verbunden beschrieben. Es sei darauf hingewiesen, dass eine Verbindung zwischen zwei Entitäten nicht notwendigerweise eine direkte ungehinderte Verbindung bedeutet, da eine Vielzahl von weiteren Entitäten zwischen den zwei Entitäten vorgesehen sein kann. Zum Beispiel kann ein Prozessor mit einem Speicher verbunden sein, es sei jedoch darauf hingewiesen, dass eine Vielzahl von Brücken und Steuereinrichtungen zwischen dem Prozessor und dem Speicher vorgesehen sein kann. Folglich bedeutet eine Verbindung nicht notwendigerweise eine direkte ungehinderte Verbindung, sofern nichts anderes angegeben ist.
  • Überblick
  • Es sind Mechanismen vorgesehen zum Durchführen einer Echtzeitsynchronisierung von Schlüsselframes über mehrere Ströme. Ein Streaming Server fragt Frames von verschiedenen Medienströmen mit unterschiedlichen Qualitätsniveaus zum Kodieren eines Stücks Medieninhalts ab. Der Streaming Server identifiziert Schlüsselframes in den Medienströmen und Zeitpunkte zum Abfragen nach Schüsselframes, die die Chancen erhöhen, Schlüsselframes aus der gleichen Gruppe von Bildern (GOPs = Group of Pictures) zu detektieren. Bei einigen Beispielen liegt der Abfragepunkt im Wesentlichen in der Mitte zwischen zwei GOPs. Wenn eine Verbindungsanforderung bezüglich eines alternativen Stroms von einer Clientvorrichtung kommend empfangen wird, wird eine gemessene Verzögerung zum Berechnen einer verbesserten Startzeit verwendet.
  • Besondere Ausführungsformen
  • Streaming Server empfangen Medienströme, wie z. B. Audio- und Videoströme von zugeordneten Kodierern und Inhaltsanbietern und senden die Medienströme an einzelne Vorrichtungen. Zum Schonen von Netzwerkressourcen werden Medienströme typischerweise kodiert, um eine effiziente Übertragung zu ermöglichen.
  • Ein Mechanismus zum Kodieren von Medienströmen, wie z. B. Videoströmen, umfasst die Verwendung von Schlüsselframes und prädiktiven Frames. Ein Schlüsselframe enthält im Wesentlichen sämtliche Daten, die zum Abspielen eines Videoframes benötigt werden. Ein prädiktives Frame enthält jedoch nur Änderungsinformationen oder Deltainformationen zwischen sich selbst und einem Referenz-Schlüsselframe. Folglich sind prädiktive Frames typischerweise viel kleiner als Schlüsselframes. Generell wird jedes Frame, das im Wesentlichen für sich allein dargestellt werden kann, hier als ein Schlüsselframe bezeichnet. Jedes Frame, das sich auf Informationen von einem Referenz-Schlüsselframe stützt, wird hier als ein prädiktives Frame bezeichnet. In vielen Fällen werden viele prädiktive Frames für jedes übertragene Schlüsselframe übertragen. Moving Picture Experts Group (MPEG) bietet einige Beispiele für Kodiersysteme, bei denen Schlüsselframes und prädiktive Frames verwendet werden. MPEG und seine verschiedenen Verkörperungen verwenden I-Frames als Schlüsselframes und B-Frames und P-Frames als prädiktive Frames.
  • Ein Streaming Server weist einen Puffer zum Halten von Medienströmen auf, die von vorgeschalteten Quellen kommend empfangen werden. Bei einigen Beispielen weist ein Streaming Server einen First-in-First-out-(FIFO-)Puffer pro Kanal für empfangenes Video auf. Wenn eine Clientvorrichtung einen bestimmten Medienstrom von dem Streaming Server anfordert, beginnt der Streaming Server mit dem Liefern des Medienstroms, typischerweise durch Liefern des ältesten Frames, das sich noch in dem Puffer befindet. Eine Clientvorrichtung kann einen Medienstrom anfordern, wenn ein Benutzer einen Kanal wechselt, eine Anwendung startet oder eine andere Aktion durchführt, die eine Anforderung bezüglich eines bestimmten Medienstroms oder Kanals initiiert. Aufgrund des relativ seltenen Auftretens von Schlüsselframes in einem Videostrom wird die Clientvorrichtung höchstwahrscheinlich damit beginnen, prädiktive Frames zu empfangen. Prädiktive Frames stützen sich beim Liefern eines klaren Bilds auf Informationen von einem Referenz-Schlüsselframe. Die Clientvorrichtung kann dann entweder damit beginnen, unter Verwendung von Informationen von prädiktiven Frames ein verzerrtes Bild darzustellen oder kann einfach die prädiktiven Frames fallen lassen. In beiden Fällen ist das Erlebnis für den Benutzer mangelhaft, da die Clientvorrichtung ein unverzerrtes Bild erst dann darstellen kann, wenn ein Schlüsselframe empfangen wird. Je nach Kodierschema kann eine beträchtliche Anzahl von prädiktiven Frames empfangen werden, bevor ein Schlüsselframe empfangen wird.
  • Um die große Vielzahl von mobilen Vorrichtungen zu unterstützen, kodieren Videosender typischerweise jede Live-Einspeisung in mehrere verschiedene Ströme mit unterschiedlichen Bitraten, Frameraten und Bildschirmauflösungen. Bei modernen Verteilungssystemen können Clientvorrichtungen einen Vorteil aus dem Zugriff auf mehrere Ströme ziehen und adaptiv Ströme umschalten, wenn dies zum Einstellen auf eine zur Verfügung stehende Bandbreite, Verarbeitungsleistung etc. erforderlich ist. Es wird jedoch erkannt, dass Schlüsselframes nicht über die mehreren verschiedenen Ströme synchronisiert sind. Ferner driftet die Positionierung von Schlüsselframes mit der Zeit ab. Folglich können Stromveränderungen häufig für einen Benutzer sehr störend sein, da es beträchtliche Zeitverschiebungen beim Übergang von einem Strom zu einem anderen Strom mit einer anderen Bitrate, Framerate etc. geben kann. Es ist wünschenswert, die Umschaltung für den Benutzer nahtlos durchzuführen, da es sehr störend ist, wenn es einen beträchtlichen Zeitsprung bei der Stromumschaltung gibt.
  • Folglich kann dann, wenn eine Vorrichtung anfangs eine Stromumschaltung anfordert, eine Anzahl von abträglichen Effekten auftreten. Ein Benutzer kann eine beträchtliche Verzögerung erleben, bevor der Benutzer ein genaues Bild sehen kann. Alternativ kann der Benutzer einen Zeitsprung wahrnehmen, wenn ein Live-Encoder versucht, das nächstliegende Schlüsselframe bei einer Stromumschaltung zu finden. Bei anderen Beispielen kann ein Benutzer sowohl eine Verzögerung beim Sehen eines genauen Bildes als auch einen Zeitsprung erleben. Bei den Techniken der vorliegenden Erfindung wird erkannt, dass die Übertragung von unausgerichteten Schlüsselframes und/oder unbrauchbaren prädiktiven Frames bei einer Verbindungsanforderung ein Faktor ist, der zu den abträglichen Effekten beiträgt.
  • Bei verschiedenen Ausführungsformen haben ein Live-Encoder und/oder ein Streaming Server die Aufgabe, den Ausgang über verschiedene Ströme auszurichten. Bei bestimmten Ausführungsformen werden Schlüsselframes für sämtliche verschiedenen Ströme zeitlich ausgerichtet. Bei verschiedenen Ausführungsformen besteht Bedarf an einer bestimmten Art von Verarbeitung, mit der die schlechte Ausrichtung kompensiert werden kann.
  • Aufgrund des Implementierens eines Algorithmus, der adaptiv Zeitversätze für Schlüsselframes über mehrere Varianten berechnet, brauchen die Eingangseinspeisungen nicht perfekt ausgerichtet zu sein. Solange der maximale Abstand zwischen zwei aufeinanderfolgenden Schlüsselframes kleiner ist als die Hälfte der GOP-Größe, kann der Algorithmus den korrekten Einstellwert finden. Durch Anwenden dieses Algorithmus auf den Ausgang von Live-Encodern können Stromumschaltungen für den Endbenutzer vollkommen nahtlos erfolgen. Dadurch wird das Benutzererlebnis verbessert und wird die Nutzung der zur Verfügung stehenden Bandbreite maximiert.
  • Bei vielen bekannten Implementierungen sind Streaming Server dazu vorgesehen, große Mengen von Daten von einer Vielzahl von Quellen auf so effiziente Weise wie möglich zu einer Vielzahl von Clientvorrichtungen zu liefern. Folglich führen Streaming Server häufig nur in geringem Maße ein Verarbeitung von Medienströmen durch, da eine Verarbeitung einen Ablauf signifikant verlangsamen kann. Bei den Techniken und Mechanismen wird jedoch erkannt, dass es vorteilhaft ist, durch Hinzufügen eines zusätzlichen Maßes an Verarbeitung mehr Intelligenz bei den Streaming Servern zu bewirken. Durch Verwenden eines intelligenten schlüsselframeempfindlichen Puffers in einem Streaming Server kann ein Anfangs-Schlüsselframe zu dem Benutzer geliefert werden, wenn eine Clientvorrichtung eine Verbindung anfordert. Die Bandbreite wird besser ausgenutzt, die Wartezeit wird verkürzt und das Benutzererlebnis wird verbessert.
  • Bei verschiedenen Ausführungsformen berechnet ein Streaming Server Zeitversätze für Schlüsselframes, identifiziert Schlüsselframes in Medienströmen, die in einem oder mehreren Puffern gehalten werden. Wenn eine Verbindungsanforderung von einer Clientvorrichtung kommend empfangen wird, wird ein Schlüsselframe selbst dann zu der Clientvorrichtung geliefert, wenn das Schlüsselframe nicht das erste zur Verfügung stehende Frame ist. Das heißt, dass ein Schlüsselframe selbst dann geliefert wird, wenn ein oder mehr prädiktive Frames vor dem Schlüsselframe zur Verfügung stehen. Dies ermöglicht es einer Clientvorrichtung, ein Frame zu empfangen, das sie ohne Verzerrung darstellen kann. Nachfolgende prädiktive Frames können dann das Schlüsselframe referenzieren. Verbindungsanforderungen, wie z. B. Kanalumschaltungen oder anfängliche Kanalanforderungen werden auf effiziente Weise verwaltet. Obwohl es immer noch eine Verzögerung bei der Übertragung und eine Verzögerung bei der Pufferung und Dekodierung an einer Clientvorrichtung geben kann, wird eine Verzögerung wegen des Empfangs eines unbrauchbaren prädiktiven Frames verringert, da ein Streaming Server anfangs ein brauchbares Schlüsselframe zu einer Clientvorrichtung liefert.
  • 1 zeigt eine schematische Darstellung eines Beispiels für eine Sequenz von Frames. Bei verschiedenen Ausführungsformen wird eine Sequenz von Frames, wie z. B. eine Sequenz von Videoframes, an einem Streaming Server empfangen. Bei einigen Ausführungsformen ist die Sequenz von Videoframes einem bestimmten Kanal zugeordnet, und ein Puffer ist jedem Kanal zugewiesen. Andere Sequenzen von Videoframes können in anderen Puffern gehalten sein, die anderen Kanälen zugewiesen sind. Bei anderen Beispielen werden Puffer oder Teile von Puffern für separate Videoströme und separate Kanäle aufrechterhalten. Bei bestimmten Ausführungsformen wird ein Schlüsselframe 101 frühzeitig entlang einer Zeitachse 141 empfangen. Ein Beispiel für ein Schlüsselframe 101 ist ein I-Frame, das im Wesentlichen sämtliche Daten aufweist, die eine Clientvorrichtung benötigt, um ein Videoframe darzustellen. Dem Schlüsselframe 101 folgen prädiktive Frames 103, 105, 107, 109, 111, 113, 115 und 117.
  • Bei verschiedenen Ausführungsformen wird eine Sequenz von unterschiedlichen Frametypen, die mit einem Schlüsselframe beginnt und unmittelbar vor einem nachfolgenden Schlüsselframe endet, hier als eine Gruppe von Bildern (GOP) bezeichnet. Das Schlüsselframe 101 und die prädiktiven Frames 103, 105, 107, 109, 111, 113, 115 und 117 sind einer GOP 133 zugeordnet und werden in einem Puffer 131 oder einem Pufferteil 131 gehalten. Eine Kodieranwendung bestimmt typischerweise die Länge und die Frametypen, die in einer GOP enthalten sind. Bei verschiedenen Ausführungsformen liefert ein Kodierer die Sequenz von Frames zu dem Streaming Server. Bei einigen Beispielen ist eine GOP 15 Frames lang und weist ein Schlüsselframe, wie z. B. ein I-Frame, auf, dem prädiktive Frames, wie z. B. B- und P-Frames folgen. Eine GOP kann eine Vielzahl von Längen aufweisen. Eine effiziente Länge für eine GOP wird typischerweise auf der Basis von Charakteristiken des Videostroms und Bandbreiteneinschränkungen bestimmt. Zum Beispiel kann eine Low-Motion-Szene von einer längeren GOP mit mehr prädiktiven Frames profitieren. Low-Motion-Szenen benötigen nicht so viele Schlüsselframes. Eine High-Motion-Szene kann von einer kürzeren GOP profitieren, da mehr Schlüsselframes benötigt werden können, um ein gutes Benutzererlebnis zu bieten.
  • Bei verschiedenen Ausführungsformen folgt der GOP 133 eine GOP 137, die in einem Puffer 135 oder Pufferteil 135 gehalten wird. Die GOP 137 weist ein Schlüsselframe 119 auf, dem prädiktive Frames 121, 123, 125, 127, 129, 131, 133 und 135 folgen. Bei einigen Beispielen ist ein Puffer, der zum Halten der Sequenz von Frames verwendet wird, ein First-in-First-out-(FIFO-)Puffer. Wenn neue Frames empfangen werden, werden die ältesten Frames aus dem Puffer entfernt.
  • Wenn sich ein Client 151 verbindet, empfängt der Client anfangs das prädiktive Frame 105, dem die prädiktiven Frames 107, 109, 111, 113, 115 und 117 folgen. Der Client 151 empfängt insgesamt 7 prädiktive Frames, die nicht korrekt dekodiert werden können. In einigen Fällen werden die 7 prädiktiven Frames von einem Client einfach fallen gelassen. Erst wenn 7 prädiktive Frames empfangen worden sind, empfängt der Client 151 ein Schlüsselframe 119. Wenn sich ein Client 153 verbindet, empfängt der Client anfangs das prädiktive Frame 109, dem die prädiktiven Frames 111, 113, 115 und 117 folgen. Der Client 153 empfängt insgesamt 5 prädiktive Frames, die nicht korrekt dekodiert werden können. In einigen Fällen werden die 5 prädiktiven Frames von einem Client einfach fallen gelassen. Erst wenn 5 prädiktive Frames empfangen worden sind, empfängt der Client 153 ein Schlüsselframe 119. Wenn sich ein Client 155 verbindet, empfängt der Client anfangs das prädiktive Frame 121, dem prädiktive Frames 123, 125, 127, 129, 131, 133 und 135 folgen. Der Client 155 empfängt insgesamt 8 prädiktive Frames, die nicht korrekt dekodiert werden können. In einigen Fällen werden die 8 prädiktiven Frames von einem Client einfach fallen gelassen. Erst wenn 8 prädiktive Frames empfangen worden sind, empfängt der Client 155 ein Schlüsselframe.
  • Ein Übertragen von prädiktiven Frames dann, wenn ein Client eine Verbindung anfordert, ist ineffizient und trägt zu einem mangelhaften Benutzererlebnis bei. Folglich wird bei den Techniken nach der vorliegenden Erfindung in Betracht gezogen, anfangs ein synchronisiertes Schlüsselframe zu einem Client zu liefern, wenn ein Client einen neuen Strom anfordert.
  • 2 zeigt eine schematische Darstellung eines weiteren Beispiels für eine Sequenz von Frames. Bei verschiedenen Ausführungsformen wird eine Sequenz von Frames, wie z. B. eine Sequenz von Videoframes, an einem Streaming Server empfangen. Bei einigen Ausführungsformen ist die Sequenz von Videoframes einem bestimmten Kanal zugeordnet, und ein Puffer ist jedem Kanal zugewiesen. Andere Sequenzen von Videoframes können in anderen Puffern gehalten sein, die anderen Kanälen zugewiesen sind. Bei anderen Beispielen werden Puffer oder Teile von Puffern für separate Videoströme und separate Kanäle aufrechterhalten. Bei bestimmten Ausführungsformen wird ein Schlüsselframe 201 frühzeitig entlang einer Zeitachse 241 empfangen. Ein Beispiel für ein Schlüsselframe 201 ist ein I-Frame, das im Wesentlichen sämtliche Daten aufweist, die eine Clientvorrichtung benötigt, um ein Videoframe darzustellen. Dem Schlüsselframe 201 folgen prädiktive Frames 203, 205, 207, 209, 211, 213, 215 und 217.
  • Bei verschiedenen Ausführungsformen wird eine Sequenz von unterschiedlichen Frametypen, die mit einem Schlüsselframe beginnt und unmittelbar vor einem nachfolgenden Schlüsselframe endet, hier als eine Gruppe von Bildern (GOP) bezeichnet. Das Schlüsselframe 201 und die prädiktiven Frames 203, 205, 207, 209, 211, 213, 215 und 217 sind einer GOP 233 zugeordnet und werden in einem Puffer 231 oder einem Pufferteil 231 gehalten. Eine Kodieranwendung bestimmt typischerweise die Länge und die Frametypen, die in einer GOP enthalten sind. Bei verschiedenen Ausführungsformen liefert ein Kodierer die Sequenz von Frames zu dem Streaming Server. Bei einigen Beispielen ist eine GOP 15 Frames lang und weist ein Schlüsselframe, wie z. B. ein I-Frame, auf, dem prädiktive Frames, wie z. B. B- und P-Frames folgen. Eine GOP kann eine Vielzahl von Längen aufweisen. Eine effiziente Länge für eine GOP wird typischerweise auf der Basis von Charakteristiken des Videostroms und Bandbreiteneinschränkungen bestimmt. Zum Beispiel kann eine Low-Motion-Szene von einer längeren GOP mit mehr prädiktiven Frames profitieren. Low-Motion-Szenen benötigen nicht so viele Schlüsselframes. Eine High-Motion-Szene kann von einer kürzeren GOP profitieren, da mehr Schlüsselframes benötigt werden können, um ein gutes Benutzererlebnis zu bieten.
  • Bei verschiedenen Ausführungsformen folgt der GOP 233 eine GOP 237, die in einem Puffer 235 oder Pufferteil 235 gehalten wird. Die GOP 237 weist ein Schlüsselframe 219 auf, dem prädiktive Frames 221, 223, 225, 227, 229, 231, 233 und 235 folgen. Bei einigen Beispielen ist ein Puffer, der zum Halten der Sequenz von Frames verwendet wird, ein First-in-First-out-(FIFO-)Puffer. Wenn neuere Frames empfangen werden, wird eine entsprechende Anzahl von älteren Frames aus dem Puffer entfernt.
  • Wenn sich ein Client 251 verbindet, empfängt der Client anfangs kein prädiktives Frame mehr. Bei verschiedenen Ausführungsformen empfängt der Client 251 das früheste zur Verfügung stehende Schlüsselframe. In einigen Fällen kann das früheste Schlüsselframe, das in dem Puffer noch zur Verfügung steht, das Schlüsselframe 201 sein. Der Client braucht keine Frames fallen zu lassen oder verzerrte Bilder darzustellen. Stattdessen empfängt der Client 251 unverzüglich ein Schlüsselframe, das im Wesentlichen sämtliche Informationen aufweist, die benötigt werden, um mit dem Abspielen des Stroms zu beginnen. Auf im Wesentlichen gleiche Weise empfängt dann, wenn ein Client 253 eine Verbindung anfordert, der Client anfangs das Schlüsselframe 201. Wenn das Schlüsselframe 201 nicht mehr in dem Puffer zur Verfügung steht, empfängt ein sich verbindender Client das Schlüsselframe 219, selbst wenn das bedeutet, dass die prädiktiven Frames 203, 205, 207, 209, 211, 213, 215 und 217 übersprungen werden. Zum Beispiel kann sich ein Client 255 zu einem Zeitpunkt verbinden, zu dem das prädiktive Frame 211 geliefert werden würde, der Streaming Server identifiziert jedoch auf intelligente Weise das nächste zur Verfügung stehende Schlüsselframe als das Schlüsselframe 219 und liefert dieses Schlüsselframe 219 zu dem Client 255. Es werden keine prädiktiven Frames zu Beginn einer Verbindungsanforderung auf ineffiziente Weise übertragen. Bei verschiedenen Ausführungsformen werden anfangs nur Schlüsselframes auf Verbindungsanforderungen hin geliefert.
  • Bei verschiedenen Ausführungsformen führt ein Streaming Server eine Verarbeitung an jedem empfangenen Frame durch, um festzustellen, welche Frames Schlüsselframes sind. Das Identifizieren von Schlüsselframes kann das Dekodieren oder teilweise Dekodieren eines Frames umfassen. Bei anderen Beispielen können Schlüsselframes auf der Basis der Größe des Frames identifiziert werden, da Schlüsselframes typischerweise viel größer sind als prädiktive Frames. Bei anderen Beispielen wird nur ein Teilsatz von Frames dekodiert oder teilweise dekodiert. Bei noch weiteren Beispielen bestimmt der Streaming Server dann, wenn ein Schlüsselframe bestimmt worden ist, die GOP-Größe N und identifiziert jedes Nte Frame, das einem Schlüsselframe als ein nachfolgende Schlüsselframe folgt. Eine Vielzahl von Vorgehensweisen kann angewendet werden, um Schlüsselframes und prädiktive Frames zu bestimmen. Obwohl bei den Techniken der vorliegenden Erfindung effiziente Mechanismen zum Identifizieren von Schlüsselframes in Betracht gezogen werden, führt der Streaming Server ein bestimmtes Maß an zusätzlicher Verarbeitung durch.
  • Ferner kann der Streaming Server ein prädiktives Frame, wie z. B. das prädiktive Frame 213, zu einem bereits verbundenen Client liefern, während er ein Schlüsselframe 219 zu einem neuen Client liefert, der eine Verbindungsanforderung stellt. Dies kann zu einer geringfügigen, aber typischerweise kaum wahrnehmbaren zeitlichen Abweichung in den Medien führen, die von unterschiedlichen Clients betrachtet werden. Das heißt, dass ein erster Client die prädiktiven Frames 213, 215 und 217 empfangen kann, während ein zweiter Client das Schlüsselframe 219 und die prädiktiven Frames 221 und 223 empfangen kann. Bei den Techniken der vorliegenden Erfindung wird erkannt, dass diese Zeitverschiebung bei einem typischen Benutzererlebnis nicht störend ist, und der Streaming Server ist typischerweise in der Lage, das Liefern von unterschiedlichen Frames von einem Strom zu unterschiedlichen Clientvorrichtungen zu verwalten.
  • 3 zeigt ein Beispiel für ein Schlüsselframe, das mehreren Strömen zugeordnet ist. Drei Varianten eines Stroms, der Strömen r, b und g entspricht, sind vorgesehen. Die drei Varianten r, b und g entsprechen drei Einspeisungen mit unterschiedlichen Qualitäten (z. B. Bitraten). Die r-, b- und g-Marker sind Schlüsselframes auf einer Zeitachse. Bei bestimmten Ausführungsformen weist Variante r Schlüsselframe r1 301 auf, r2 311 und r3 321 auf. Variante b weist Schlüsselframe b1 303, b2 313 und b3 323 auf. Variante g weist Schlüsselframe g1 305, g2 315 und g3 325 auf. Bei verschiedenen Ausführungsformen sind die Schlüsselframes nicht perfekt synchronisiert, da sie nicht zeitlich ausgerichtet sind. Die Schlüsselframes können ferner abdriften, da das Kodieren für diese drei Ströme nicht perfekt synchronisiert ist.
  • Es sei darauf hingewiesen, dass eine Anzahl von anderen Frames zwischen Schlüsselframes vorhanden sein können. Aus Gründen der Klarheit sind jedoch nur Schlüsselframes gezeigt. Bei bestimmten Ausführungsformen es ist wünschenswert, Ströme durch Identifizieren von Schlüsselframes für jede Variante umzuschalten. Wenn das Abfragen bei T1 startet, sind die ersten detektierten Schlüsselframes r2 311, b2 313 und g2 315, die alle zu derselben GOP gehören. Wenn jedoch das Abfragen bei T2 startet, treten abträgliche Effekte beim Umschalten des Stroms auf, da die ersten detektierten Schlüsselframes r3 321, b2 313 und g2 315 sind. Das Schlüsselframe r2 311 fehlt, und die Schlüsselframes gehören zu unterschiedlichen GOPs.
  • Folglich wird bei den Techniken der vorliegenden Erfindung in Betracht gezogen, das Abfragen in der Mitte von zwei GOPs zu starten. Dadurch wird die Wahrscheinlichkeit erhöht, dass Schlüsselframes, die zu derselben GOP gehören, detektiert werden. Für jeden Startzeitpunkt Tx berechnet der Algorithmus einen Versatz d, der zu Tx addiert werden sollte, um eine geeignete Startposition für das Abfragen zu erhalten. In der Abbildung ist T2 + d = T3. Das heißt, dass dann, wenn wir T2 als Startzeitpunkt wählen, T2 mit d eingestellt wird, um T3 zwecks Erhalts eines verbesserten Startzeitpunkts zu erhalten.
  • Wenn die Schlüsselframes perfekt periodisch sind und einmal pro GOP-Intervall auftreten, wäre d für jeden Wert von T konstant. Dies ist häufig nicht der Fall, normalerweise erfolgt ein geringfügiges Abdriften (z. B. aufgrund von Runden etc. in dem Live-Encoder). Das heißt, dass d regelmäßig neu berechnet werden sollte, um das Abdriften in dem Live-Encoder zu justieren. Bei bestimmten Ausführungsformen wird d jede 3. Minute aktualisiert.
  • 4 zeigt eine schematische Darstellung eines Beispiels für ein Netzwerk, bei dem die Techniken der vorliegenden Erfindung genutzt werden können. Obwohl ein bestimmtes Beispiel dargestellt ist, das bestimmte Vorrichtungen zeigt, sei darauf hingewiesen, dass die Techniken der vorliegenden Erfindung auf eine Vielzahl von Streaming Servern und Netzwerken angewendet werden können. Bei verschiedenen Ausführungsformen können die Techniken der vorliegenden Erfindung an jedem Streaming Server angewendet werden, der einen Prozessor, einen Speicher und die Fähigkeit aufweist, Charakteristiken von Frames, wie z. B. den Frametyp, in einem Medienstrom zu identifizieren. Bei verschiedenen Ausführungsformen werden Videoströme von einem zugeordneten Kodierer zu einem Streaming Server geliefert, und dieser verwaltet Verbindungsanforderungen von Clientvorrichtungen, wie z. B. Computersystemen, Mobiltelefonen, persönlichen digitalen Assistenten, Videoempfängern und jeder anderen Vorrichtung, die die Fähigkeit besitzt, einen Videostrom zu dekodieren.
  • Bei verschiedenen Ausführungsformen wird ein Medieninhalt von einer Anzahl von unterschiedlichen Quellen 485 geliefert. Der Medieninhalt kann von Filmarchiven, Kabelgesellschaften, Film- und Fernsehstudios, kommerziellen und geschäftlichen Benutzern etc. zur Verfügung gestellt werden und auf einem Medien-Aggregationsserver 461 gehalten werden. Mechanismen zum Erhalten von Medieninhalt von einer großen Anzahl von Quellen zwecks Lieferung des Medieninhalts an mobile Vorrichtungen in Liveübertragungs-Streams werden hier als ein Medieninhalt-Aggregationsserver bezeichnet. Der Medieninhalt-Aggregationsserver 461 kann aus Gruppen von Servern gebildet sein, die sich in unterschiedlichen Rechenzentren befinden. Bei verschiedenen Ausführungsformen wird Inhalt, der zu einem Medien-Aggregationsserver 461 geliefert wird, in einer Vielzahl von unterschiedlichen Kodierformaten mit zahlreichen Video- und Audio-Codecs bereitgestellt. Ein Medieninhalt kann ferner über Satelliteneinspeisung 457 geliefert werden.
  • Eine Encoder Farm 471 ist der Satelliteneinspeisung 487 zugeordnet und kann ferner dem Medien-Aggregationsserver 461 zugeordnet sein. Die Encoder Farm 471 kann zum Verarbeiten von Medieninhalt von der Satelliteneinspeisung 487 sowie möglicherweise von dem Medien-Aggregationsserver 461 in potentiell zahlreiche Kodierformate verwendet werden. Der Medieninhalt kann ferner derart kodiert sein, dass er eine Vielzahl von Datenraten unterstützt. Der Medieninhalt von dem Medien-Aggregationsserver 461 und der Encoder Farm 471 wird als Live-Medium zu einem Streaming Server 475 geliefert. Bei verschiedenen Ausführungsformen konvertiert die Encoder Farm 471 Videodaten in Videoströme, wie z. B. MPEG-Videoströme mit Schlüsselframes und prädiktiven Frames.
  • Mögliche Clientvorrichtungen 401 umfassen persönliche digitale Assistenten (PDAs), Mobiltelefone, PC-Vorrichtungen, Computersysteme, Fernsehempfänger etc. Bei bestimmten Ausführungsformen sind die Clientvorrichtungen mit einem Mobilfunknetz verbunden, das von einem Mobilfunk-Dienstleistungsanbieter betrieben wird. Mobilfunkmasten bieten typischerweise Dienstleistungen in verschiedenen Gebieten. Alternativ kann die Clientvorrichtung mit einem drahtlosen lokalen Netzwerk (WLAN) oder einem anderen drahtlosen Netzwerk verbunden sein. Live-Medienströme, die über RTSP geliefert werden, werden auf einem von einer Vielzahl von drahtlosen Netzwerken übertragen und/oder gekapselt.
  • Bei bestimmten Ausführungsformen sind einige Clientvorrichtungen ferner über ein drahtloses Netzwerk mit einem Medieninhalt-Lieferserver 431 verbunden. Der Medieninhalt-Lieferserver 431 ist dazu ausgebildet, es einer Clientvorrichtung 401 zu ermöglichen, Funktionen im Zusammenhang mit dem Zugreifen auf Live-Medienströme auszuführen. Zum Beispiel ermöglicht es der Medieninhalt-Lieferserver einem Benutzer, ein Konto einzurichten, eine Session Identifier-Zuweisung durchzuführen, verschiedene Kanäle zu abonnieren, sich einzuloggen, auf Programmführerinformationen zuzugreifen und Informationen über Medieninhalt zu erhalten etc. Bei verschiedenen Ausführungsformen liefert der Medieninhalt-Lieferserver nicht den eigentlichen Medienstrom, sondern stellt nur Mechanismen zum Durchführen von Operationen, die mit dem Zugreifen auf Medien in Zusammenhang stehen, zur Verfügung.
  • Bei weiteren Ausführungen ist es möglich, dass der Medieninhalt-Lieferserver ferner Medienclips, -dateien und -ströme zur Verfügung stellt. Der Medieninhalt-Lieferserver ist einem Führergenerator 451 zugeordnet. Der Führergenerator 451 erhält Informationen von verschiedenartigen Quellen, einschließlich Inhaltsanbietern 481 und Medieninformationsquellen 483. Der Führergenerator 451 liefert Programmführer zu einer Datenbank 455 sowie zu dem Medieninhalt-Lieferserver 431, um diese Mobilvorrichtungen 401 zur Verfügung zu stellen. Der Medieninhalt-Lieferserver 431 ist ferner einer abstrakten Kaufmaschine 441 zugeordnet. Die abstrakte Kaufmaschine 441 hält Abonnementinformationen, die verschiedenen Clientvorrichtungen 401 zugeordnet sind. Zum Beispiel verfolgt die abstrakte Kaufmaschine 441 Käufe von Premiumpaketen.
  • Obwohl die verschiedenen Vorrichtungen, wie z. B. der Führergenerator 451, die Datenbank 455, der Medien-Aggregationsserver 461 etc. als separate Entitäten gezeigt sind, sei darauf hingewiesen, dass verschiedene Vorrichtungen auf einem einzelnen Server zusammengeschlossen sein können. Alternativ kann jede Vorrichtung in mehreren Servern oder Gruppen von Servern enthalten sein. Bei verschiedenen Ausführungsformen sind der Führergenerator 451, die Datenbank 455, der Medien-Aggregationsserver 461, die Encoder Farm 471, der Medieninhalt-Lieferserver 431, die abstrakte Kaufmaschine 441 und der Streaming Server 475 in einer Entität enthalten, die hier als ein Medieninhalt-Liefersystem bezeichnet wird.
  • 5 zeigt eine schematische Darstellung eines Beispiels für einen Streaming Server 521. Bei verschiedenen Ausführungsformen weist der Streaming Server 521 einen Prozessor 501, einen Speicher 503, Puffer 531, 533, 535 und 537 und eine Anzahl von Schnittstellen auf. Bei einigen Beispielen umfassen die Schnittstellen eine Kodierer-Schnittstelle 511, eine Medien-Aggregationsserver-Schnittstelle 513 und eine Clientvorrichtungs-Schnittstelle 541. Die Kodierer-Schnittstelle 511 und die Medien-Aggregationsserver-Schnittstelle 513 haben die Wirkung, Medienströme, wie z. B. Videoströme, zu empfangen. Bei einigen Beispielen werden Hunderte von Videoströmen, die Hunderten von Kanälen zugeordnet sind, kontinuierlich empfangen und in Puffern 531, 533, 535 und 537 gehalten, bevor sie über die Clientvorrichtungs-Schnittstelle 541 zu Clientvorrichtungen geliefert werden.
  • Bei verschiedenen Ausführungsformen verwaltet der Streaming Server 521 zahlreiche Verbindungsanforderungen von verschiedenen Clientvorrichtungen. Verbindungsanforderungen können aus einer Vielzahl von Benutzeraktionen resultieren, wie z. B. einer Kanalumschaltung, einem Anwendungsstart, einem Programmkauf etc. In einigen Fällen liefert ein Streaming Server 521 einfach das erste zur Verfügung stehende Frame, dem in Reaktion auf eine Verbindungsanforderung durch eine Clientvorrichtung nachfolgende Frames folgen. Bei den Techniken der vorliegenden Erfindung wird jedoch ein intelligenter Streaming Server, der Schlüsselframes in Videoströmen identifiziert und anfangs ein Schlüsselframe zu einer Clientvorrichtung liefert, in Betracht gezogen. Das Schlüsselframe weist im Wesentlichen sämtliche Informationen auf, die eine Clientvorrichtung benötigt, um mit dem Darstellen eines korrekten Videoframes zu beginnen.
  • Bei verschiedenen Ausführungsformen werden die Puffer 531, 533, 535 und 537 auf einer Pro-Kanal-Basis zur Verfügung gestellt. Bei anderen Beispielen werden Puffer auf einer Pro-GOP-Basis zur Verfügung gestellt. Obwohl die Puffer 531, 533, 535 und 537 als diskrete Entitäten dargestellt sind, sei darauf hingewiesen, dass die Puffer 531, 533, 535 und 537 einzelne physische Puffer, Teile von Puffern oder Kombinationen aus mehreren physischen Puffern sein können. Bei einigen Beispielen werden virtuelle Puffer verwendet, und Teile eines Speicherplatzes werden je nach Bedarf bestimmten Kanälen zugewiesen.
  • Obwohl ein bestimmter Streaming Server 521 beschrieben wird, sei darauf hingewiesen, dass eine Vielzahl von alternativen Ausgestaltungen möglich ist. Zum Beispiel sind einige Module, wie z. B. eine Medien-Aggregationsserver-Schnittstelle, möglicherweise nicht bei jedem Server erforderlich. Alternativ können die mehreren Clientvorrichtungs-Schnittstellen für unterschiedliche Typen von Clientvorrichtungen vorgesehen sein. Eine Vielzahl von Konfigurationen ist möglich.
  • 6 zeigt ein Ablaufdiagramm mit Darstellung eines Beispiels für eine Verarbeitung an einem Streaming Server. Bei 601 werden Medienströme empfangen. Bei verschiedenen Ausführungsformen werden Medienströme kontinuierlich an einem Streaming Server empfangen. Bei 603 werden Medienströme in mehreren Puffern gehalten. Bei 605 werden Schlüsselframes in Medienströmen identifiziert. Bei einigen Beispielen kann das Identifizieren von Schlüsselframes das Bestimmen des Video-Codec, der GOP-Größe und/oder der Framegröße und das Durchführen eines Dekodierens oder teilweisen Dekodierens von Frames umfassen. Ein Streaming Server kann in der Lage sein, Schlüsselframes durch Identifizieren des Beginns einer GOP und der GOP-Größe und Markieren jedes Beginns einer GOP als ein Schlüsselframe zu bestimmen. Ein Streaming Server kann ferner größere Frames als Schlüsselframes identifizieren.
  • Eine teilweises Dekodieren oder vollständiges Dekodieren kann ebenfalls angewendet werden. Bei 607 wird eine Verbindungsanforderung von einer Clientvorrichtung kommend empfangen. Bei 609 wird ein Schlüsselframe, das anfangs zu der Clientvorrichtung geliefert wird, identifiziert. Bei einigen Beispielen ist das identifizierte Schlüsselframe das früheste Schlüsselframe für den angeforderten Kanal, das in einem Puffer für den Kanal zur Verfügung steht. Bei 611 werden das Schlüsselframe und nachfolgende prädiktive und Schlüsselframes zu der Clientvorrichtung 611 gesendet.
  • 7 zeigt ein Ablaufdiagramm mit Darstellung eines Beispiels für eine Verarbeitung an einer Clientvorrichtung. Bei einigen Beispielen ist eine Clientvorrichtung eine Mobilvorrichtung. Es sei jedoch darauf hingewiesen, dass eine Clientvorrichtung jede Vorrichtung sein kann, die einem Dekodierer zugeordnet ist und die in der Lage ist, ein Videoframe darzustellen. Das heißt, dass eine Clientvorrichtung ein Computersystem, eine tragbare Computervorrichtung, eine Spielvorrichtung, ein Mobiltelefon, ein Empfangsgerät etc. sein kann. Bei 701 wird eine Anforderung bezüglich eines Medienstroms empfangen. Bei verschiedenen Ausführungsformen kann die Anforderung auf der Clientvorrichtung das Ergebnis einer Benutzeraktion sein. Bei 703 sendet die Clientvorrichtung eine Verbindungsanforderung an den Streaming Server. Bei verschiedenen Ausführungsformen identifiziert die Verbindungsanforderung ein bestimmtes Programm oder einen bestimmten Kanal. Bei 705 wird ein Schlüsselframe von dem Streaming Server kommend empfangen. Bei verschiedenen Ausführungsformen empfängt die Clientvorrichtung das Schlüsselframe vor jedem anderen Frame. Bei 707 werden nachfolgende prädiktive Frames und Schlüsselframes von dem Streaming Server kommend empfangen. Bei 709 spielt die Clientvorrichtung den Medienstrom unter Verwendung des empfangenen Anfangs-Schlüsselframes ab. Bei einigen Beispielen weist die Clientvorrichtung einen Dekodierer auf, der den von dem Streaming Server kommenden Videostrom verarbeitet. Bei anderen Beispielen kann eine Dekodiervorrichtung zwischen der Clientvorrichtung und dem Streaming Server vorgesehen sein, und die Clientvorrichtung spielt einfach nur Videodaten ab.
  • Obwohl die Erfindung insbesondere mit Bezug auf spezifische Ausführungsformen dargestellt und beschrieben worden ist, erkennen Fachleute, dass Änderungen an der Form und den Details der offenbarten Ausführungsformen durchgeführt werden können, ohne dass dadurch vom Geist oder Umfang der Erfindung abgewichen wird. Die Erfindung muss daher so ausgelegt werden, dass sie sämtliche Varianten und Äquivalente umfasst, die in den wahren Geist und Umfang der vorliegenden Erfindung fallen.

Claims (20)

  1. System, das aufweist: eine Schnittstelle, die dazu ausgestaltet ist, eine Vielzahl von verschiedenen Medienströmen, die einer Vielzahl von Qualitätsniveaus entsprechen, für ein Stück Medieninhalt und eine Anforderung von einer Vorrichtung zum Umschalten von einem ersten verschiedenen Medienstrom zu einem zweiten verschiedenen Medienstrom zum Zeitpunkt Tx zu empfangen; einen Prozessor, der dazu ausgestaltet ist, einen Versatz d zu bestimmen, wobei d zum Modifizieren von Tx verwendet wird zum Bestimmen eines Startzeitpunkts für eine Schlüsselframe-Abfrage, wobei die Schlüsselframe-Abfrage das Identifizieren einer Vielzahl von Schlüsselframes für die Vielzahl von verschiedenen Medienströme umfasst.
  2. System nach Anspruch 1, bei dem eine Vielzahl von Versätzen für jeden einer Vielzahl von möglichen Startzeitpunkten für eine Stromumschaltung berechnet wird.
  3. System nach Anspruch 2, bei dem die Vielzahl von Versätzen alle paar Minuten neu berechnet wird.
  4. System nach Anspruch 3, bei dem die Vielzahl von Versätzen auf der Basis des Maßes an Ansteuerung in einem Live-Encoder neu berechnet wird.
  5. System nach Anspruch 1, bei dem eine Schlüsselframe-Abfrage zu einem Zeitpunkt erfolgt, der im Wesentlichen in der Mitte zwischen den Startpunkten von zwei Gruppen von Bildern (GOPs) liegt.
  6. System nach Anspruch 1, bei dem dann, wenn T2 als ein Stromumschaltungszeitpunkt identifiziert wird, T2 mit D eingestellt wird, um T3 als einen verbesserten Startzeitpunkt für eine Schlüsselframe-Abfrage zu erhalten.
  7. System nach Anspruch 1, bei dem die Anforderung bezüglich einer Umschaltung von dem ersten verschiedenen Medienstrom zu dem zweiten verschiedenen Medienstrom an einem Streaming Server empfangen wird.
  8. System nach Anspruch 1, bei dem die Vielzahl von verschiedenen Medienströmen einer Vielzahl von Auflösungen für das gleiche Stück Medieninhalt entspricht.
  9. System nach Anspruch 1, bei dem der zweite verschiedene Medienstrom zu einer anderen Vorrichtung gesendet wird als der erste verschiedene Medienstrom.
  10. Verfahren, das umfasst: Empfangen einer Vielzahl von verschiedenen Medienströmen, die einer Vielzahl von Qualitätsniveaus entsprechen, für ein Stück Medieninhalt; Empfangen einer Anforderung von einer Vorrichtung zum Umschalten von einem ersten verschiedenen Medienstrom zu einem zweiten verschiedenen Medienstrom zu einem Zeitpunkt Tx; Bestimmen eines Versatzes d, wobei d zum Modifizieren von Tx verwendet wird, um einen Startzeitpunkt für eine Schlüsselframe-Abfrage zu bestimmen; und Identifizieren einer Vielzahl von Schlüsselframes in der Vielzahl von verschiedenen Medienströmen.
  11. Verfahren nach Anspruch 10, bei dem eine Vielzahl von Versätzen für jeden einer Vielzahl von möglichen Startzeitpunkten für eine Stromumschaltung berechnet wird.
  12. Verfahren nach Anspruch 11, bei dem die Vielzahl von Versätzen alle paar Minuten neu berechnet wird.
  13. Verfahren nach Anspruch 12, bei dem die Vielzahl von Versätzen auf der Basis des Maßes an Ansteuerung in einem Live-Encoder neu berechnet wird.
  14. Verfahren nach Anspruch 10, bei dem eine Schlüsselframe-Abfrage zu einem Zeitpunkt erfolgt, der im Wesentlichen in der Mitte zwischen den Startpunkten von zwei Gruppen von Bildern (GOPs) liegt.
  15. Verfahren nach Anspruch 10, bei dem dann, wenn T2 als ein Stromumschaltungszeitpunkt identifiziert wird, T2 mit D eingestellt wird, um T3 als einen verbesserten Startzeitpunkt für eine Schlüsselframe-Abfrage zu erhalten.
  16. Verfahren nach Anspruch 10, bei dem die Anforderung bezüglich einer Umschaltung von dem ersten verschiedenen Medienstrom zu dem zweiten verschiedenen Medienstrom an einem Streaming Server empfangen wird.
  17. Verfahren nach Anspruch 10, bei dem die Vielzahl von verschiedenen Medienströmen einer Vielzahl von Auflösungen für das gleiche Stück Medieninhalt entspricht.
  18. Verfahren nach Anspruch 10, bei dem der zweite verschiedene Medienstrom zu einer anderen Vorrichtung gesendet wird als der erste verschiedene Medienstrom.
  19. Einrichtung, die aufweist: eine Vorrichtung zum Empfangen einer Vielzahl von verschiedenen Medienströmen, die einer Vielzahl von Qualitätsniveaus entsprechen, für ein Stück Medieninhalt; eine Vorrichtung zum Empfangen einer Anforderung von einer Vorrichtung zum Umschalten von einem ersten verschiedenen Medienstrom zu einem zweiten verschiedenen Medienstrom zu einem Zeitpunkt Tx; eine Vorrichtung zum Bestimmen eines Versatzes d, wobei d zum Modifizieren von Tx verwendet wird, um einen Startzeitpunkt für eine Schlüsselframe-Abfrage zu bestimmen; und eine Vorrichtung zum Identifizieren einer Vielzahl von Schlüsselframes in der Vielzahl von verschiedenen Medienströmen.
  20. Einrichtung nach Anspruch 19, bei dem eine Vielzahl von Versätzen für jeden einer Vielzahl von möglichen Startzeitpunkten für eine Stromumschaltung berechnet wird.
DE112011103035T 2010-09-10 2011-09-08 Echtzeit-Schlüsselframe-Synchronisierung Withdrawn DE112011103035T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US38186510P 2010-09-10 2010-09-10
US61/381,865 2010-09-10
US13/227,364 US20120062794A1 (en) 2010-09-10 2011-09-07 Real-time key frame synchronization
US13/227,364 2011-09-07
PCT/US2011/050862 WO2012033935A1 (en) 2010-09-10 2011-09-08 Real-time key frame synchronization

Publications (1)

Publication Number Publication Date
DE112011103035T5 true DE112011103035T5 (de) 2013-07-18

Family

ID=45806372

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011103035T Withdrawn DE112011103035T5 (de) 2010-09-10 2011-09-08 Echtzeit-Schlüsselframe-Synchronisierung

Country Status (4)

Country Link
US (1) US20120062794A1 (de)
DE (1) DE112011103035T5 (de)
GB (1) GB2498468A (de)
WO (1) WO2012033935A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10440076B2 (en) * 2015-03-10 2019-10-08 Mobitv, Inc. Media seek mechanisms
US10574717B1 (en) * 2016-06-29 2020-02-25 Amazon Technologies, Inc. Network-adaptive live media encoding system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006126260A1 (ja) * 2005-05-25 2006-11-30 Mitsubishi Denki Kabushiki Kaisha ストリーム配信システム
US8214516B2 (en) * 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
US20080181256A1 (en) * 2006-11-22 2008-07-31 General Instrument Corporation Switched Digital Video Distribution Infrastructure and Method of Operation
US8542705B2 (en) * 2007-01-23 2013-09-24 Mobitv, Inc. Key frame detection and synchronization
US10277956B2 (en) * 2007-10-01 2019-04-30 Cabot Communications Method and apparatus for streaming digital media content and a communication system
US20090106792A1 (en) * 2007-10-22 2009-04-23 Alcatel Lucent Method and apparatus for advertisement and content distribution with customized commercial insertion during channel change
US8700792B2 (en) * 2008-01-31 2014-04-15 General Instrument Corporation Method and apparatus for expediting delivery of programming content over a broadband network
US20100091888A1 (en) * 2008-10-13 2010-04-15 General Instrument Corporation Multi-Rate Encoder with GOP Alignment
US20100169303A1 (en) * 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming

Also Published As

Publication number Publication date
US20120062794A1 (en) 2012-03-15
GB2498468A (en) 2013-07-17
GB201305426D0 (en) 2013-05-08
WO2012033935A1 (en) 2012-03-15

Similar Documents

Publication Publication Date Title
US20190075342A1 (en) Codec techniques for fast switching
US10432982B2 (en) Adaptive bitrate streaming latency reduction
RU2652099C2 (ru) Устройство передачи, способ передачи, устройство приема и способ приема
DE112012002526B4 (de) Medieninhalt-Übertragungsverfahren und Übertragungsvorrichtung unter Verwendung desselben
US8949912B2 (en) ABR live to VOD system and method
DE60104013T2 (de) Transkodierung von progressiv-kodierten i-slice-aufgefrischten mpeg datenströmen für trickmodi
DE69814642T2 (de) Verarbeitung codierter videodaten
DE112011101911T5 (de) Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams
US20200045384A1 (en) Viewer importance adaptive bit rate delivery
DE112011103333T5 (de) Medienkonvergenzplattform
DE112012002159T5 (de) Kontextsensitive Client-Pufferschwellenwerte
DE60223483T2 (de) Verfahren zum aufzeichenen eines digitalen Rundfunkprogramms und zeitbasierter Wiedergabe eines aufgezeichneten Rundfunkprogramms und zugehörige Vorrichtung
DE112011101004T5 (de) Medienkonvergenzplattform
DE112011102878T5 (de) Nutzer- und Vorrichtungsauthentifizierung für Mediendienstleistungen
CN109792547B (zh) 将视频内容从服务器传送至客户端设备的方法
EP3493547A1 (de) Video-streaming-bereitstellung
DE112011101908T5 (de) Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms
DE112011102879T5 (de) Medienrechteverwaltung auf mehreren Geräten
WO2015162226A2 (en) Digital media splicing system and method
EP2315429A1 (de) Verfahren, Vorrichtung und System zur selektiven Ausgabe von Multimediainhalten
DE60130104T2 (de) System und verfahren zur sofortigen wiederholung mit mehreren perspektiven
EP3386194A1 (de) Verfahren zur bereitstellung von audiovisuellem inhalt und zugehörige vorrichtung
DE112012004994T5 (de) Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten
DE112011103035T5 (de) Echtzeit-Schlüsselframe-Synchronisierung
US10349105B2 (en) Channel change processing using stored content

Legal Events

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