DE102016006539A1 - Systeme und Verfahren zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen - Google Patents

Systeme und Verfahren zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen Download PDF

Info

Publication number
DE102016006539A1
DE102016006539A1 DE102016006539.7A DE102016006539A DE102016006539A1 DE 102016006539 A1 DE102016006539 A1 DE 102016006539A1 DE 102016006539 A DE102016006539 A DE 102016006539A DE 102016006539 A1 DE102016006539 A1 DE 102016006539A1
Authority
DE
Germany
Prior art keywords
video
stream
streams
video data
display
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.)
Pending
Application number
DE102016006539.7A
Other languages
English (en)
Inventor
Frederick P. Block
Eric Wogsberg
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.)
Jupiter Systems LLC
Original Assignee
Infocus 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 Infocus Corp filed Critical Infocus Corp
Publication of DE102016006539A1 publication Critical patent/DE102016006539A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/268Signal distribution or switching
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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
    • H04N21/44004Processing 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 involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/64Addressing
    • H04N21/6405Multicasting

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Die offenbarte Technologie betrifft das Ermöglichen eines reibungslose Wechselns zwischen komprimierten Video-Datenströmen. Sie betrifft insbesondere das zeitliche Planen von Wechseln zwischen komprimierten Video-Datenströmen, die in einer Anzeigefläche gezeigt werden sollen, so dass während eines Decodierens, Dekomprimierens und Pufferns eines ersten Video-Datenstroms zwecks Anzeige das Decodieren, Dekomprimieren und Puffern eines zweiten Video-Datenstroms bei einem vorbestimmten Zeitpunkt vor einem zeitlich geplanten Zeigen des zweiten Video-Datenstroms beginnt. Weiterhin betrifft sie das Umschalten von Puffern zwischen der Anzeige des ersten und zweiten Video-Datenstroms bei dem zeitlich geplanten Zeigen des zweiten Video-Datenstroms, was zu einer sofortigen verzögerungsfreien Anzeige des zweiten Video-Datenstroms führt. In einer Umsetzung umfasst das Umschalten zwischen den Puffern für die ersten und zweiten Video-Datenströme das Modifizieren der z-Anordnung von Anzeigeschichten, die den ersten und zweiten Video-Datenströmen entsprechen.

Description

  • GEBIET DER OFFENBARTEN TECHNOLOGIE
  • Die offenbarte Technologie betrifft allgemein das Multicaststreaming von Video-Datenstrom-Quellen und betrifft insbesondere das Beseitigen von Schaltverzögerungen zwischen Video-Datenströmen in einer Multicaststreaming-Umgebung.
  • HINTERGRUND
  • Der in diesem Abschnitt diskutierte Gegenstand sollte nicht allein infolge seiner Erwähnung in diesem Abschnitt als Stand der Technik angenommen werden. Analog sollte das in diesem Abschnitt erwähnte oder mit dem als Hintergrund dargestellten Gegenstand in Verbindung gebrachte Problem nicht als bereits im Stand der Technik erkannt angenommen werden. Der Gegenstand in diesem Abschnitt stellt lediglich unterschiedliche Vorgehensweisen dar, die für sich selbst genommen ebenfalls Umsetzungen der beanspruchten Technologie entsprechen können.
  • Multicaststreaming-Technologien betreffen die Übertragung von mehreren Video/Audio-Datenströmen zu einzelnen Clients. Jeder solche Datenstrom kann von einer anderen Video/Audio-Quelle stammen und kann zur Übertragung unterschiedliche Netzwerktechnologien nutzen, etwa Internet, Ethernet, Frame Relay, Faser, etc. Ein wesentlicher Nachteil solcher Systeme ist die Latenz, d. h. die erforderliche Bandbreite ist direkt proportional zur Anzahl an Video/Audio-Quellen, die streamen. Daher ist für das Durchführen von Video/Audio-Streaming hoher Qualität eine hohe Bandbreite erforderlich.
  • Das Problem der Latenz wird in Multicastingstreaming-Umgebungen, die ein sofortiges Umschalten zwischen verschiedenen komprimierten Video/Audio-Datenströmen erfordern, verschärft. Es wurden verschiedene Lösungen vorgeschlagen, um die Schaltverzögerung zwischen komprimierten Video/Audio-Datenströmen zu reduzieren. Diese Lösungen waren aber nicht restlos erfolgreich, da sie entweder den Clients zusätzlichen unerwünschten Rechenaufwand aufbürden oder auf ein Umschalten zwischen Datenströmen beschränkt sind, die von der gleichen Quelle stammen. Demgemäß sind neue technische Lösungen erforderlich, um die Beschränkungen des Stands der Technik zu überwinden.
  • In einer Multicastingstreaming-Umgebung ergibt sich die Möglichkeit, einen reibungslosen Wechsel zwischen mehreren komprimierten Video/Audio-Quellen durchzuführen, ohne dass zusätzliche Bandbreite erforderlich ist oder die Rechenressourcen der Clients belastet werden. Das Ergebnis könnte eine verbesserte Nutzererfahrung und -zufriedenheit sein.
  • ZUSAMMENFASSUNG
  • Die offenbarte Technologie betrifft das Ermöglichen eines reibungslosen Wechselns zwischen komprimierten Video-Datenströmen. Sie betrifft insbesondere die zeitliche Planung von Wechseln zwischen komprimierten Video-Datenströmen, die in einer Anzeigefläche gezeigt werden sollen, so dass während eines Decodierens, Dekomprimierens und Pufferns eines ersten Video-Datenstroms zwecks Anzeige das Decodieren, Dekomprimieren und Puffern eines zweiten Video-Datenstroms bei einem vorbestimmten Zeitpunkt vor einem geplanten Zeigen des zweiten Video-Datenstroms beginnt. Weiterhin betrifft sie das Umschalten von Puffern zwischen der Anzeige des ersten und zweiten Video-Datenstroms bei dem geplanten Zeigen des zweiten Video-Datenstroms, was zu einer sofortigen verzögerungsfreien Anzeige des zweiten Video-Datenstroms führt.
  • In einer Umsetzung umfasst das Umschalten zwischen den Puffern für den ersten und zweiten Video-Datenstrom ferner das Modifizieren eines z-Anordnens (so genanntes z-ordering) von Anzeigeschichten entsprechend dem ersten und zweiten Video-Datenstrom, wodurch eine Graphikkarte eine Anzeige bildet, die statt des ersten Video-Datenstroms den zweiten Video-Datenstrom sichtbar macht.
  • In einer anderen Umsetzung umfasst ein Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner ein Schicht-2-Umschalten der Lieferung des ersten und des zweiten Video-Datenstroms, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom zur Anzeige zu liefern.
  • In einer noch anderen Umsetzung umfasst ein Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner das Aktualisieren einer Video-Schaltmatrix, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom mit der Anzeige zu koppeln.
  • Ein anderes Merkmal der offenbarten Technologie ist das Bewerten eines zeitlichen Abstands zwischen Schlüsselbildern in dem zweiten Video-Datenstrom und das Wählen der vorbestimmten Zeit beruhend zumindest zum Teil auf dem zeitlichen Abstand.
  • Im Fall von mehreren Paaren von ersten und zweiten Video-Datenströmen umfasst die offenbarte Technologie das in eine Reihenfolge bringen von zeitlich geplanten Wechseln zwischen den ersten und zweiten Video-Datenströmen, um eine Anzahl von Video-Datenströmen zu reduzieren, die zwischen dem Decodieren des ersten und zweiten Video-Datenstroms gleichzeitig unterwegs sind.
  • Andere Aspekte und Vorteile der vorliegenden Erfindung sind bei Prüfen der Zeichnungen, der eingehenden Beschreibung und der Ansprüche, welche folgen, ersichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen bezeichnen in den gesamten verschiedenen Ansichten gleiche Bezugszeichen im Allgemeinen gleiche Teile. Die Zeichnungen sind ferner nicht unbedingt maßstabsgetreu, wobei stattdessen allgemein ein Schwerpunkt auf das Aufzeigen der Prinzipien der offenbarten Technologie gelegt wird. In der folgenden Beschreibung werden verschiedene Umsetzungen der offenbarten Technologie unter Verweis auf die folgenden Zeichnungen beschrieben, wobei:
  • 1 eine beispielhafte Multicaststreaming-Umgebung zeigt.
  • 2 ein Blockdiagramm eines beispielhaften Arbeitsflusses zeigt, bei dem die hierin offenbarten Technologien verwendet werden können.
  • 3 eine Umsetzung einer pseudosimultanen Verarbeitung von aktuellen und folgenden Video-Datenströmen in einem zeitversetzten Modus zeigt, um ein reibungsloses Wechseln zwischen komprimierten Video-Datenströmen zu bewirken.
  • 4 eine Umsetzung zum Bewerten eines zeitlichen Abstands zwischen Schlüsselbildern und zur zeitlichen Planung eines Umschaltens beruhend auf dem bewerteten zeitlichen Abstand zeigt.
  • 5 eine Umsetzung zum Modifizieren eines z-Anordnens unterschiedlicher komprimierter Video-Datenströme in einer Multicaststreaming-Umgebung ist, um ein sofortiges Umschalten zwischen den komprimierten Video-Datenströmen zu ermöglichen.
  • 6 ist ein repräsentatives Verfahren zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen.
  • 7 ist ein Blockdiagramm eines beispielhaften Computersystems zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen.
  • BESCHREIBUNG
  • Die folgende eingehende Beschreibung erfolgt mit Verweis auf die Figuren. Es werden beispielhafte Umsetzungen beschrieben, um die offenbarte Technologie zu veranschaulichen, nicht um ihren Schutzumfang zu beschränken, der durch die Ansprüche festgelegt ist. Der Durchschnittsfachmann wird eine Vielzahl von äquivalenten Varianten der anschließenden Beschreibung erkennen.
  • Terminologie
  • Wie hierin verwendet bezeichnet ein ”zweiter” oder ”folgender” Video-Datenstrom eine bestimmte Angabe, Einspeisung, ein bestimmtes Signal, einen bestimmten Vorgang oder Wert, der/die auf einen ”ersten” oder ”aktuellen” Vorgänger-Video-Datenstrom folgt, der aus einer Angabe, Einspeisung, einem Signal, Vorgang oder Wert bestehen kann. In einer Umsetzung wird ein ”zweiter” oder ”folgender” Video-Datenstrom nach einem ”ersten” oder ”aktuellen” Video-Datenstrom verarbeitet. In einer anderen Umsetzung wird ein ”zweiter” oder ”folgender” Video-Datenstrom gleichzeitig mit einem ”ersten” oder ”aktuellen” Video-Datenstrom verarbeitet. In einer noch anderen Umsetzung wird ein ”zweiter” oder ”folgender” Video-Datenstrom pseudosimultan oder pseudoparallel mit einem ”ersten” oder ”aktuellen” Video-Datenstrom verarbeitet, so dass die Verarbeitung des ”zweiten” oder ”folgenden” Video-Datenstroms nach einer vorbestimmten Zeitverzögerung relativ zum Einleiten der Verarbeitung des ”ersten” oder ”aktuellen” Video-Datenstroms beginnt, wobei der Begriff ”Verarbeitung” das Anzeigen eines bestimmten Video-Datenstroms umfasst. In einem pseudosimultanen Modus liegt zwischen dem Decodieren, Dekomprimieren, Puffern oder Anzeigen des ”ersten” oder ”aktuellen” Video-Datenstroms und dem Decodieren, Dekomprimieren, Puffern oder Anzeigen des ”zweiten” oder ”folgenden” Video-Datenstroms eine zeitliche Überschneidung vor, wobei das Decodieren, ein Umschaltbefehl zur Anzeige des ”zweiten” oder ”folgenden” Video-Datenstroms empfangen wird.
  • Wie hierin verwendet ”beruht” ein bestimmtes Signal, ein bestimmter Vorgang oder Wert auf einem Vorgängersignal, einem Vorgang oder Wert des Vorgängersignals, wobei der Vorgang oder Wert durch das bestimmte Signal, den bestimmten Vorgang oder Wert beeinflusst wird. Wenn ein dazwischentretendes Verarbeitungselement, ein dazwischentretender Verarbeitungsschritt oder Verarbeitungszeitraum vorliegt, kann das bestimmte Signal, der bestimmte Vorgang oder Wert immer noch auf dem Vorgängersignal, -vorgang oder -wert ”beruhen”. Wenn das dazwischentretende Verarbeitungselement oder der dazwischentretende Verarbeitungsschritt mehr als ein Signal, einen Vorgang oder Wert kombiniert, wird die Signalausgabe des Verarbeitungselements oder -schritts ”beruhend auf” jeweils den Signal-, Vorgangs- oder Werteingaben betrachtet. Wenn das bestimmte Signal, der bestimmte Vorgang oder Wert gleich dem Vorgängersignal, -vorgang oder -wert ist, liegt lediglich ein Entartungsfall vor, bei dem das bestimmte Signal, der bestimmte Vorgang oder Wert immer noch ”beruhend auf” oder ”abhängig von” dem Vorgängersignal, -vorgang oder -wert betrachtet wird. Das ”Ansprechverhalten” eines bestimmten Signals, Vorgangs oder Werts auf ein anderes Signal, einen anderen Vorgang oder Wert ist ähnlich definiert.
  • Einführung
  • Bestehende Multicaststreaming-Lösungen gehen das technische Problem von Schaltverzögerungen auf unterschiedlichste Weise an. Zum Minimieren der Unterbrechung bei Verwenden von H.264-komprimierten Video-Datenströmen zum Beispiel kann das maximale Intervall, bei dem I-Frames erzeugt werden, verringert werden. Bei einer solchen Vorgehensweise beträgt bei Erzeugen eines I-Frame mindestens einmal pro Sekunde die Zeitdauer, die zum Starten des Zeigens eines neuen Video-Datenstroms erforderlich ist, etwas mehr als eine Sekunde, mit einer mittleren Zeit von einer halben Sekunde. Das Problem bei dieser Vorgehensweise ist, dass ein häufiges Enden von I-Frames den Kompressionsbetrag des Video-Datenstroms verringert, was den Betrag der erforderlichen Bandbreite, die zu dessen Senden erforderlich ist, vergrößert. In einem anderen Beispiel unterstützen einige Video-Datenstrom-Quellen eine Forderung, die eine Übertragung eines Schlüsselbilds forciert. Diese Art von forcierter Forderung unterstützen aber nur wenige Video-Datenstrom-Quellen.
  • Die offenbarte Technologie löst das technische Problem einer sichtbaren Unterbrechung, die auf einem Videowand-Steuersystem bei Umschalten zwischen komprimierten Video-Datenströmen in einer sogenannten Touring-Anordnung sichtbar ist. Videowand-Steuersysteme, etwa das Canvas System von Jupiter Systems, bieten die Fähigkeit, in dem gleichen Videoanzeigefenster die Ausgabe von einer Reihe von Eingaben zu zeigen. Diese Fähigkeit wird als ”Touring” bezeichnet. Historisch verwenden diese Arten von Systemen häufig direkte und nicht komprimierte Videoeingänge, wechseln aber zunehmend zu komprimierten Eingängen in Video-Formaten wie etwa H.264, die über ein Netzwerk übertragen werden. Bei einem Touring-System erfordert ein Umschalten zwischen direkt verbundenen nicht komprimierten Eingängen typischerweise nur ein paar Bilder, in der Größenordnung von einer Zehntelsekunde – wie das Umschalten eines Senders bei einem Fernseher.
  • Bei Verwenden von komprimierten Eingängen, die über ein Netzwerk gesendet werden, bewirkt ein Umschalten zwischen Eingängen typischerweise eine Unterbrechung (von bis zu mehreren Sekunden) im Video-Datenstrom, was zu einem leeren oder eingefrorenen Bildschirm führt, während das System mit dem Decodieren des neuen Datenstroms beginnt. Die Ursache dieser Unterbrechung ist, dass die Kompressionstechniken, die für Video verwendet werden, nur ab und zu das Senden eines Video-Vollbilds (eines ”I-Frames oder ”Schlüsselbilds”) und dann das Senden nur von ”Delta”-Informationen (”P-Frames” oder ”B-Frames”) mit sich bringen, die nur unter Verwenden des zuletzt übertragenen I-Frame wieder zu einem Vollbild zusammengesetzt werden können. Bei Umschalten zu einem neuen Datenstrom kann die Anzeigeausgabe daher nicht fortfahren, bis in dem neuen Datenstrom ein I-Frame empfangen wird, und selbst dann kann es ein paar mehr Bilder dauern, bis die Decoderlogik eine gleichmäßige Videoausgabe erzeugen kann. Das Anzeigen eines leeren oder eingefrorenen Bildschirms kann die Nutzererfahrung signifikant mindern.
  • Die hierin vorgeschlagene technische Lösung umfasst das Verwenden eines zusätzlichen Satzes einer Decodierungslogik und eines Arbeitsspeichers, um in einer Multicaststreaming-Umgebung ein sofortiges Umschalten von einem Video-Datenstrom zu einem anderen zu bewirken. Insbesondere umfasst sie das Anlegen von Verarbeitungseinleitungszeitverzögerungen, um mehrere von Decodierungslogik- und Arbeitsspeichereinheiten pseudosimultan oder pseudoparallel oder gleichzeitig oder parallel zu verwenden, um aktuelle und folgende Video-Datenströme, die zu der gleichen Anzeige gerichtet werden, zu verarbeiten, so dass ein Decodieren eines folgenden Video-Datenstroms eingeleitet wird, bevor das Eintreten eines Umschaltens angesetzt ist.
  • In einer Umsetzung wird ein Touring-Zeitplan für ein Videowand-Steuersystem so festgelegt, dass statt des einfachen Stoppens der Verarbeitung eines aktuellen Datenstroms c und des Startens der Verarbeitung eines folgenden Video-Datenstroms Ss bei Zeitpunkt T die offenbarte Technologie eine Hintergrundverarbeitung des folgenden Video-Datenstroms Ss bei einem früheren Zeitpunkt T – t startet und dann bei Zeitpunkt T die Anzeige von dem aktuellen Datenstrom Sc zu dem folgenden Video-Datenstrom Ss umschaltet.
  • Die Hintergrundverarbeitung eines folgenden Video-Datenstroms umfasst das Zuweisen von datenstromspezifischen Verarbeitungsressourcen zu dem folgenden Video-Datenstrom, die den folgenden Video-Datenstrom decodieren und dekomprimieren und den verarbeiteten folgenden Video-Datenstrom in einem datenstromspezifischen Puffer für sofortiges Absenden des folgenden Video-Datenstroms während eines Umschaltens speichern. In einer Umsetzung wird dies durch Nutzen von Graphikbefehlen einer Graphikprozessoreinheit (GPU) erreicht, um eine Reihenfolge von Fensterschichten für die verschiedenen Video-Datenstroms in der Multicaststreaming-Umgebung festzulegen. Diese Reihenfolge, die als ”z-Reihenfolge” bezeichnet wird, ordnet ein zweites Fenster, in dem der folgende Video-Datenstrom angezeigt wird, hinter einem den aktuellen Datenstrom anzeigenden Fenster an. Eine solche Anordnung erzeugt die Multicaststreaming-Umgebung für ein sofortiges Umschalten ohne Unterbrechen der Anzeige des aktuellen Datenstroms.
  • Nach Verarbeiten des folgenden Video-Datenstroms und dessen Speichern in seinem datenstromspezifischen Puffer während der Anzeige des aktuellen Datenstroms kann ein Umschalten von dem aktuellen Datenstrom zu dem folgenden Video-Datenstrom mit minimaler oder keiner Schaltverzögerung nahtlos ausgeführt werden. In einer Umsetzung wird dies durch Ändern der z-Reihenfolge des zweiten Fensters erreicht, die es vor das erste, den aktuellen Datenstrom anzeigende Fenster treten lässt. Weiterhin plant die offenbarte Technologie etwaige Verarbeitungsressourcen von dem vorherigen aktuellen Datenstrom aus und löscht das den vorherigen aktuellen Datenstrom anzeigende erste Fenster.
  • Daher ist die offenbarte Technologie eine Verbesserung gegenüber aktuellen Verfahren zum Umschalten zwischen Video-Datenströmen in einer Touring-Anordnung, da es die sichtbare Unterbrechung bei Wechseln der Video-Datenströme beseitigt, mit allen Video-Datenstrom-Quellen arbeitet und keine häufige Übertragung von I-Frames erfordert.
  • Die offenbarte Technologie kann bei Anlagen wie etwa Network Operation Centers (NOC), Steuerzentren von Versorgungsbetrieben, Zentren für intelligentes Verkehrsmanagement, Prozesssteuerung, zivilen und militärischen Überwachungssystemen, Call-Centern, Finanzmanagement-Leitständen, Tagungsräumen und Videokonferenzräumen vorteilhaft genutzt werden.
  • Die offenbarte Technologie kann in unterschiedlicher Weise umgesetzt werden, einschließlich als Prozess, Vorrichtung, System, Einrichtung, Verfahren, maschinell lesbares Medium wie etwa ein maschinell lesbares Speichermedium, das maschinell lesbare Befehle oder Computerprogrammcode enthält, oder als Computerprogrammprodukt, das ein auf einem Computer nutzbares Medium mit einem darin verkörperten maschinell lesbaren Programmcode umfasst.
  • Eine nähere Beschreibung von Umsetzungen der offenbarten Technologie wird mit Verweis auf 17 VORGESEHEN.
  • Multicaststreaming-Umgebung
  • Wir beschreiben ein System und verschiedene Umsetzungen zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen. Das System und die Prozesse werden unter Verweis auf 1 beschrieben, die ein Schaubild auf Architekturebene eines Systems gemäß einer Umsetzung zeigt. Da 1 ist Architektur-Schaubild ist, sind bestimmte Einzelheiten bewusst ausgelassen, um die Verständlichkeit der Beschreibung zu verbessern. Die Diskussion von 1 ist wie folgt aufgebaut. Zunächst werden die Elemente der Figur beschrieben, gefolgt von deren Wechselverbindungen. Dann wird die Verwendung der Elemente in dem System näher beschrieben.
  • 1 umfasst die Multicaststreaming-Umgebung 100. Die Umgebung 100 umfasst Nutzerrechenvorrichtungen 102a–n, eine Netzwerkschnittstelle 104 und eine Anzeigewand 106. 1 zeigt auch eine Wechselvorrichtung 112, ein Netzwerk/Netzwerke 115, Quad-Decoder 116, Dekompressor 126 und Video-Datenstrom-Quellen 132a–n. Puffer 122a–n speichern u. a. verarbeitete Datenströme von den verschiedenen Video-Datenstrom-Quellen 132a–n und sind einzelnen Video-Datenstrom-Quellen fest zugeordnet, so dass zum Beispiel der Puffer 122a für die Video-Quelle 132a bestimmt ist und der Puffer 122b für die Video-Quelle 132b bestimmt ist.
  • In anderen Umsetzungen könnte die Umgebung 100 nicht die gleichen Elemente oder Komponenten wie vorstehend aufgeführt aufweisen und/oder könnte stattdessen oder zusätzlich zu den vorstehend aufgeführten andere/verschiedene Elemente oder Komponenten aufweisen, etwa einen Abruf-Datenbankdienst, ein vorhandenes Modul oder eine Anwendungsplattform. Die unterschiedlichen Elemente oder Komponenten können zu einzelnen Softwaremodulen kombiniert werden, und mehrere Softwaremodule können auf der gleichen Hardware laufen.
  • Nun wird die Verbindung der Elemente der Umgebung 100 beschrieben. Das Netzwerk 115 koppelt die Nutzerrechenvorrichtungen 102a–n, die Anzeigewand 106, die Netzwerkschnittstelle 104 und die Video-Datenstrom-Quellen 132a–n kommunizierend (durch die Doppelkopfpfeile angedeutet). Der tatsächliche Verbindungsweg kann von Punkt zu Punkt über öffentliche und/oder private Netzwerke sein. Manche Dinge, wie etwa AppWrapper (nicht gezeigt), könnten indirekt, z. B. mittels eines (nicht gezeigten) App-Stores, geliefert werden. Alle Kommunikationen können über verschiedene Netzwerke, z. B. private Netzwerke, VPN, MPLS-Schaltung oder Internet, erfolgen und können geeignete APIs und Datenaustauschformate, z. B. REST, JSON, XML, SOAP und/oder JMS, verwenden. Alle Kommunikationen können verschlüsselt werden. Diese Kommunikation erfolgt im Allgemeinen über ein Netzwerk wie etwa LAN (Local Area Netzwork), WAN (Wide Area Network); Telefonnetz (Public Switched Telephone Network (PSTN), Session Initiation Protocol (SIP), drahtloses Netzwerk, Punkt-zu-Punkt-Netzwerk, Stern-Netzwerk, Token-Ring-Netzwerk, Hub-Netzwerk, Internet, inklusive des mobilen Internets, Via-Protokolle wie etwa EDGE, 3G, 4G LTE, Wi-Fi und WiMAX. Zusätzlich können verschiedene Autorisierungs- und Authentifizierungstechniken wie etwa Nutzername/Passwort, OAuth, Kerberos, SecureID, digitale Zertifikate und mehr verwendet werden, um die Kommunikationen zu sichern.
  • Die Netzwerkschnittstelle 104, die Wechselvorrichtung 112, Quad-Decoder 116, Dekompressor 126 und Puffer 122a–n können ein mehr mehrere Computer und Computersysteme umfassen, die miteinander kommunizierend gekoppelt sind. Sie können auch eine oder mehrere virtuelle Rechen- und/oder Speicherressourcen sein. Zum Beispiel kann die Wechselvorrichtung 112 ein oder mehrere Amazon-EC2-Instanzen sein, und die Puffer 122a–n könne Amazon-S3-Speicher sein. Andere Rechenleistung als Service anbietende Plattformen wie etwa Force.com von Salesforce, Rackspace oder Heroku könnten statt des Umsetzens der vorstehend genannten Komponenten auf direkten physischen Computern oder traditionellen virtuellen Maschinen verwendet werden. Zusätzlich können die vorstehend genannten Komponenten als Engines umgesetzt werden. Die Engines können von unterschiedlichen Arten sein, einschließlich einer Graphikprozessoreinheit (GPU), einer Workstation, eines Servers, eines Rechenclusters, eines Bladeservers, einer Serverfarm oder eines anderen Datenverarbeitungssystems oder einer anderen Rechenvorrichtung.
  • Nutzerrechenvorrichtungen 102a–n können Desktop-PCs, Laptop-Computer, Tablet-Computer, Smartphones, PDAs (persönliche digitale Assistenten), digitale Bilderfassungsvorrichtungen, Mobiltelefone oder beliebige drahtloszugangsprotokoll(WAP)-fähige Vorrichtungen oder beliebige andere Rechenvorrichtungen, die sich direkt oder indirekt mit dem Internet oder einer anderen Netzwerkverbindung verbinden können, sein. Nutzerrechenvorrichtungen 102a–n können einen HTTP-Client, z. B. ein Browserprogramm, etwa Microsofts Browser Internet Explorer, Mozillas Browser Firefox, Operas Browser, Googles Chrome oder bei einem Mobiltelefon, einem PDA oder einer anderen Funkvorrichtung einen WAP-fähigen Browser oder dergleichen laufen lassen, was es einem Teilnehmer einer Videokonferenz erlaubt, auf Informationen, Seiten und Anwendungen, die ihm aus der Umgebung 100 über das Netzwerk/die Netzwerke 115 zur Verfügung stehen, zuzugreifen, diese zu verarbeiten und einzusehen.
  • Nutzerrechenvorrichtungen 102a–n umfassen auch ein oder mehrere Benutzeroberflächenvorrichtungen, wie etwa eine Tastatur, eine Maus, einen Trackball, ein Touchpad, einen berührungsempfindlichen Bildschirm, einen Stift oder dergleichen, zum Interagieren mit einer Videokonferenzschnittstelle in Verbindung mit Seiten, Formularen, Anwendungen und anderen Informationen, die von der Umgebung 100 oder anderen Systemen oder Servern bereitgestellt werden. Zum Beispiel können Nutzerrechenvorrichtungen 102a–n genutzt werden, um Wechselvorgänge, Konferenzen anzusetzen, Selektionen vorzunehmen, auf Daten und Anwendungen, die von der Umgebung 100 gehostet werden, zuzugreifen, und in gespeicherten Daten zu suchen und ansonsten einem Teilnehmer einer Videokonferenz das Interagieren mit verschiedenen Videoschnittstellenseiten zu erlauben.
  • Bei Arbeiten in der Multicaststreaming-Umgebung 100 können Kameras 132a–n eine Live-Videoeinspeisung (d. h. sowohl Audio- als auch Bildinformationen) von verschiedenen Orten und/oder Nutzern bereitstellen. In manchen Umsetzungen können die Kameras 132a–n eine beliebige Art von Kamera sein, einschließlich Kameras, die über das sichtbare Spektrum empfindlich sind, oder typischer mit verbesserter Empfindlichkeit gegenüber einem begrenzten Wellenlängenband (z. B. die Infrarot(IR)- oder Ultraviolett-Bänder); allgemeiner bezeichnet der Begriff ”Kamera” hierin eine beliebige Vorrichtung (oder Kombination von Vorrichtungen), die ein Bild eines Objekts erfassen und das Bild in der Form von digitalen Daten darstellen kann. Zum Beispiel können die Kameras 132a–n Überwachungskameras oder private Kameras, die auf einer Struktur, wie etwa einem Gebäude oder einem Strommast, montiert sind, sein. In einem anderen Beispiel können die Kameras 132a–n in vorstehend beschriebenen Nutzerrechenvorrichtungen 102a–n eingebettet sein oder können periphere Vorrichtungen sein, die Video während einer Videokonferenz streamen können.
  • In manchen Umsetzungen können Nutzerrechenvorrichtungen 102a–n und Kameras 132a–n mit den verschiedenen Servern und Prozessoren (104, 112, 116, 126) unter Verwenden eines TCP/IP-Netzwerks (Transfer Control Protocol und Internetprotokoll) kommunizieren und auf einer höheren Netzwerkebene für das Kommunizieren andere übliche Internetprotokolle nutzen, etwa HTTP, FTP, AFS, WAP, etc.
  • In einem Beispiel, in dem HTTP verwendet wird, können die Vorrichtungen 102a–n und die Kameras 132a–n in einer Umgebung 100 einen HTTP-Clienten zum Senden und Empfangen von HTTP-Meldungen zu und von einem HTTP-Server umfassen. Ein solcher HTTP-Server kann als einzige Netzwerkschnittstelle zwischen den verschiedenen Servern und Prozessoren und dem Netzwerk/den Netzwerken 115 implementiert werden, doch können stattdessen auch andere Techniken genutzt werden. In manchen Umsetzungen umfasst die Schnittstelle zwischen den verschiedenen Servern und Prozessoren und dem Netzwerk/den Netzwerken 115 eine Lastverteilungsfunktionalität, etwa Rundlauf-HTTP-Anfrageverteiler, um Lasten auszugleichen und eingehende HTTP-Anfragen gleichmäßig auf mehrere Server zu verteilen.
  • Die Umgebung 100 implementiert auch eine Anzeigewand 108, etwa Fusion Catalyst von Jupiter Systems, die durch eine Videoschaltmatrix wie etwa Fusion Catalyst von Jupiter Systems gesteuert wird. Die Anzeigewand 108 fördert eine End-to-End-Konferenz zwischen Teilnehmern einer Videokonferenz, so dass ferne Teilnehmer Datenströme von mehreren Video-Datenströmen (Kameras 132a–n), die auf der Anzeigewand 108 ausgestrahlt werden, sowohl als Quellen als auch als Empfänger teilen können.
  • In einer Umsetzung kann eine paketvermittelte Technologie verwendet werden, um eine Informationsquelle auf der Anzeigewand 108, etwa ein einzelnes Fenster, das mehrere Bildschirme auf der Anzeigewand 108 überspannt, oder getrennte Fenster, die über verschiedenen Bildschirmen auf der Anzeigewand 108 einzeln dargestellt werden, zu zeigen. In einer Umsetzung unterstützt die Videoschaltmatrix Client-Software-Anwendungen und liefert damit verbundene Daten, Code, Formulare, Webseiten und andere Informationen zu und von Nutzerrechenvorrichtungen 102a–n und Kameras 132a–n.
  • Der Quad-Decoder/die Quad-Decoder 116 ist/sind ausgelegt, um einen komprimierten Video-Datenstrom zu empfangen und beruhend auf einem dem Video-Datenstrom zugeordneten Code zu decodieren. Wie hierin verwendet bezeichnet der Begriff ”Codec” den Algorithmus, der zum Kodieren (z. B. Komprimieren) oder Decodieren (z. B. Dekomprimieren) von Videobildern genutzt wird. In einer Umsetzung kann/können der/die Quad-Decoder 116 eine Quad HD Decoder Card von Jupiter Systems sein, die vier unabhängige Decoder aufweist, die jeweils Video-Datenströme verschiedenster Formate und Quellenarten handhaben kann. In einer Umsetzung kann/können der/die Quad-Decoder 116 Datenströme in MPEG-2, MPEG-4, H.264 unterstützen und können Datenströme von IP-Kameras, NVRs, Desktop-Kodierern und Videomanagementsystemen decodieren und anzeigen. In einer anderen Umsetzung kann er Quellenauflösungen unterstützen, die von NTSC und PAL zu Full High Definition 1080 p reichen. Jeder Decoder kann seinen eigenen Gigabit-Ethernet-Netzwerkanschluss aufweisen, um eine ausreichende Bandbreite zu jedem Decoder sicherzustellen, um jede Datenstrombandbreite bis zu 20 Mbps mühelos handzuhaben. Weiterhin kann jeder Decoder alle Datenstromformate und Protokolle unterstützen, wobei er sich automatisch an spezifische Datenstromarten anpasst.
  • Der Dekompressor 126 erzeugt aus dem decodierten Video-Datenstrom einen dekomprimierten Video-Datenstrom. Der dekomprimierte Video-Datenstrom kann in einem datenstromspezifischen Puffer gespeichert werden, einer Wiedergabevorrichtung oder dergleichen zur Anzeige geliefert werden oder eine beliebige Kombination derselben.
  • Die Umgebung 100 umfasst auch mehrere datenstromspezifische Puffer 122a–n für zeitweiliges Speichern jedes der Video-Datenströme von den Video-Datenstrom-Quellen 132a–n. Das Arbeiten der Puffer lässt sich am besten unter Verweis auf 2 verstehen, die schematisch die Puffer 122a, 122b, ..., 122n und ihre zugeordneten Video-Datenströme von den Video-Datenstrom-Quellen-Puffern 132a, 132b, ..., 132n zeigt. In anderen Umsetzungen dienen datenstromspezifische Puffer 122a–n als Speicherstrukturen, etwa als FIFO-Puffer (First-In First-Out), die mittels der Video-Datenströme übermittelte Videobilder empfangen und speichern. Die datenstromspezifischen Puffer 122a–n speichern insbesondere Pixelinformationen, Bewegungsvektorinformationen und andere Informationen, die einen Satz von Videobildern zur Anzeige darstellen. In einer Umsetzung können datenstromspezifische Puffer 122a–n sowohl die komprimierten Videobilder, die mittels des Video-Datenstroms empfangen werden, als auch Videobilder, die durch den/die Quad-Decoder 116 decodiert wurden, speichern.
  • In der Multicaststreaming-Umgebung 100 sieht die Wechselvorrichtung 112 das zusätzliche Decodieren, Dekomprimieren sowie Pufferressourcen für pseudosimultanes Verarbeiten eines folgenden Video-Datenstroms vor, während ein aktueller Video-Datenstrom decodiert, dekomprimiert und gepuffert wird. Die Wechselvorrichtung 112 kann die innovativste Graphik-GPU-Architektur nutzen, die Ausgangskarten umfasst, die mehrere Anzeigen bei bis zu 2560 × 1600 (Dual-Link DVI) digital oder bis zu 2048 × 1536 analog antreiben kann. In einer Umsetzung kann die Wechselvorrichtung 112 11 GB/s interne Bandbreite und 256 MB GDDR3 Speicher pro Karte aufweisen, um komplexe Anwendungsdaten wiederzugeben, während sie mehrere Video- oder Computereingänge gleichzeitig anzeigt. In anderen Umsetzungen kann die Wechselvorrichtung 112 ein PC mit Intel-CPUs und Microsoft Windows, mit zwei Quad Core Xeon CPUs und bis zu 64 GB RAM sein.
  • Während des Betriebs bewirkt die Wechselvorrichtung 112 bei Wechseln zwischen aktuellen und folgenden Video-Datenströmen eine sofortige Anzeige eines folgenden Video-Datenstroms durch Schalten von datenstromspezifischen Puffern, die den aktuellen und folgenden Video-Datenströmen entsprechen, bei der geplanten Vorführung des folgenden Video-Datenstroms. In einer Umsetzung erreicht die Wechselvorrichtung 112 dies durch Modifizieren der z-Anordnung von Anzeigeschichten entsprechend den aktuellen und folgenden Video-Datenströmen. In einer anderen Umsetzung erreicht die Wechselvorrichtung 112 dies durch Ausführen von Schicht-2-Umschalten der Lieferung von aktuellen und folgenden Video-Datenströmen, um statt des aktuellen Video-Datenstroms den folgenden Video-Datenstrom zur Anzeige zu liefern. In einer noch anderen Umsetzung erreicht die Wechselvorrichtung 112 dies durch Aktualisieren einer Videoschaltmatrix, um statt des aktuellen Video-Datenstroms den folgenden Video-Datenstrom mit der Anzeige zu koppeln.
  • Multicaststreaming-Arbeitsfluss
  • 2 zeigt ein Blockdiagramm eines beispielhaften Arbeitsflusses 200, bei dem die hierin offenbarten Technologien verwendet werden können. Mittels des Netzwerks 115 werden mehrere Video-Datenströme 132a–n zu einer Netzwerkschnittstelle 104 übertragen, die sie dem/den Quad-Decoder(n) 116 und dem Dekompressor 126 präsentiert. Nach dem Decodieren und Dekomprimieren der komprimierten Video-Datenströme werden die nicht komprimierten Videobilder für weitere Verarbeitung, einschließlich Übertragung der verschiedenen Video-Datenströme 132a–n, mittels der Wechselvorrichtung 112 über verschiedene Anzeigen (z. B. Anzeige 1 bis Anzeige 8) der Anzeigewand 106 zu jeweiligen datenstromspezifischen Puffern 122a–n gesendet. Die Anzeigewand 106 enthält alle visuellen Datenquellen, die sich in einer Steuerraum-Umgebung finden, und zeigt diese auf einer virtuellen Anzeige, die aus mehrere Ausgabevorrichtungen besteht: Monitoren, LCD-Flachbildschirmen, Plasmabildschirmen, Projektionswürfeln oder Rückprojektionssystemen, in beweglichen, skalierbaren Fenstern an. Die Datenquellen können lokale Anwendungen, ferne Netzwerkanwendungen, ferner Netzwerk-RGB-Datenströme, komprimierte Netzwerk-Video-Datenströme, direkt angebundenes SD- und HD-Video, VGA- und DVI-Eingänge umfassen.
  • In anderen Umsetzungen werden die verschiedenen Video-Datenströme 132a–n zu einer Anzeigevorrichtung, etwa einem Computerbildschirm, übertragen, wo sie jeweils auf der Anzeigefläche in ihrem eigenen Fenster angezeigt werden. In noch anderen Umsetzungen müssen die dekomprimierten Bilder nicht angezeigt werden, sondern können für weitere Verarbeitung, etwa in einem Sicherheitssystem, gesendet werden, wobei die Verarbeitung aus dem Ausführen von Gesichtserkennung für Identifizierungszwecke bestehen würde.
  • Auch wenn dieses Beispiel sechs Video-Datenströme umfasst, ist die offenbarte Technologie ausgelegt, um mit einer beliebigen Anzahl von Video-Datenströmen zu arbeiten, typischerweise mehr als verfügbare Dekompressionsquellen aktuell halten können. In manchen Fällen kann es praktisch sein, gar 50 oder sogar 100 Video-Datenströme zu nutzen. In anderen Fällen kann es nur möglich sein, 2 oder 3 Video-Datenströme handzuhaben und möglicherweise nur einen, wenn die Dekompressionsressourcen, etwa eine Universal-CPU, nicht damit verbundene Arbeitslasten gemeinsam übernehmen. Dieser Bereich berücksichtigt die verfügbaren Ressourcen und die aufgebürdeten Lasten. Erstens können die Dekompressionsressourcen nur einen PC oder einen kommerziellen Hochleistungsserver mit spezialisierter Hardware umfassen. Zweitens kann sich die durch eintreffende Video-Datenströme auferlegte Last während des Verlaufs einer normalen Nutzung abhängig davon, wie viele Video-Datenstrom-Quellen Bilder streamen, abhängig von der Komplexität der Bilder und der Rate, bei der sich die Bilder ändern, radikal ändern. Drittens können die Dekompressionsressourcen einen Universalrechner wie etwa solche in einem Laptop oder Desktop umfassen, die andere Prozesse laufen lassen, die nicht mit Videoverarbeitung im Zusammenhang stehen, die ein stark variierendes Maß an Verarbeitungsleistung des Rechners nutzen können.
  • In Umgebungen, mit denen sich die offenbarte Technologie befasst, unterliegen die insgesamt verfügbaren Dekompressionsressourcen einer Begrenzung. Zum Beispiel steigern Video-Datenströme steigender Komplexität, etwa solche mit einer erhöhten Bitrate oder Auflösung, sowie das Hinzufügen von Video-Datenströmen die Dekompressionsbelastung. Folglich stehen mit erhöhter Belastung weniger Dekompressionsressourcen pro Datenstrom zur Verfügung. An einem gewissen Punkt können die Dekompressionsressourcen überlastet werden und ein oder mehrere der Video-Datenströme könnten nicht genügend Dekompressionsressourcen haben, um alle ankommenden Bilder zu dekomprimieren. Wenn Bilder auf einer FIFO-Basis verarbeitet werden, geraten die dekomprimierten Bilder relativ zu ihren entsprechenden Präsentationszeiten in Verzug. In manchen Fällen können die resultierenden Bilder, etwa solche auf einer Anzeige, verpixelt erscheinen, können bei unregelmäßigen Intervallen angezeigt werden und können gelegentlich eingefroren wirken. Die vorstehenden Probleme können durch Detektieren des Zustands, in dem die Dekompressionsressourcen überlastet werden, und Beheben dieses Zustands durch Fallenlassen von Bildern verhindert oder zumindest teilweise gemindert werden.
  • Pseudosimultane Verarbeitung
  • 35 heben hervor, dass sich die offenbarte pseudosimultane Verarbeitung von Video-Datenströmen unter Verwenden von dedizierten Verarbeitungsressourcen von bestehenden Lösungen unterscheidet, die Schaltverzögerungen reduzieren.
  • 3 zeigt eine Umsetzung einer pseudosimultanen Verarbeitung 300 von aktuellen und folgenden Video-Datenströmen in einem zeitversetzten Modus, um ein reibungsloses Wechseln zwischen komprimierten Video-Datenströmen zu bewirken. 3 zeigt insbesondere eine Video-Datenstrom-Verarbeitung von zwei verschiedenen Video-Datenströmen, dem aktuellen Video-Datenstrom 132a und dem folgenden Video-Datenstrom 132b, durch zwei Graphikprozessoreinheiten 301 bzw. 303. In anderen Umsetzungen können Video-Datenströme 132a und 132b durch eine gleiche GPU verarbeitet werden.
  • In anderen Umsetzungen könnte die Verarbeitung 300 nicht die gleichen Maßnahmen, Elemente oder Komponenten wie vorstehend aufgeführt aufweisen und/oder könnte andere/verschiedene Maßnahmen, Elemente oder Komponenten statt oder zusätzlich der vorstehend aufgeführten aufweisen. Die unterschiedlichen Maßnahmen, Elemente oder Komponenten können zu einzelnen Softwaremodulen kombiniert werden, und es können mehrere Softwaremodule auf der gleichen Hardware laufen.
  • Bei Zeitpunkt t1 und Maßnahme 302 wird der aktuelle Video-Datenstrom 132a durch die GPU 301 decodiert.
  • Bei einem späteren Zeitpunkt t1 + x und Maßnahme 312 wird der folgende Video-Datenstrom 132b durch die GPU 303 decodiert. Das ”x” bezeichnet eine Verarbeitungseinleitungsverzögerung relativ zu dem Einleiten oder Beenden der Decodierung des aktuellen Video-Datenstroms 132a. Die Verarbeitungseinleitungsverzögerung stellt die Verzögerung beim Auslösen einer Verarbeitung des folgenden Video-Datenstroms relativ zum Auslösen der Verarbeitung des aktuellen Datenstroms dar. Wenngleich der folgende Video-Datenstrom an einem gewissen Punkt mit dem aktuellen Video-Datenstrom gemäß einer Umsetzung pseudosimultan verarbeitet wird. Hier könnte x jeder Zeitwert sein, der mithilfe einer geeigneten Einheit, etwa Sekunden, Mikrosekunden usw., gemessen werden kann. In anderen Umsetzungen beginnt die Decodierung eines folgenden Video-Datenstroms 132b bei einer Zeitverschiebung nach Beginn oder Beendigung der Dekompression, des Pufferns oder der Anzeige des aktuellen Video-Datenstroms 132a.
  • Bei Zeitpunkt t2 und Maßnahme 304 wird der aktuelle Video-Datenstrom 132a durch die GPU 301 dekomprimiert.
  • Bei einem späteren Zeitpunkt t2 + x und Maßnahme 314 wird der folgende Video-Datenstrom 132b durch die GPU 303 dekomprimiert. Das ”x” bezeichnet eine Verarbeitungseinleitungsverzögerung relativ zu dem Einleiten oder Beenden der Dekompression des aktuellen Video-Datenstroms 132a. In anderen Umsetzungen beginnt die Dekompression eines folgenden Video-Datenstroms 132b bei einer Zeitverschiebung nach Beginn oder Beendigung des Decodierens, des Pufferns oder der Anzeige des aktuellen Video-Datenstroms 132a.
  • Bei Zeitpunkt t3 und Maßnahme 306 wird der aktuelle Video-Datenstrom 132a durch die GPU 301 gepuffert.
  • Bei einem späteren Zeitpunkt t3 + x und Maßnahme 316 wird der folgende Video-Datenstrom 132b durch die GPU 303 gepuffert. Das ”x” bezeichnet eine Verarbeitungseinleitungsverzögerung relativ zu dem Einleiten oder Beenden des Pufferns des aktuellen Video-Datenstroms 132a. In anderen Umsetzungen beginnt das Puffern eines folgenden Video-Datenstroms 132b bei einer Zeitverschiebung nach Beginn oder Beendigung des Decodierens, des Dekomprimierens oder der Anzeige des aktuellen Video-Datenstroms 132a.
  • Bei Zeitpunkt t3 und Maßnahme 306 wird der aktuelle Video-Datenstrom 132a durch die GPU 301 gepuffert.
  • Bei einem späteren Zeitpunkt t3 + x und Maßnahme 316 wird der folgende Video-Datenstrom 132b durch die GPU 303 gepuffert. Das ”x” bezeichnet eine Verarbeitungseinleitungsverzögerung relativ zu dem Einleiten oder Beenden des Pufferns des aktuellen Video-Datenstroms 132a. In anderen Umsetzungen beginnt das Puffern eines folgenden Video-Datenstroms 132b bei einer Zeitverschiebung nach Beginn oder Beendigung des Decodierens, des Dekomprimierens oder der Anzeige des aktuellen Video-Datenstroms 132a.
  • Bei Zeitpunkt t4 und Maßnahme 308 wird der aktuelle Video-Datenstrom 132a durch die GPU 301 über einer bestimmten Oberfläche angezeigt.
  • Bei einem späteren Zeitpunkt t4 + y und Maßnahme 318 wird der folgende Video-Datenstrom 132b als Reaktion auf einen Schaltbefehl durch die GPU 303 über der gleichen bestimmten Oberfläche angezeigt. Das ”y” bezeichnet eine Anzeigeverzögerung relativ zu der Anzeige des aktuellen Video-Datenstroms 132a über der bestimmten Oberfläche. In einer Umsetzung liegt der Unterschied zwischen einer Verarbeitungseinleitungsverzögerung x und der Anzeigeverzögerung y darin, dass die Verarbeitungseinleitungsverzögerung x von dem zeitlichen Abstand zwischen Schlüsselbildern des folgenden Video-Datenstroms 132b abhängig ist, wie in der folgenden Diskussion von 4 beschrieben wird.
  • In einer Umsetzung erlaubt die offenbarte Technologie ein reibungsloses Wechseln von komprimierten Video-Datenströmen in einer Multicaststreaming-Umgebung, ohne die Videoqualität durch Ausführung des Umschaltens zu mindern, wenn ein Schlüsselbild eines Video-Datenstroms detektiert wird. Bei einer solchen Umsetzung tritt kein Videoqualitätsverlust auf Clientenseite auf, da der Client zur Anzeige des Sample nicht das korrekte Basissample benötigt. Das Warten auf ein Schlüsselbild bewirkt aber eine Schaltverzögerung, was das Umschalten nicht augenblicklich macht. Zum Beispiel würde die maximale Verzögerung bei Videobildern mit einem Schlüsselbild pro acht Bilder etwa ein Drittel einer Sekunde betragen. Die offenbarte Technologie löst dieses Problem durch Vorladen oder Vorpuffern des Video-Datenstroms vor dem Umschalten unter Verwenden von zusätzlichen Verarbeitungsressourcen, so dass das Schlüsselbild eines folgenden Video-Datenstroms zum Zeitpunkt des Umschaltens verfügbar ist und aufgrund des wartenden Schlüsselbilds keine Schaltverzögerung eintritt.
  • 4 zeigt eine Umsetzung zum Bewerten 400 eines zeitlichen Abstands zwischen Schlüsselbildern und einer zeitlichen Planung eines Umschaltens beruhend auf dem bewerteten zeitlichen Abstand. Eine Wechselvorrichtung 112 führt insbesondere ein Schalten zwischen einem aktuellen Video-Datenstrom 132a und einem folgenden Video-Datenstrom 132b aus, wenn ein Schlüsselbild des folgenden Video-Datenstroms vorgefunden wird. Wie in 4 gezeigt umfasst der folgende Video-Datenstrom 132b zwei Schlüsselbilder und mehrere Interframes. Die Daten von den Schlüsselbildern werden in einem der vorstehend beschriebenen datenstromspezifischen Puffer 122a–n vorgepuffert. Datenstromspezifische Puffer 122a–n speichern jeweils die Schlüsselbilddaten von den Schlüsselbildern zusammen mit den Interframe-Daten von den Interframes.
  • In anderen Umsetzungen könnte die Bewertung 400 nicht die gleichen Maßnahmen, Elemente oder Komponenten wie vorstehend aufgeführt aufweisen und/oder könnte andere/verschiedene Maßnahmen, Elemente oder Komponenten statt oder zusätzlich zu den vorstehend aufgeführten aufweisen. Die unterschiedlichen Maßnahmen, Elemente oder Komponenten können zu einzelnen Softwaremodulen kombiniert werden, und es können mehrere Softwaremodule auf der gleichen Hardware laufen.
  • 4 veranschaulicht, dass der zeitliche Abstand zwischen Schlüsselbildern in dem folgenden Video-Datenstrom 132b zehn Sekunden beträgt. Dadurch sollte die Verarbeitungseinleitungsverzögerung x zwischen der Verarbeitung des aktuellen Video-Datenstroms 132a bei Maßnahme 402 und der Verarbeitung des folgenden Video-Datenstroms 132b bei der Maßnahme 404 mindestens zehn Sekunden oder mehr betragen, um eine Detektion mindestens eines Schlüsselbilds des folgenden Video-Datenstroms 132b zu erlauben. Ein solches Vorgehen eines zeitlich festgelegten Vorladens oder Vorpufferns ermöglicht nicht nur bei Treffen auf ein Schlüsselbild des folgenden Video-Datenstroms zu jedem Zeitpunkt einen reibungslosen Wechsel zwischen dem aktuellen Video-Datenstrom 132a und dem folgenden Video-Datenstrom 132a.
  • 5 ist eine Umsetzung zum Modifizieren 500 einer z-Reihenfolge unterschiedlicher komprimierter Video-Datenströme in einer Multicaststreaming-Umgebung, um ein sofortiges Umschalten zwischen den komprimierten Video-Datenströmen zu ermöglichen. 5 zeigt insbesondere drei Zustände 502, 504 und 506 der Multicaststreaming-Umgebung 100. Bei einem stationären Zustand 502 werden Video-Datenströme von drei verschiedenen Video-Datenstrom-Quellen 132a, 132b und 132c durch die Quad-Decoder decodiert und als drei verschiedene Fensterschichten angeordnet, die sich durch visuelles Hashing auszeichnen. Die Fensterschichten werden dann durch eine Videoschaltmatrix zu einem oder mehreren dualen DVI-Ausgangsports übermittelt, die sie zu der Anzeigewand 106 weiterleiten. Die Anzeigewand 106 zeigt über die Benutzeroberflächen D1, D2 bzw. D3 drei Video-Datenströme 132a, 132b und 132c an.
  • In anderen Umsetzungen könnte das Modifizieren 500 nicht die gleichen Zustände, Anordnung, Maßnahmen, Elemente oder Komponenten wie vorstehend aufgeführt aufweisen und/oder könnte andere/verschiedene Zustände, Anordnung, Maßnahmen, Elemente oder Komponenten statt oder zusätzlich zu den vorstehend aufgeführten aufweisen. Die unterschiedlichen Zustände, Anordnung, Maßnahmen, Elemente oder Komponenten können zu einzelnen Softwaremodulen kombiniert werden, und es können mehrere Softwaremodule auf der gleichen Hardware laufen.
  • Die Anordnung der Fensterschichten an den DVI-Ausgangsports bestimmt, welche Video-Datenströme auf welchen Benutzeroberflächen der Anzeigewand 106 angezeigt werden. Diese Anordnung, die als ”z-Anordnung” bezeichnet wird, kann modifiziert werden, um die Anordnung der Fensterschichten an den DVI-Ausgangsports zu ändern und nach Bedarf wiederum einen reibungslosen Wechsel zwischen den Video-Datenströmen 132a, 132b, 132c und 132d zu bewirken. Ein solcher reibungsloser Wechsel wird in dem Umschaltvorbereitungszustand 504 eingeleitet, in dem ein vierter Video-Datenstrom 132 zu der Multicaststreaming-Umgebung 100 hinzugefügt wird. Der vierte Video-Datenstrom 132d wird pseudosimultan verarbeitet, während andere Video-Datenströme 132a, 132b und 132c auf der Anzeigewand 106 angezeigt werden. Eine pseudosimultane Hintergrundverarbeitung des vierten Video-Datenstroms 132d erzeugt eine Fensterschicht für den vierten Video-Datenstrom 132d, die hinter die aktuell anzeigende Fensterschicht eines zu ersetzenden Video-Datenstroms, d. h. des dritten Video-Datenstroms 132c in 5, gesetzt wird, die in die Benutzeroberfläche D3 einspeist. Während des Umschaltvorbereitungszustands 504 wird die neu platzierte Fensterschicht des vierten Video-Datenstroms 132d noch nicht auf der Benutzeroberfläche D3 angezeigt, da die z-Anordnung der Fensterschichten an den dualen DVI-Ausgangsports unverändert bleibt.
  • Bei Schaltzustand 506 wird die z-Anordnung der Fensterschichten an den dualen DVI-Ausgangsports so modifiziert, dass die Fensterschicht des dritten Video-Datenstroms 132c durch die Fensterschicht des vierten Video-Datenstroms 132d ersetzt wird. Dadurch wird der vierte Video-Datenstrom 132d sofort auf der Benutzeroberfläche D3 angezeigt, da seine Fensterschicht ausreichend erzeugt wird, bevor die Multicaststreaming-Umgebung 100 in den Schaltzustand 506 wechselt. Im Anschluss daran wird die zuvor angezeigte Fensterschicht des dritten Video-Datenstroms 132c gelöscht.
  • Flussdiagramm
  • 6 ist ein repräsentatives Verfahren 600 zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen. Das Flussdiagramm 600 kann zumindest teilweise mit einem Computer oder einem anderen Datenverarbeitungssystem implementiert werden, z. B. durch ein oder mehrere Prozessoren, die ausgelegt sind, um Informationen zu empfangen oder abzurufen, die Informationen zu verarbeiten, die Ergebnisse zu speichern und die Ergebnisse zu übermitteln. Andere Umsetzungen können die Maßnahmen in unterschiedlichen Reihenfolgen und/oder mit anderen, weniger oder zusätzlichen Maßnahmen als den in 6 gezeigten durchführen. In manchen Umsetzungen können mehrere Maßnahmen kombiniert werden. Der Einfachheit halber wird dieses Flussdiagramm unter Verweis auf das System beschrieben, das ein Verfahren ausführt. Das System ist nicht unbedingt Teil des Verfahrens.
  • Das in diesem Abschnitt und in anderen Abschnitten der offenbarten Technologie beschriebene Verfahren kann ein oder mehrere der folgenden Merkmale und/oder in Verbindung mit zusätzlichen offenbarten Verfahren beschriebene Merkmale umfassen. Im Interesse der Kürze werden die Kombinationen von Merkmalen, die in dieser Anmeldung offenbart werden, nicht einzeln aufgeführt und nicht mit jedem grundlegenden Satz von Merkmalen wiederholt. Der Leser wird verstehen, wie in diesem Verfahren identifizierte Merkmale mühelos mit Sätzen von grundlegenden Merkmalen kombiniert werden können, die als Umsetzungen wie etwa Multicaststreaming-Umgebung, Multicaststreaming-Arbeitsfluss, pseudosimultane Verarbeitung oder Computersystem bezeichnet sind.
  • Bei Maßnahme 602 wird ein Wechseln zwischen komprimierten Video-Datenströmen zum Zeigen auf einer Fläche einer Anzeige zeitlich angesetzt. Bei einer Umsetzung wird das Wechseln durch einen Administrator angesetzt, der wie vorstehend diskutiert eine Nutzerrechenvorrichtung verwendet.
  • Bei Maßnahme 612 werden während des Decodierens, Dekomprimierens und Pufferns eines ersten Video-Datenstroms zur Anzeige ein Decodieren, Dekomprimieren und Puffern eines zweiten Video-Datenstroms bei einem vorbestimmten Zeitpunkt vor einem geplanten Zeigen des zweiten Video-Datenstroms begonnen. Dies wird mithilfe eines zusätzlichen Satzes von Decodierlogik und Arbeitsspeicher verwirklicht, um ein sofortiges Umschalten von dem ersten Video-Datenstrom zu dem zweiten Video-Datenstrom zu bewirken. Es umfasst das Anlegen von Verarbeitungszeitverzögerungen, um mehrere von Decodierungslogik- und Arbeitsspeichereinheiten pseudosimultan oder gleichzeitig zu verwenden, um erste und zweite Video-Datenströme, die auf die gleiche Anzeige gerichtet sind, zu verarbeiten, so dass ein Decodieren eines zweiten Video-Datenstroms eingeleitet wird, bevor das Eintreten eines Umschaltens angesetzt ist.
  • Bei Maßnahme 622 werden Puffer zwischen der Anzeige des ersten und des zweiten Video-Datenstroms bei dem geplanten Zeigen des zweiten Video-Datenstroms umgeschaltet, um eine sofortige Anzeige des zweiten Video-Datenstroms ohne Verzögerung zu bewirken. In einer Umsetzung umfasst das Umschalten zwischen den Puffern für den ersten und zweiten Video-Datenstrom ferner das Modifizieren einer z-Anordnung von Anzeigeschichten, die dem ersten und zweiten Video-Datenstrom entsprechen, wodurch eine Graphikkarte eine Anzeige bildet, die den zweiten Video-Datenstrom statt des ersten Video-Datenstroms sichtbar macht.
  • In einer anderen Umsetzung umfasst ein Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner ein Schicht-2-Umschalten der Lieferung des ersten und des zweiten Video-Datenstroms, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom zur Anzeige zu liefern. In einer noch anderen Umsetzung umfasst ein Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner das Aktualieren einer Video-Schaltmatrix, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom mit der Anzeige zu koppeln.
  • Das Verfahren 600 umfasst auch das Bewerten eines zeitlichen Abstands zwischen Schlüsselbilder in dem zweiten Video-Datenstrom und das Wählen des vorbestimmten Zeitpunkts beruhend zumindest zum Teil auf dem zeitlichen Abstand.
  • Im Fall von mehreren Paaren von ersten und zweiten Video-Datenströmen umfasst das Verfahren 600 weiterhin das in eine Reihenfolge bringen von geplanten Wechseln zwischen den ersten und zweiten Video-Datenströmen, um eine Anzahl von Video-Datenströmen zu reduzieren, die zwischen dem Decodieren des ersten und zweiten Video-Datenstroms gleichzeitig unterwegs sind.
  • Andere Umsetzungen des in diesem Abschnitt beschriebenen Verfahrens können ein nicht flüchtiges, maschinell lesbares Speichermedium umfassen, das von einem Prozessor ausführbare Befehle speichert, um eines der vorstehend beschriebenen Verfahren durchzuführen. Eine noch andere Umsetzung des in diesem Abschnitt beschriebenen Verfahrens kann ein System mit Speicher und einem oder mehreren Prozessoren umfassen, die zum Ausführen von Befehlen betreibbar sind, die in dem Speicher gespeichert sind, um eines der vorstehend beschriebenen Verfahren durchzuführen.
  • Computersystem
  • 7 ist ein Blockdiagramm eines beispielhaften Computersystems 700 zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen. Das Computersystem 700 umfasst typischerweise mindestens einen Prozessor 714, der mittels eines Bussubsystems 712 mit einer Reihe von peripheren Vorrichtungen kommuniziert. Diese peripheren Vorrichtungen können ein Speichersubsystem 724, das zum Beispiel Speichervorrichtungen und ein Dateienspeicher-Subsystem umfasst, Nutzerschnittstellen-Eingabevorrichtungen 722, Nutzerschnittstellen-Ausgabevorrichtungen 718 und ein Netzwerkschnittstellen-Subsystem 104 umfassen. Die Eingabe- und Ausgabevorrichtungen ermöglichen eine Nutzerinteraktion mit dem Computersystem 700. Das Netzwerkschnittstellen-Subsystem 104 sieht eine Schnittstelle zu externen Netzwerken vor, einschließlich einer Schnittstelle mit entsprechenden Schnittstellenvorrichtungen in anderen Computersystemen. Der Applikationsserver 720 kann ein Framework sein, der die Anwendungen des Computersystems 700 laufen lässt, etwa die Hardware und/oder Software, z. B. das Betriebssystem.
  • Nutzerschnittstellen-Eingabevorrichtungen 722 können eine Tastatur; Zeigervorrichtungen wie etwa eine Maus, einen Trackball, ein Touchpad oder ein Graphiktablett; einen Scanner; einen in die Anzeige integrierten berührungsempfindlichen Bildschirm; Audio-Eingangsvorrichtungen wie etwa Stimmenerkennungssysteme und Mikrophone; und andere Arten von Eingabevorrichtungen umfassen. Im Allgemeinen soll die Verwendung des Begriffs ”Eingabevorrichtung” alle möglichen Arten von Vorrichtungen und Möglichkeiten zur Eingabe von Informationen in das Computersystem 700 umfassen.
  • Nutzerschnittstellen-Ausgabevorrichtungen 718 können ein Anzeigesubsystem, einen Drucker, ein Faxgerät oder nicht visuelle Anzeigen wie etwa Audio-Ausgabevorrichtungen umfassen. Das Anzeigesubsystem kann eine Kathodenstrahlröhre (CRT), eine Flachbildschirmvorrichtung etwa eine Flüssigkristallanzeige (LCD), eine Projektionsvorrichtung oder einen anderen Mechanismus zum Erzeugen eines sichtbaren Bilds umfassen. Das Anzeigesubsystem kann auch eine nicht visuelle Anzeige wie etwa Audio-Ausgabevorrichtungen vorsehen. Die Verwendung des Begriffs ”Ausgabevorrichtung” soll im Allgemeinen alle möglichen Arten von Vorrichtungen und Möglichkeiten zur Ausgabe von Informationen von dem Computersystem 700 zu dem Nutzer oder einer anderen Maschine oder einem anderen Computersystem umfassen.
  • Das Speichersubsystem 724 speichert Programmierung und Datenkonstrukte, die die Funktionalität einiger oder aller der Module und Verfahren, die hierin beschrieben sind, bereitstellen. Diese Software-Module werden im Allgemeinen von dem Prozessor 714 allein oder kombiniert mit anderen Prozessoren ausgeführt.
  • Der Speicher 726, der in dem Speichersubsystem genutzt wird, kann eine Reihe von Speichern umfassen, die einen Hauptarbeitsspeicher (RAM) 734 für Speicherung von Befehlen und Daten während der Programmausführung und einen Festwertspeicher (ROM) 732, in dem feste Befehle gespeichert sind, umfassen. Ein Dateispeicher-Subsystem 728 kann eine dauerhafte Speicherung für Programm- und Datendateien vorsehen und kann ein Festplattenlaufwerk, ein Floppy-Disk-Laufwerk zusammen mit zugeordneten herausnehmbaren Medien, ein CD-ROM-Laufwerk, ein optisches Laufwerk oder herausnehmbare Medienträger umfassen. Die die Funktionalität von bestimmten Umsetzungen umsetzenden Module können von dem Dateispeicher-Subsystem 728 in dem Speichersubsystem 724 oder in anderen Maschinen, auf die der Prozessor zugreifen kann, gespeichert werden.
  • Das Bussubsystem 712 sieht einen Mechanismus zum planmäßigen Kommunizierenlassen der verschiedenen Komponenten und Subsysteme des Computersystems 700 miteinander vor. Auch wenn das Bussubsystem 712 schematisch als einzelner Bus gezeigt ist, können alternative Umsetzungen des Bussubsystems mehrere Busse nutzen.
  • Das Computersystem 700 kann von unterschiedlichen Arten sein, einschließlich einer Workstation, eines Serves, eines Rechenclusters, eines Bladeservers, einer Serverfarm oder eines anderen Datenverarbeitungssystems oder einer anderen Rechenvorrichtung. Aufgrund der sich ständig ändernden Natur von Computern und Netzwerken soll die Beschreibung des in 7 dargestellten Computersystems 700 nur ein Beispiel sein. Es sind viele andere Konfigurationen des Computersystems 700 mit mehr oder weniger Komponenten als bei dem in 7 dargestellten Computersystem möglich.
  • Die hierin verwendeten Begriffe und Ausdrücke werden als beschreibende, nicht einschränkende Begriffe und Ausdrücke verwendet, und bei der Verwendung dieser Begriffe und Ausführung sollten keine Äquivalente der gezeigten oder beschriebenen Merkmale oder von Teilen derselben ausgeschlossen werden. Nach Beschreiben bestimmter Umsetzungen der offenbarten Technologie ist ferner für den Durchschnittsfachmann des Gebiets offensichtlich, dass andere Umsetzungen, die die hierin offenbarten Konzepte integrieren, verwendet werden können, ohne vom Wesen und Schutzumfang der offenbarten Technologie abzuweichen. Demgemäß sollen die beschriebenen Umsetzungen in jeder Hinsicht nur als veranschaulichend und nicht als einschränkend betrachtet werden.

Claims (18)

  1. Verfahren zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen, wobei das Verfahren umfasst: Zeitliches Planen von Wechseln zwischen komprimierten Video-Datenströmen, die in einer Fläche einer Anzeige gezeigt werden sollen; während des Decodierens, Dekomprimierens und Pufferns eines anzuzeigenden ersten Video-Datenstroms bei einem vorbestimmten Zeitpunkt vor einem geplanten Zeigen eines zweiten Video-Datenstroms Beginn des Decodierens, Dekomprimierens und Pufferns des zweiten Video-Datenstroms; und bei dem zeitlich geplanten Zeigen des zweiten Video-Datenstroms Umschalten von Puffern zwischen der Anzeige des ersten und des zweiten Video-Datenstroms, wodurch der zweite Video-Datenstrom ohne Verzögerung unmittelbar anzeigbar wird.
  2. Verfahren nach Anspruch 1, welches weiterhin das Bewerten eines zeitlichen Abstands zwischen Schlüsselbilder in dem zweiten Video-Datenstrom und das Wählen des vorbestimmten Zeitpunkts beruhend zumindest zum Teil auf dem zeitlichen Abstand umfasst.
  3. Verfahren nach einem der vorhergehenden Ansprüche, das bei mehreren Paaren von ersten und zweiten Video-Datenströmen angewendet wird, welches weiterhin das in eine Reihenfolge bringen von zeitlich geplanten Wechseln zwischen den ersten und zweiten Video-Datenströmen umfasst, um eine Anzahl von Video-Datenströmen zu reduzieren, die zwischen dem Decodieren des ersten und zweiten Video-Datenstroms gleichzeitig unterwegs sind.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Umschalten zwischen den Puffern für den ersten und zweiten Video-Datenstrom ferner das Modifizieren einer z-Anordnung von Anzeigeschichten, die dem ersten und zweiten Video-Datenstrom entsprechen, umfasst, wodurch eine Graphikkarte eine Anzeige bildet, die den zweiten Video-Datenstrom statt des ersten Video-Datenstroms sichtbar macht.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner ein Schicht-2-Umschalten der Lieferung des ersten und des zweiten Video-Datenstroms umfasst, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom zur Anzeige zu liefern.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner das Aktualisieren einer Videoschaltmatrix umfasst, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom mit der Anzeige zu koppeln.
  7. System zum reibungslosen Wechseln zwischen komprimierten Video-Datenströme, wobei das System umfasst: ein oder mehrere Prozessoren, die mit einem Speicher gekoppelt sind, wobei der Speicher mit Computerbefehlen beladen wird, die bei Ausführen auf den Prozessoren Maßnahmen umsetzen, welche umfassen: zeitliches Planen von Wechseln zwischen komprimierten Video-Datenströmen, die in einer Fläche einer Anzeige gezeigt werden sollen; während des Decodierens, Dekomprimierens und Pufferns eines anzuzeigenden ersten Video-Datenstroms bei einem vorbestimmten Zeitpunkt vor einem zeitlich geplanten Zeigen eines zweiten Video-Datenstroms Beginn des Decodierens, Dekomprimierens und Pufferns des zweiten Video-Datenstroms; und bei dem zeitlich geplanten Zeigen des zweiten Video-Datenstroms Umschalten von Puffern zwischen der Anzeige des ersten und des zweiten Video-Datenstroms, wodurch der zweite Video-Datenstrom ohne Verzögerung unmittelbar anzeigbar wird.
  8. System nach Anspruch 7, welches weiterhin ausgelegt ist, um einen zeitlichen Abstand zwischen Schlüsselbilder in dem zweiten Video-Datenstrom zu bewerten und den vorbestimmten Zeitpunkt beruhend zumindest zum Teil auf dem zeitlichen Abstand zu wählen.
  9. System nach Anspruch 7 oder 8, das bei mehreren Paaren von ersten und zweiten Video-Datenströmen angewendet wird, welches weiterhin ausgelegt ist, um die zeitlich geplanten Wechsel zwischen den ersten und zweiten Video-Datenströmen in eine Reihenfolge zu bringen, um eine Anzahl von Video-Datenströmen zu reduzieren, die zwischen dem Decodieren des ersten und zweiten Video-Datenstroms gleichzeitig unterwegs sind.
  10. System nach einem der Ansprüche 7–9, wobei das Umschalten zwischen den Puffern für den ersten und zweiten Video-Datenstrom ferner das Modifizieren einer z-Anordnung von Anzeigeschichten, die dem ersten und zweiten Video-Datenstrom entsprechen, umfasst, wodurch eine Graphikkarte eine Anzeige bildet, die den zweiten Video-Datenstrom statt des ersten Video-Datenstroms sichtbar macht.
  11. System nach einem der Ansprüche 7–10, wobei das Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner ein Schicht-2-Umschalten der Lieferung des ersten und des zweiten Video-Datenstroms umfasst, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom zur Anzeige zu liefern.
  12. System nach einem der Ansprüche 7–11, wobei das Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner das Aktualisieren einer Videoschaltmatrix umfasst, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom mit der Anzeige zu koppeln.
  13. Nicht flüchtiges, maschinell lesbares Medium, welches mehrere Befehle zum Programmieren eines oder mehrerer Prozessoren speichert, um reibungslos zwischen komprimierten Video-Datenströmen zu wechseln, wobei die Befehle, bei Ausführen an den Prozessoren Maßnahmen umsetzen, welche umfassen: zeitliches Planen von Wechseln zwischen komprimierten Video-Datenströmen, die in einer Fläche einer Anzeige gezeigt werden sollen; während des Decodierens, Dekomprimierens und Pufferns eines anzuzeigenden ersten Video-Datenstroms bei einem vorbestimmten Zeitpunkt vor einem zeitlich geplanten Zeigen eines zweiten Video-Datenstroms Beginn des Decodierens, Dekomprimierens und Pufferns des zweiten Video-Datenstroms; und bei dem geplanten Zeigen des zweiten Video-Datenstroms Umschalten von Puffern zwischen der Anzeige des ersten und des zweiten Video-Datenstroms, wodurch der zweite Video-Datenstrom ohne Verzögerung unmittelbar anzeigbar wird.
  14. Nicht flüchtiges, maschinell lesbares Medium nach Anspruch 13, welches weiterhin ausgelegt ist, um einen zeitlichen Abstand zwischen Schlüsselbildern in dem zweiten Video-Datenstrom zu bewerten und den vorbestimmten Zeitpunkt beruhend zumindest zum Teil auf dem zeitlichen Abstand zu wählen.
  15. Nicht flüchtiges, maschinell lesbares Medium nach Anspruch 13 oder 14, das bei mehreren Paaren von ersten und zweiten Video-Datenströmen angewendet wird, welches weiterhin ausgelegt ist, um die geplanten Wechsel zwischen den ersten und zweiten Video-Datenströmen in eine Reihenfolge zu bringen, um eine Anzahl von Video-Datenströmen zu reduzieren, die zwischen dem Decodieren des ersten und zweiten Video-Datenstroms gleichzeitig unterwegs sind.
  16. Nicht flüchtiges, maschinell lesbares Medium nach einem der Ansprüche 13–15, wobei das Umschalten zwischen den Puffern für den ersten und zweiten Video-Datenstrom ferner das Modifizieren einer z-Anordnung von Anzeigeschichten, die dem ersten und zweiten Video-Datenstrom entsprechen, umfasst, wodurch eine Graphikkarte eine Anzeige bildet, die den zweiten Video-Datenstrom statt des ersten Video-Datenstroms sichtbar macht.
  17. Nicht flüchtiges, maschinell lesbares Medium nach einem der Ansprüche 13–16, wobei das Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner ein Schicht-2-Umschalten der Lieferung des ersten und des zweiten Video-Datenstroms umfasst, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom zur Anzeige zu liefern.
  18. Nicht flüchtiges, maschinell lesbares Medium nach einem der Ansprüche 13–17, wobei das Umschalten zwischen den Puffern für den ersten und den zweiten Video-Datenstrom ferner das Aktualisieren einer Videoschaltmatrix umfasst, um statt des ersten Video-Datenstroms den zweiten Video-Datenstrom mit der Anzeige zu koppeln.
DE102016006539.7A 2015-05-28 2016-05-27 Systeme und Verfahren zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen Pending DE102016006539A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/724,562 2015-05-28
US14/724,562 US9894126B1 (en) 2015-05-28 2015-05-28 Systems and methods of smoothly transitioning between compressed video streams

Publications (1)

Publication Number Publication Date
DE102016006539A1 true DE102016006539A1 (de) 2016-12-01

Family

ID=56410676

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016006539.7A Pending DE102016006539A1 (de) 2015-05-28 2016-05-27 Systeme und Verfahren zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen

Country Status (4)

Country Link
US (1) US9894126B1 (de)
CN (1) CN106210863B (de)
DE (1) DE102016006539A1 (de)
GB (1) GB2541494A (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110891193B (zh) * 2018-09-11 2022-05-20 广州虎牙信息科技有限公司 直播视频处理方法、装置、终端及存储介质
CN109246462B (zh) * 2018-10-11 2021-08-06 苏宁易购集团股份有限公司 一种视频流无缝切换方法及装置
US10999588B2 (en) 2019-01-10 2021-05-04 Comcast Cable Communications, Llc Seamless content encoding and transmission
US11438545B2 (en) 2019-12-23 2022-09-06 Carrier Corporation Video image-based media stream bandwidth reduction
US11463651B2 (en) 2019-12-23 2022-10-04 Carrier Corporation Video frame-based media stream bandwidth reduction
US11647248B2 (en) * 2020-11-02 2023-05-09 Arcus Holding A/S Synchronized playback within a client interface utilising web technologies
CN115225955A (zh) * 2021-04-16 2022-10-21 海信视像科技股份有限公司 显示设备、视频切换方法、装置及存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535963B1 (en) * 1999-06-30 2003-03-18 Cisco Technology, Inc. Memory apparatus and method for multicast devices
US7394850B1 (en) * 1999-10-25 2008-07-01 Sedna Patent Services, Llc Method and apparatus for performing digital-to-digital video insertion
JP2003515986A (ja) * 1999-11-23 2003-05-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Mpegビデオ・ストリームの継ぎ目を生じないスイッチング
US7571244B2 (en) 2000-07-15 2009-08-04 Filippo Costanzo Audio-video data switching and viewing system
US7418192B2 (en) 2001-03-13 2008-08-26 Koninklijke Philips Electronics N.V. Dynamic key frame generation and usage
EP1386492A2 (de) 2001-03-23 2004-02-04 Popwire.com Verfahren und vorrichtung für streaming-video
WO2003053004A1 (en) * 2001-12-15 2003-06-26 Thomson Licensing S.A. Videoconference bandwidth selection mechanism
US20040160974A1 (en) * 2003-02-13 2004-08-19 Read Christopher Jensen Method and system for rapid channel change within a transport stream
JP4134164B2 (ja) * 2003-07-10 2008-08-13 富士通株式会社 メディア再生装置
US20050022245A1 (en) * 2003-07-21 2005-01-27 Ramesh Nallur Seamless transition between video play-back modes
US20070006065A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Conditional event timing for interactive multimedia presentations
US20070024706A1 (en) * 2005-08-01 2007-02-01 Brannon Robert H Jr Systems and methods for providing high-resolution regions-of-interest
US7793329B2 (en) 2006-02-06 2010-09-07 Kasenna, Inc. Method and system for reducing switching delays between digital video feeds using multicast slotted transmission technique
US7965771B2 (en) * 2006-02-27 2011-06-21 Cisco Technology, Inc. Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network
DE112008002798A5 (de) * 2007-08-07 2010-07-15 Deutsche Telekom Ag Verfahren und System zum Reduzieren der Umschaltlücke bei einem Programmwechsel in einer digitalen Videoumgebung
US8813141B2 (en) * 2007-08-08 2014-08-19 At&T Intellectual Properties I, L.P. System and method of providing video content
US9380272B2 (en) * 2007-09-07 2016-06-28 At&T Intellectual Property I, L.P. Community internet protocol camera system
CN101534475B (zh) * 2008-03-10 2012-02-01 联想移动通信科技有限公司 一种流媒体业务接收装置和方法及移动终端
CN101426110A (zh) * 2008-11-28 2009-05-06 北京创毅视讯科技有限公司 一种实现电视频道切换的方法和多媒体广播接收终端
US8760492B2 (en) * 2009-01-30 2014-06-24 Polycom, Inc. Method and system for switching between video streams in a continuous presence conference
US8402494B1 (en) 2009-03-23 2013-03-19 Conviva Inc. Switching content
US9036092B2 (en) * 2013-06-24 2015-05-19 Broadcom Corporation Video channel change system
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US20120254915A1 (en) 2011-03-30 2012-10-04 Google Inc. Transition from locally stored video data to broadcast feed
GB2490659A (en) * 2011-05-04 2012-11-14 Nds Ltd Fast channel change using channel packs comprising independently decodable frame segments having differing qualities
US9423994B2 (en) * 2012-02-22 2016-08-23 Citrix Systems, Inc. Hierarchical display
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
US8863208B2 (en) 2012-06-18 2014-10-14 Micropower Technologies, Inc. Synchronizing the storing of streaming video
US10382512B2 (en) * 2013-03-14 2019-08-13 Microsoft Technology Licensing, Llc Distributed fragment timestamp synchronization
WO2014139581A1 (en) * 2013-03-15 2014-09-18 Robert Bosch Gmbh Switching apparatus for switching compressed video streams, conference system with the switching apparatus and process for switching compressed video streams
EP2983376A4 (de) * 2013-04-05 2016-12-07 Sony Corp Steuerung, steuerungsverfahren, computerprogramm und videoübertragungssystem
WO2014201876A1 (zh) * 2013-06-17 2014-12-24 华为技术有限公司 屏幕分享方法和相关设备及通信系统
CN104954847B (zh) * 2014-03-25 2018-04-10 扬智科技股份有限公司 视频流处理装置、镜像视频显示方法及显示装置

Also Published As

Publication number Publication date
GB201609398D0 (en) 2016-07-13
US9894126B1 (en) 2018-02-13
GB2541494A (en) 2017-02-22
CN106210863A (zh) 2016-12-07
CN106210863B (zh) 2020-08-21

Similar Documents

Publication Publication Date Title
DE102016006539A1 (de) Systeme und Verfahren zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen
EP3926947B1 (de) Dynamische videoauflösung und -qualität für verbesserte videokonferenz
US10645342B2 (en) Method and system for new layout experience in video communication
US11775247B2 (en) Real-time screen sharing
US10567765B2 (en) Streaming multiple encodings with virtual stream identifiers
DE102017000293A1 (de) Trick-Modus-Betrieb mit mehreren Videoströmen
US9491414B2 (en) Selection and display of adaptive rate streams in video security system
JP5326234B2 (ja) 画像送信装置、画像送信方法および画像送信システム
US20140032735A1 (en) Adaptive rate of screen capture in screen sharing
DE102015115998A1 (de) Segmentierter Videocodec für Video mit hoher Auflösung und hoher Framerate
DE202016008192U1 (de) Auswahl des Referenz-Bewegungsvektors über Referenzeinzelbild Puffer-Nachverfolgung
CN105577819A (zh) 一种虚拟化桌面的分享系统、分享方法以及分享装置
CN102377745A (zh) 一种基于拼接大屏幕的交互式协同系统及交互式协同方法
KR20120119853A (ko) 영상회의 시스템의 영상구조 조절방법 및 그 시스템
DE102014100183B4 (de) Verfahren und Vorrichtung zum Verwenden eines separaten Rückwärtskanals für Benutzereingaben bei der Replizierung der Anzeige eines mobilen Geräts
DE112009002346T5 (de) Verarbeitung von Videodaten in Geräten mit eingeschränkten Ressourcen
JP2022539299A (ja) 中断可能な映像トランスコーディング
CN111343503A (zh) 视频的转码方法、装置、电子设备及存储介质
WO2013007395A1 (de) Verfahren und vorrichtungen zum verzögerungsarmen ein- oder umschalten auf ein digitales videosignal
DE112012002626B4 (de) Systeme, Verfahren und Datenträger zum Steuern einer Präsentation von Datenbildern in einem Videostrom
DE112017002433T5 (de) Technologien zum abladen von eingabeberechnung über eine drahtlose verbindung
Kimball et al. Low bandwidth desktop and video streaming for collaborative tiled display environments
DE102013021707A1 (de) Grafik-dienstleister und verfahren zur verwaltung von datenstromparametern
DE102012202315A1 (de) Videosystem zur Darstellung von Bilddaten, Verfahren und Computerprogramm
CN210670365U (zh) 一种视频预监系统

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: JUPITER SYSTEMS, LLC, HAYWARD, US

Free format text: FORMER OWNER: INFOCUS CORPORATION, PORTLAND, OREG., US

R082 Change of representative

Representative=s name: LORENZ SEIDLER GOSSEL RECHTSANWAELTE PATENTANW, DE

R012 Request for examination validly filed