-
DATEN EINER VERWANDTEN ANMELDUNG
-
Diese Anmeldung beansprucht die Prioritätsrechte der am 25. Oktober 2019 eingereichten vorläufigen US-Patentanmeldung mit der laufenden Nummer 62/925,794 und mit dem Titel Unlimited Pixel Canvas Utilizing Multiple Video Ingest Nodes on a Network, die in ihrer Gesamtheit durch Bezugnahme hierin aufgenommen wird.
-
GEBIET DER OFFENBARUNG
-
Die vorliegende Offenbarung betrifft allgemein das Gebiet von LED-Videowänden. Insbesondere ist die vorliegende Offenbarung auf Systeme und Verfahren gerichtet, die einen unbegrenzten Pixelcanvas für LED-Videowände bereitstellen.
-
STAND DER TECHNIK
-
Herkömmliche große Videoanzeigewände, wie etwa LED-Videowände, werden von einem Feld bzw. Array von lichtemittierenden Anzeigemodulen gebildet, die häufig als Kacheln bezeichnet werden. Jede Kachel stellt X·Y Pixel mit einem festen Pixelabstand/einer festen Pixeldichte dar, beispielsweise 512 x 512 Pixel. Es ist nicht unüblich, dass man aufgrund von Herstellungskosten und Komplexität viele Variationen der Kacheln bei unbegrenzten Pixeldichten hat. Außerdem hat jede Kachel eine feste Größe, beispielsweise 500 mm in der Breite x 500 mm in der Höhe. Ferner nutzen LED-Videowände im Allgemeinen proprietäre Datenprotokolle über einem physischen Medium, das keiner industriellen Norm entspricht, um das Videosignal auszugeben. Manche Hersteller nutzen RS485, manchen verwenden Ethernet Schicht 2, manche verwenden Ethernet Schicht 1. Aufgrund dieses nicht genormten Verfahrens der Verteilung von Daten auf die Kacheln wird für das proprietäre Format des Herstellers im Allgemeinen ein LED-Prozessor oder -Controller (im Folgenden „LED-Controller“) als Signalwandler verwendet, um ein einer Norm entsprechendes Videosignal zu bekommen, wie etwa HDMI, DVI, DisplayPort, SDI oder ein anderes Format.
-
Es ist häufig trotz des „LED-Controllers“ schwierig, Videoinhalt einfach an die Videowand zu senden, da die resultierende Auflösung der Videowand häufig keinem genormten Videoinhaltsraster entspricht. Zum Beispiel kann es sein, dass eine physische Videowandgröße für eine bestimmte Installation 5 Meter in der Breite mal 2,5 Meter in der Höhe betragen muss. Unter Verwendung einer üblichen LED-Kachelgröße würde dies bei Abmessungen wie oben angegeben (500 mm x 500 mm) zu einem Array von 10 Kacheln in der Breite x 5 Kacheln in der Höhe führen. Bei den Kacheln mit 512 x 512 Pixeln beträgt die resultierende Pixelauflösung 5120 Pixel in der Breite x 2560 Pixel in der Höhe. In diesem Fall gab die physische Größe der Videowandinstallation die Auflösung vor, da die Kacheln eine feste Größe und Pixeldichte aufweisen. Die resultierende Auflösung übertrifft eine UHD/4k-Auflösung (3840 x 2160) bei weitem, und somit muss eine herkömmliche Anzeige, welche die aktuelle UHD/4K-Technologie verwendet, mehrere Videoströme mit extrem komplexen Computern und/oder Videovorrichtungen einsetzen, um genügend Pixeldaten bereitzustellen, um die gesamte Auflösung der Videowand nutzen zu können.
-
Eine existierende Technologie zum Ansteuern dieses Beispiels für eine Videowand wird ausführlicher unter Bezugnahme auf 6, 7 und 8 erläutert. Wie in 6 dargestellt ist, müssen vier UHD-Raster 2 genutzt werden, damit das 5120 x 2560 Pixel aufweisende Kachel-Array 4 einen Abschnitt jedes Rasters überlappen kann, um genügend Pixeldaten zum Anzeigen auf den Kacheln zu empfangen. Jedes von den UHD-Rastern enthält Informationen mit nicht mehr als einer UHD/4K-Auflösung, die dem Abschnitt des Bildes entsprechen, das auf einem Abschnitt der Videowand angezeigt werden soll, der von dem mit ihm verbundenen LED-Controller angesteuert wird. Generell muss das Kachel-Array der Videowand in ausreichend viele separate Anzeigen geteilt werden, die jeweils von ihren eigenen LED-Controllern angesteuert werden, so dass kein individuelles Display eine größere Auflösung als UHD/4K hat.
-
Ein anderes Problem, das von der heutigen Technologie aufgeworfen wird, resultiert aus der Tatsache, dass die individuellen LED-Kacheln typischerweise nicht auf elektronischem Wege wahrnehmen, dass sie Teil einer einzelnen, größeren Videowand mit vielen Kacheln sind. Trotz der Tatsache, dass das Kachel-Array 4 ein scheinbar nahtloses Bild haben könnte, ist es tatsächlich, wie in 7 gezeigt, mit vier separaten Anzeigeabschnitten A, B, C und D konfiguriert, die jeweils als unabhängige Anzeigen konfiguriert sind, die jeweils eine von vier separaten Videoeingaben empfangen. Jedoch können in diesem Fall, wie dies häufig der Fall ist, die vier separaten Anzeigen keine gleichen Auflösungen haben (i.e. alle vier jeweils 2560 x 1280 Pixel), da die physischen Größen der Kacheln dies nicht gestatten. Unter Verwendung von heutiger Technologie kann eine einzelne LED nicht zwei Videoraster überbrücken, um das Kachel-Array 4 mit 5120 x 2560 Pixeln unter Verwendung von Kacheln mit 512 x 512 Pixeln zu erschaffen, weisen daher zwei Anzeigen (A und B) eine Pixelauflösung von 2560 x 1536 auf und zwei Anzeigen (C und D) weisen eine Pixelauflösung von 2560 x 1024 auf. Die erforderlichen ungleichen Anzeigeauflösungen machen somit die Einrichtung und Verarbeitung noch komplizierter, Eingaben aus Videoquellen müssen vorab präzise geparst bzw. zerlegt werden, damit sie für die spezifische Auflösung des Anzeigeabschnitts, an den sie gelenkt werden, passen. Aufgrund der Art und Weise, wie die Videoeinspeisungen (A, B, C, D) an herkömmlichen Videorastern ausgerichtet werden müssen, kommt es zu einem Verlust an Bandbreite an beiden Videorastereingaben, die in die LED-Prozessoren gehen, und auch zu einem Verlust an Pixelverarbeitungsbandbreite innerhalb der einzelnen LED-Prozessoren, da diese Pixel nicht an eine LED-Kachel in einer Anzeige gesendet werden.
-
Ein System des Standes der Technik zum Ansteuern einer Videowand 4 könnte typischerweise konfiguriert sein wie in 8 gezeigt. Unter Verwendung von existierender Technologie benötigt jeder Anzeigeabschnitt (A, B, C und D) seinen eigenen LED-Controller, der unabhängigen Videoinhalt abspielt, der dem Abschnitt der größeren Anzeigewand entspricht, von dem er ein Teil ist. Wie in 8 gezeigt ist, muss der Videosignalweg vier Mal vollständig repliziert werden, trotz der Tatsache, dass die resultierende Anzeige für den Betrachter eine einzige Anzeige ist. Nicht nur sind vier Videoquellen 6 erforderlich, die jeweils den geeigneten Abschnitt 8 des fertigen Bildes bereitstellen, sondern auch vier unabhängige LED-Controller 10. Jeder LED-Controller 10 erzeugt seinen Bildabschnitt für den entsprechenden Anzeigeabschnitt A, B, C oder D und kommuniziert mit diesem Anzeigeabschnitt über dedizierte Verbindungen 12, die für diese individuelle Paarung aus Controller/Anzeigeabschnitt spezifisch sind. In der Realität ist jedoch die Komplexität der Verkabelung viel größer als dies in der vereinfachten schematischen Darstellung in 8 gezeigt ist, da dedizierte Verknüpfungen 12 individuell mit jeder LED-Kachel verbunden werden müssen, um ihren Abschnitt des Videosignals für den Anzeigeabschnitt (A, B, C, D), in dem sich die Kachel befindet, bereitstellen zu können. Solche Notwendigkeiten für komplexe Verkabelungen haben zu anderen Problemen bei der Bereitstellung eines robusten Systems mit ausfallsicheren Schutzeinrichtungen geführt.
-
Zum Beispiel können heutige Technologien zur Schaffung und Steuerung von zu einem Array gruppierten Videovorrichtungen, wie etwa das 8 gezeigte Videowandsystem des Standes der Technik, eine große Lücke bei der Datenredundanz und Anzeigeresilienz zeigen. In heutigen Systemen werden Anzeige-Kacheln üblicherweise in einer Reihe bzw. Daisy Chain verkettet, bis die Kapazität der Datenleitung maximiert worden ist, um einen Videosignalweg für jede Kachel bereitzustellen. In manchen Systemen des Standes der Technik kann eine Backup- bzw. Sicherungsleitung verwendet werden, um einen Notlauf bereitzustellen, falls die primäre Verknüpfung bzw. der primäre Link ausfällt (aufgrund eines Fehlers einer vorgeschalteten Einrichtung oder eines Kabels). Beide Verfahren sind jedoch rudimentär und liefern immer noch nicht ein ästhetisch zufriedenstellendes Ergebnis. Darüber hinaus schützen solche Systeme nicht vor mehrfachen Ausfällen von Data Links bzw. Datenverbindungen zwischen Kacheln. Zum Beispiel führen in einem verketteten Daisy-Chain-System Ausfälle von zwei separaten Data Links trotz eines Sicherungs-Data-Link zu toten Kacheln zwischen den ausgefallenen Data Links.
-
Auch wenn zur Vereinfachung von Verbindungen Netzwerkkommunikationstechniken eingesetzt werden könnten, wird ihre Anwendung durch Kommunikationsvorgänge und Verarbeitungsschwierigkeiten mit hochauflösenden Videowänden und andere Schwierigkeiten, die von paketbasierten Netzwerken gestellt werden, beschränkt. In einem normalen Videosystem, das von Eingaben und Ausgaben gebildet wird, ist es relativ naheliegend, eine spezifische x,y-Koordinate des eingehenden Videos als Ausgangspunkt für eine erneute Sendung eines Signals zu wählen. Die x,y-Ausgangskoordinate und die Breite/Höhe des erneut zu sendenden Blocks sind leicht festzustellen, da Videoformate rasterbasiert sind - das heißt, dass die Daten Zeile für Zeile oder Teilstück für Teilstück von oben links nach unten rechts in der Abtastungsreihenfolge gesendet werden. Jedoch muss in einem Paket-geschalteten Netzwerk, beispielsweise einem Ethernet-Payload, Datenverkehr nicht an Ethernet-Switches bzw. - Netzwerkweichen geroutet werden, um Pakete in irgendeiner bedeutenden Reihenfolge zu empfangen oder zu senden - die Switches geben lediglich ein Paket von Punkt A an B aus. Die Zufälligkeit solcher Netzwerke macht bisher somit die Ausgabe von hochaufgelöstem Videoinhalt mit hoher Qualität problematisch.
-
ABRISS DER OFFENBARUNG
-
In einer Implementierung ist die vorliegende Offenbarung auf ein Verfahren zum Ausgeben von Pixeldaten umfassendem Videoinhalt an eine von einem Array von Videoanzeige-Kacheln gebildete hochauflösende Videowand gerichtet, wobei jede von den Videoanzeige-Kacheln eine eindeutige Adresse innerhalb des Array aufweist. Das Verfahren schließt ein: Empfangen eines oder mehrerer Videoeingangsströme, die Pixeldaten zum Rendern des Videoinhalts auf der Videowand enthalten; virtuelles Rendern des Videoinhalts aus dem einen oder den mehreren Videoeingangsströmen in einem Speicher, um eine virtuelle Darstellung des Videoinhalts in dem Speicher mit einer Auflösung zu bilden, die der Auflösung der Videowand zumindest gleich ist; Aufteilen von Pixeldaten aus der virtuellen Darstellung in Pakete, die jeweils die eindeutige Kacheladresse für Kachelpositionen in der Videowand, die der Pixeldatenposition in der virtuellen Darstellung entspricht, aufweisen; und Senden der Pixeldaten-Pakete an die Videowand über ein Paket-geschaltetes Netzwerk.
-
In einer anderen Implementierung ist die vorliegende Offenbarung auf einen Videocontroller zum Rendern von Videoinhalt auf einer hochauflösenden Videowand gerichtet, wobei die Videowand von einem Array von Anzeige-Kacheln gebildet wird, wobei jede von den Kacheln eine eindeutige Adresse innerhalb des Array aufweist. Der Videocontroller weist einen Prozessor und Speicher auf, der dafür ausgelegt ist, einen oder mehrere Videoeingangsströme zu empfangen, die Pixeldaten zum Rendern des Videoinhalts über dem Kachel-Array enthalten, der Speicher enthält Befehle, die dafür ausgelegt sind, von dem Prozessor ausgeführt zu werden, um den Videocontroller zu veranlassen, den Videoinhalt aus dem einen oder den mehreren Videoeingangsströmen in dem Speicher virtuell zu rendern, um in dem Speicher eine virtuelle Darstellung des Videoinhalts mit einer Auflösung zu bilden, die der Auflösung der Videowand zumindest gleich ist; Pixeldaten aus der virtuellen Darstellung in Pakete aufzuteilen, die jeweils die eindeutige Kacheladresse für Kachelpositionen in dem Kachel-Array der Videowand, die der Pixeldatenposition in der virtuellen Darstellung in dem Speicher entspricht, aufweisen; und die Pixeldaten-Pakete über ein Paket-geschaltetes Netzwerk an die Videowand zu senden.
-
In einer noch anderen Implementierung ist die vorliegende Offenbarung auf ein Videowandsystem gerichtet, das aufweist: ein Array von aneinander angrenzenden Anzeige-Kacheln, die eine Videowand bilden, wobei jede von den Anzeige-Kacheln eine eindeutige Adresse und eine von einem Pixel-Array gebildete Anzeigeoberfläche, die von mehreren Kachelrändern umgeben ist, aufweist, wobei die Anzeigewand einen Außenrand aufweist, der von offenen Kachelrändern definiert wird, die an keinen anderen Kachelrand angrenzen; Datenverbindungen an jedem Kachelrand, die jeweils einen Data Link mit jeder angrenzenden Kachel in dem Array aus Anzeige-Kacheln bilden, wobei die Data Links dafür ausgelegt sind, zumindest Videosignaldaten und Steuerdaten zu senden; einen Videocontroller, der dafür ausgelegt ist, einen oder mehrere Videoeingangsströme zu empfangen und paketierten Videoinhalt zum Anzeigen auf der Videowand auszugeben; mindestens einen primären Network Switch bzw. mindestens eine primäre Netzwerkweiche, der bzw. die mit dem Videocontroller über mindestens eine primäre Netzwerkverbindung kommuniziert; mindestens eine Sicherungs-Netzwerkweiche, die mit dem Videocontroller über mindestens eine Sicherungs-Netzwerkverbindung kommuniziert; primäre Kachelverbindungen, die unabhängige Netzwerkverbindungen zwischen der mindestens einen primären Netzwerkweiche und jedem von zumindest einer ersten Mehrzahl von Kachelrand-Datenverbindungen an offenen Kachelrändern umfassen; und Sicherungs-Kachelverbindungen, die unabhängige Netzwerkverbindungen zwischen der mindestens einen Sicherungs-Netzwerkweiche und jedem von zumindest einer zweiten Mehrzahl von Kachelrand-Datenverbindungen an offenen Kachelrändern umfassen; wodurch die mindestens eine primäre Netzwerkweiche paketierten Videoinhalt gemäß Kacheladressen, die den Videoinhaltspaketen zugewiesen wurden, zum Anzeigen an das Kachel-Array schickt und die mindestens eine Sicherungs-Netzwerkweiche mehrere redundante Pfade für Videoinhaltspakete für den Fall eines Ausfalls von einem oder mehreren Kachel-Datenverbindungen bereitstellt, um Anzeigefehler, die aus ausgefallenen Kachel-Datenverbindungen resultieren, zu eliminieren oder zu reduzieren.
-
Figurenliste
-
Für den Zweck der Veranschaulichung der Offenbarung zeigen die Zeichnungen Aspekte von einer oder mehreren Ausführungsformen der Offenbarung. Man beachte jedoch, dass die vorliegende Offenbarung nicht auf die genauen Anordnungen und Instrumentierungen beschränkt ist, die in den Zeichnungen gezeigt sind, worin:
- 1 ein Blockschema ist, das eine Ausführungsform eines Verarbeitungssystems und -verfahrens einer Videowand gemäß der vorliegenden Offenbarung abbildet.
- 1A ein partielles Blockschema ist, das eine alternative Bildauswahl unter Verwendung der Systeme und Verfahren von 1 abbildet.
- 2 ein Ablaufschema ist, das ein Verfahren gemäß der vorliegenden Offenbarung darstellt.
- 3 ein Blockschema eines Multicontroller-Verarbeitungsclusters gemäß der vorliegenden Offenbarung ist.
- 4 ein schematisches Diagramm einer Ausführungsform eines vernetzten Videowandsystems gemäß der vorliegenden Offenbarung ist.
- 4A eine Detailansicht der oberen linken Ecke der in 4 gezeigten Videowand ist.
- 4B ein schematisches Diagramm einer alternativen Ausführungsform eines vernetzten Videowandsystems gemäß der vorliegenden Offenbarung ist.
- 5 ein Blockschema ist, das ein Beispiel für eine Rechenvorrichtung zeigt, wie sie verwendet werden kann, um hierin offenbarte Systeme und Verfahren auszuführen.
- 6 ein Schema ist, das eine Entsprechung eines großen Array aus Videowandkacheln zu Standard-UHD/4K-Videorastern darstellt.
- 7 ein Schema ist, das eine Anordnung von Anzeigen zur Schaffung des großen Array aus Videowandkacheln in 5 darstellt.
- 8 ein Blockschema ist, das ein System des Standes der Technik zur Bereitstellung von Videoinhalt an einer großen Videowand, wie der in 5 und 6 gezeigten Videowand, darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Systeme und Verfahren dieser Offenbarung präsentieren einen Paradigmenwechsel für den Betrieb von Videowandcontrollern, die hierin als Videocontroller bezeichnet werden und manchmal auch Videoprozessor oder LED-Prozessor genannt werden. Nicht nur vereinfachen offenbarte Systeme und Verfahren die Dinge für einen Benutzer, der eine Videowand einrichtet, sondern sie stellen auch einen unbegrenzten Pixelcanvas an dem Kachel-Array der Videowand bereit, ohne dass man sich darüber Gedanken machen müsste, ob Kacheln Rastergrenzen überschreiten. In bestimmten Ausführungsformen wird dies dadurch bewerkstelligt, dass innerhalb des Videocontrollers ein einziger unbegrenzter Pixelcanvas geschaffen wird, dessen Pixelauflösung der Auflösung des Kachel-Array der Anzeigewand entspricht. Ein einzelner Videocontroller gemäß der vorliegenden Offenbarung ist in der Lage, die Mehrzahl von Videorastern, die empfangen werden, um die Videowandauflösung zu unterstützen, zu empfangen und zu einem einzelnen unbegrenzten Canvas mit angemessener Auflösung zusammenzuführen, der dann in spezifische Videowandeingaben zerlegt und umpaketiert werden kann, um an dem richtigen Kachel-/Pixelort in der Videowand empfangen zu werden. Darüber hinaus können in dem Fall, dass eine Pixelauflösung der Videowand die Kapazität eines einzelnen Videocontrollers überschreitet, Videocontroller, wie sie hierin offenbart werden, miteinander vernetzt werden, um ihre Verarbeitungskapazität zu kombinieren, so dass alle Controller ihren jeweiligen unbegrenzten Pixelcanvas zu einem einzigen Superpixelcanvas kombinieren, der die Mehrzahl von unbegrenzten Pixelcanvassen aus der Mehrzahl von vernetzten Controllern umfasst. Anders ausgedrückt arbeiten die Mehrzahl von Videocontrollern als Cluster (e.g. als verteiltes Rechnernetz), um ein vereinheitlichtes Pixeldatenprotokoll an das Kachel-Array der Videowand zu senden. Unter Verwendung der hierin beschriebenen Verfahren und Systeme können Anzeige-Kacheln in einem Videowand-Array eingegebene Videoraster überspannen, während sie als einzelnes Array gesteuert werden (und nicht als ein Array pro Videoraster, wie im Stand der Technik). Auch wenn die Lehren der vorliegenden Offenbarung auf jede Art von hochauflösender, von einem Array gebildeter Videoanzeigewand anwendbar sind, bietet die vorliegende Offenbarung bestimmte Vorteile für die Einrichtung und Steuerung von Videowänden, die von LED-Kacheln gebildet werden, und das Design von LED-Videowandcontrollern (a/k/a „LED-Prozessoren“).
-
Unter Verwendung von Videosignalen auf IP-Basis, wie etwa den SMPTE-ST2110- oder SDVoE-Protokollen, oder einem TCP/IP-Film- oder Fernseh-Streaming-Dienst, ist es möglich, Signale zwischen Quellen und Zielen dynamisch zu definieren, da sie alle ein gemeinsames Data Backbone von hoher Kapazität nutzen, statt dass ein Signal durch eine eigene Kabel/Signal-Beziehung definiert wird, wie dies früher der Fall war. Dies macht es möglich, dass das Netzwerk Intelligenz besitzt, um zu ermöglichen, dass Vorrichtungen Dinge wie Auflösung und Koordinaten dynamisch ermitteln, um einen Lastenausgleich zwischen einer Mehrzahl von Verarbeitungsvorrichtungen zu ermöglichen.
-
1 stellt eine Ausführungsform eines Systems 100 gemäß der vorliegenden Offenbarung zur Bereitstellung eines Videos an einer Videowand 102 dar, die (in diesem der Veranschaulichung dienenden Beispiel) die gleiche Auflösung hat wie die oben beschriebene Videowand 4 (5 Meter in der Breite x 2,5 Meter in der Höhe, gebildet aus 50 512 x 512 Pixel aufweisenden Kacheln 104 von einem halben Quadratmeter mit einer Gesamtauflösung von 5120 Pixeln in der Breite x 2560 Pixeln in der Höhe). Wie der Durchschnittsfachmann erkennen wird, sind die Lehren der vorliegenden Offenbarung ebenso auf Videowände beliebiger Auflösung oder Größe anwendbar. Wie bereits beschrieben wurde, stellt eine Videoquelle 106 vier separate Videoeingaben bereit, die vier UHD-Raster darstellen, um genügend Pixeldaten bereitzustellen, mit denen die physische Auflösung der Videowand 102 erreicht werden kann. Anders als bei Systemen des Standes der Technik müssen die vier eingegebenen Raster jedoch nicht sorgfältig auf die physische Konfiguration der Anzeige-Kacheln oder auf Grenzen innerhalb der Videowand 102 abgestimmt werden. Wie nachstehend ausführlicher beschrieben wird, kann die Rastergröße oder Auflösung des eingegebenen Videodatenstroms von dem endgültigen Anzeige-Kachelfeld abweichen, wobei die einzige Beschränkung darin besteht, dass kein individueller Eingangsstrom die Bandbreitenbegrenzungen der Eingangsverbindungen des Videocontrollers überschreitet und die Eingangsströme gemeinsam die endgültige Auflösung der Anzeigewand erreichen (oder übertreffen). Eine Kommunikationsverknüpfung bzw. ein Kommunikations-Link 110 zwischen einer Videoquelle 106 und einem Videocontroller 108 kann ein beliebiger geeigneter videosignalführender Link sein, wie etwa HDMI, DVI, DisplayPort, SDI, etc. Alternativ dazu können die Eingaben aus Videoquellen als auf IP basierende Videosignale (oder ein anderes digitales/paketiertes Netzwerksystem) bereitgestellt werden, in welchem Fall der Kommunikations-Link 110 eine geeignete IP-Netzwerkkommunikationsverbindung oder eine andere geeignete Netzwerkverbindung sein kann.
-
Der Videocontroller 108 weist eine Benutzeroberfläche (GUI) 120 auf, die eine Anzeige der Videoquelle aufweist. Der Videocontroller 108 kann auch andere Rechenvorrichtungskomponenten, wie etwa einen Speicher, einen Speicher, einen oder mehrere Prozessoren und interne Kommunikationseinrichtungen etc. aufweisen. Der Videocontroller 108 empfängt auch Informationen über eine Konfiguration der Videowand 102, und zwar entweder automatisch über eine bidirektionale Kommunikation mit der Videowand oder über eine direkte Eingabe des Benutzers. Der Videocontroller 108 vereinigt die Mehrzahl von empfangenen Videorastern (in diesem Beispiel vier) zu einem einzigen unbegrenzten Pixelcanvas, bei dem es sich um eine virtuelle Neuschaffung einer höherauflösenden Videoeingabe handelt, innerhalb eines Speichers des Controllers. Der in dem Speicher des Controllers geschaffene Pixelcanvas ist in dem Sinne unbegrenzt, als er als eine virtuelle Neuschaffung keinen physischen Beschränkungen unterliegt und jede Auflösung einer Videowand erreichen oder übertreffen kann. Wo die Auflösung der Videowand die Verarbeitungskapazität eines einzelnen Videocontrollers überschreitet, können die Videocontroller der vorliegenden Offenbarung vernetzt werden, um einen Verarbeitungscluster zu bilden, wie nachstehend beschrieben. Der unbegrenzte Pixelcanvas ermöglicht einem individuellen Videocontroller, das Videosignal zum Senden an die endgültige Anzeigevorrichtung über ein Paket-geschaltetes Netzwerk mit geeigneter Netzwerkadressierung neu zu paketieren. Im Falle eines Verarbeitungsclusters aus Videocontrollern (siehe z.B. 3) können die Videocontroller miteinander kommunizieren, um zu ermitteln, welcher Controller am wirkungsvollsten das Videosignal zum Senden an die endgültige Anzeigevorrichtung umpaketieren kann.
-
In manchen Ausführungsformen werden die so zusammengeführten eingegebenen Videoraster dem Benutzer auf einer GUI 120 als unbegrenzter Pixelcanvas 122 präsentiert. Die GUI 120 präsentiert auch ein Rahmenwerkzeug 124, das die Außengrenze der Anzeigefläche (den Rahmen) der Videowand 102 darstellt. Das Rahmenwerkzeug 124 ermöglicht dem Benutzer die Positionierung des Videobilds innerhalb des Rahmens der Videowand. Wenn die Auflösung oder das Seitenverhältnis des Bildes aus der Videoquelle und die der Videowand nicht gleich sind, hat der Benutzer die Option, das Rahmenwerkzeug 124 zu verwenden, um den Abschnitt des Videobilds auszuwählen, der angezeigt werden soll, die Videoeingabe durch einen Videoskalierer (der in den Videocontroller 108 integriert sein oder von diesem getrennt vorliegen kann) weiter zu verarbeiten oder das Videobild neu zu sampeln, damit es in den Rahmen passt.
-
Die GUI 120 präsentiert dem Benutzer auch ein Rasterwerkzeug 126. Das Rasterwerkzeug 126 ermöglicht dem Benutzer, den Abschnitt jeder Videorastereingabe zu bestimmen, der an das Kachel-Array der Videowand 102 adressiert werden soll. Wie bereits beschrieben, erfordert die Gesamt-Pixelauflösung der Videowand 102 vier Videoraster, um genügend Pixelinformationen liefern zu können. In dem Beispiel, das in 1 präsentiert wird, setzt das Rasterwerkzeug 126 den Pixelcanvas 122 innerhalb des Rahmenwerkzeugs 124 aus den vier Quadranten der Videoquelle 106 zusammen, wobei jeweils einer einem Abschnitt des Pixelcanvas entspricht, der von dem Videocontroller 108 virtuell erzeugt wird. Das Rasterwerkzeug 126 kann an beliebiger Stelle innerhalb des Rahmenwerkzeugs 124 positioniert werden, solange kein Videoanzeigesegment, das von dem Rasterwerkzeug definiert wird, die Auflösung der eingegebenen Videoraster überschreitet. Man beachte, dass so definierte Videoanzeigesegmente nicht an der physischen Konfiguration des Kachel-Array ausgerichtet sein müssen. Während 1 zeigt, dass der horizontale Teiler des Rasterwerkzeugs 126 an der physischen Grenze zwischen zwei Kachelreihen ausgerichtet ist, zeigt 1A eine andere, ebenso valide Anordnung, bei welcher der horizontale Teiler des Rasterwerkzeugs 126 unterhalb der Mitte der mittleren Kachelreihe positioniert ist, so dass die vier definierten Videosegmente jeweils eine gleiche Auflösung von 2560 x 1280 Pixel aufweisen. (Man beachte, dass die Darstellung des Rasterwerkzeugs an der Anzeige 102 in 1 und 1A nur ein Bezugspunkt ist, um das Verstehen der Offenbarung zu erleichtern. Sie bildet keinen Teil der Ausführungsformen). Hierin offenbarte Ausführungsformen stellen somit einen wichtigen Vorteil gegenüber Systemen des Standes der Technik bereit, da die eingegebenen Videoraster nicht „vordefiniert“ werden müssen, damit sie dem physischen Layout des Kachel-Array entsprechen, bevor sie an den Videocontroller ausgegeben werden. Es ist nur notwendig, dass die individuellen Eingaben keine Bandbreitenbeschränkungen des Eingabenetzes überschreiten und dass die eingegebenen Videoraster insgesamt die Auflösung der Anzeigewand erreichen oder übertreffen. Innerhalb dieser minimalen Parameter ist die Eingabe/Ausgabe-Beziehung der Videodatenströme beliebig, und die eingegebenen und ausgegebenen Videodatenströme müssen überhaupt keine gegenseitige geografische Ausrichtung aufweisen.
-
Da die Paketierung (oder Rasterbildung) der eingehenden Videosignale nicht zu der Größe des Kachel-Array passen muss (i.e. die Grenze des virtuellen Videorahmens hat nichts mit einer Grenze einer physischen Videowandkachel zu tun), setzt der Videocontroller zuerst den Videorahmen in dem Speicher zusammen, zerschneidet das Video wieder in die Stücke von Kachelgröße und paketiert das Video dann neu in Pakete mit der richtigen Größe, die an das vorgesehene Kachelziel adressiert sind, jeweils möglichst in Echtzeit (im Allgemeinen innerhalb eines Videorahmens). Man beachte, dass das Beispiel von 1 und 1A zwar vier Videoeingangsraster (-ströme) verwendet, dass aber eine beliebige Zahl von Eingangsrastern verwendet werden kann. Wie der Durchschnittsfachmann erkennen wird, kann die Zahl der Eingangsraster auf einen einzelnen Eingabestrom herunterskaliert oder auf über 100 Ströme hochskaliert werden, solange die Bandbreiten- und Endauflösungsparameter erfüllt werden. Im Allgemeinen können hierin offenbarte Ausführungsformen eine Anzahl von N auf Paketen basierenden Videoeingangsströmen (IP oder MAC oder andere), eine Anzahl von X auf Videopaketen basierenden Kachelausgangsströmen (wobei jeder Kachelausgangsstrom die Pixeldaten für eine bestimmte Kachel umfasst) unterstützen, wobei keine Beziehung zwischen den Eingangs- und Ausgangspaketkgrenzen gegeben sein muss, außer dass die Eingangszahl N kleiner ist als die Ausgangszahl X.
-
Ein Überblick über eine Ausführungsform eines Verfahrens zum Ausgeben von Videoinhalt an eine Videowand gemäß der vorliegenden Offenbarung ist in dem Ablaufschema von 2 gegeben. In einem Schritt 140 bestimmt das System das physische Layout und die Pixelauflösung der Videowand. In manchen Ausführungsformen des Systems kann dies durch direkte Kommunikation zwischen dem Videocontroller und der Videowand geschehen. Zum Beispiel kann von jeder Kachel über das Netzwerk ihre eindeutige ID, ihre Größe oder Auflösung und ihre Position in Bezug auf angrenzende Kacheln abgefragt werden. Alternativ dazu kann ein Benutzer solche Informationen direkt über die Benutzeroberfläche oder einen Datei-Download eingeben. In einem Beispiel sind der Videocontroller und das Kachel-Array der Videowand als Netzwerk konfiguriert, wobei jede Kachel in dem Array eine eindeutige Adresse, wie etwa eine MAC- oder IP-Adresse, aufweist. Kacheln melden sich automatisch oder nach Aufforderung an dem Netzwerk, und der Videocontroller bestätigt das Vorhandensein der Kacheln. Danach kommunizieren die Kacheln und der Videocontroller mit jeder Kachel, die ihre Anzeigeinformationen, insbesondere ihre anzeigbare Pixelbreite und -höhe, an den Videocontroller sendet. Dank der Anzeigeinformationen über die einzelnen Kacheln in dem Kachel-Array der Videowand kennt der Videocontroller den Ort jeder Kachel und die Art und die Menge der Daten, die an die einzelnen Kacheln zu senden sind. Diese Kachelanzeigeinformationen können als Teil einer Datenbank des Videocontrollers gespeichert werden, die der Videocontroller dann verwenden kann, um die Kachel auf der GUI des Videocontrollers anzuzeigen, wodurch es dem Benutzer möglich ist, die Kachel spezifisch an ihrem Platz in dem Kachel-Array zu platzieren, um das Kachel-Array der Videowand in der Datenbank des Videocontrollers manuell zu konstruieren. In manchen Ausführungsformen können Videokacheln mit vier Kommunikations-Links versehen sein, einer an jedem Rand (oben/unten/links/rechts), wodurch es den Kacheln gestattet ist, mit angrenzenden Kacheln zu kommunizieren, um die Adressinformationen der angrenzenden Kacheln zu empfangen. Dank der Kenntnis der Adresse und der relativen Position jeder angrenzenden Kachel kann der Videocontroller automatisch die Konfiguration des Kachel-Array im Speicher konstruieren, indem er von jeder Kachel die Identität der ihr benachbarten Kacheln abfragt. Ein Durchschnittsfachmann kann das Kacheladressierungsprotokoll auf Basis der Lehren der vorliegenden Offenbarung so konfigurieren, wie es für ein bestimmtes System am besten passt.
-
In einem Schritt 142 wird die benötigte Anzahl von Videoeingaben, um die Pixelauflösung der Videowand zu erreichen, ermittelt. In manchen Fällen kann dieser Schritt früher als die Pixelauflösung der Videowand erledigt werden, und benötigte Videoeingaben können dem Benutzer vorab bekannt sein. In anderen Fällen kann der Videocontroller dafür ausgelegt sein, diese Informationen zu ermitteln und die Videoquelle anzuweisen, die benötigte Anzahl von Videoeingaben auszugeben.
-
Sobald die Videoeingaben in dem Videocontroller empfangen wurden, kombiniert der Controller in einem Schritt 144 die Videoeingaben im Speicher des Controllers, um den einzelnen virtuellen, unbegrenzten Pixelcanvas zu bilden. Unter Verwendung des einzelnen unbegrenzten Pixelcanvas werden in einem Schritt 146 Abschnitte der mehreren Videoeingaben geeigneten Videowandsegmenten zugewiesen, wo die Abschnitte angezeigt werden, und kombiniert, um das Videobild als ein einzelnes zusammenhängendes Video über der Videowand neu zu schaffen. In einer Ausführungsform wird auf einer grafischen Benutzeroberfläche (GUI), die von dem Videocontroller angesteuert wird, eine Abbildung des einzelnen unbegrenzten Pixelcanvas präsentiert. Schritt 146 kann durch eine Bedienung von Grafikwerkzeugen über die GUI des Videocontrollers von einem Benutzer manuell durchgeführt werden, oder die Zuweisung kann automatisch erfolgen, so dass sie von dem Videocontroller ohne eine Bedienung durch den Benutzer durchgeführt wird.
-
Nachdem jedes Eingangsraster (jede Videoeingabe) einem Eingangssegment des Kachel-Array der Videowand zugewiesen wurde, paketiert der Videocontroller in einem Schritt 150 auf Basis von Kachel-Array-Adressen wie oben beschrieben jede Videoeingabe gemäß einem zugewiesenen Videowandsegment neu. In alternativen Ausführungsformen können die Schritte 146 und 150 kombiniert werden. Dann werden für das Ausgabestadium 152 die kleineren Kachelpakete versendet, die für Endpunkte von viel geringerer Größe bestimmt sind, und werden somit auf der Seite des Kachel-Array wieder zu einem Bild zusammengesetzt. Die „unverknüpfte“ Natur des Ethernet, das in seinem Nutzlastmuster gegenüber einem herkömmlichen Videoraster, das in einer gut bekannten und etablierten Reihenfolge ankommt, einigermaßen zufällig ist, unterscheidet die offenbarten Ausführungsformen von älteren Systemen.
-
In einem Schritt 152 werden die neu paketierten Datenströme an das Netzwerk ausgegeben, das die Videoanzeigewand verbindet, und in einem Schritt 154 lenken die Netzwerkweichen die Videopakete an die entsprechenden Kacheladressen, wo sie auf der Videowand präsentiert werden, die ein nahtloses Videobild bildet.
-
Hierin offenbarte Systeme und Verfahren stellen eine erhöhte Flexibilität bei der Steuerung extrem großer Videowandkonfigurationen unter Verwendung von Clusterrechenverfahren zum Ausbilden eines verteilten Rechennetzes, das mehrere Videocontroller 108 verknüpft, bereit. Wenn beispielsweise die Pixeldatenanforderungen einer großen Videowand die Pixelkapazität eines einzelnen Videocontrollers 108 überschreiten, können mehrere Videocontroller 108 vernetzt werden, um ein LED-Verarbeitungscluster 190 zu bilden, wie in 3 gezeigt. In diesem Beispiel werden vier Videocontroller 108 über Netzwerk-Links 192, wie etwa Ethernet-Verbindungen, vernetzt. Es kann eine beliebige Anzahl von Controllern vernetzt werden, um die Pixelanforderungen einer bestimmten Videowand zu erfüllen. Das Verarbeitungscluster 190 ist so konfiguriert, dass alle Videocontroller 108 ihre jeweilige Mehrzahl von unbegrenzten Pixelcanvassen 122 zu einem einzelnen Supercanvas kombinieren, der dem Benutzer auf der GUI 120 präsentiert wird, wie oben beschrieben. Die Mehrzahl von vernetzten Videocontrollern 108 arbeitet als ein Cluster, um ein vereinheitlichtes Pixeldatenprotokoll an das Kachel-Array zu senden, und Anzeige-Kacheln können eingegebene Videoraster überspannen, während sie als ein einzelnes Array gesteuert werden (und nicht als Array pro Videoraster). Der vernetzte Cluster kann einen konsensbasierten Algorithmus verwenden, um eine Zustandsmaschine automatisch über mehreren Prozessoren zu verteilen, auch wenn viele andere Clusterbildungsmethoden möglich sind. Die Steuerung des Verarbeitungsclusters 190 kann von einem Fachmann auf dem Gebiet des Network Computing auf Basis der Lehren der vorliegenden Offenbarung auf mehreren verschiedenen Wegen konfiguriert werden. Zum Beispiel kann das Verarbeitungscluster 190 so konfiguriert werden, dass es durch eine GUI oder API von einem Endbenutzer und/oder durch einen beliebigen individuellen Videocontroller, der Teil des Clusters ist, gesteuert werden kann. Eine Endbenutzersteuerung kann auch über eine GUI bereitgestellt werden, die auf einem der Videocontroller gehostet ist, der Teil des Clusters ist. In einer anderen Alternative ist die Endbenutzersteuerung eine webbasierte GUI, die auf einem der Videocontroller, der Teil des Verarbeitungsclusters 190 ist, gehostet oder von diesem bedient wird.
-
Aufgrund der relativ hohen Bandbreite des Ethernet und der vergleichsweise geringen Pixelzahl von selbst größeren Videowänden kann es von Vorteil sein, Kacheln mit mindestens einem oberen und einem unteren Port miteinander zu verknüpfen. Für eine Netzwerkredundanz ist es möglich, das paketierte Video an mehrere Links an einer Kachel (obere und untere Eingabe-Ports) gleichzeitig zu senden. In Fällen, wo die Kacheln mehr als zwei Ports aufweisen, beispielsweise vier Ports, jeweils einen auf jeder Seite, wie in dem vernetzten Videowandsystem 160 in 4, kann das Ethernet von allen vier Seiten jeder Kachel gespeist werden. Für eine weitere Redundanz ist es aufgrund der Fähigkeiten des Ethernet Switch möglich, mehr als vier Ströme zu jeder Kachel zu senden. Zum Beispiel hört die Kachel N+1 auf Paketströme, und ein Controller kann der Kachel sagen, welcher Strom eine höhere Priorität aufweist. Falls ein bestimmter Strom nicht verfügbar ist, kann die Kachel so programmiert werden, dass sie den Strom mit der nächsthöheren Priorität anzeigt, und so weiter.
-
Ein Beispiel für ein vernetztes Videowandsystem 160 mit robuster Kachelredundanz, das Vorteil aus den oben genannten Merkmalen zieht, ist in 4 und 4A gezeigt. Das vernetzte Videowandsystem 160 ist ein Beispiel für eine Ausführungsform des in 1, 1A und 3 gezeigten Netzwerkes 130. In dem Beispiel von 4 ist das vernetzte Videowandsystem 160 eine LED-Videowand und weist somit den LED-Controller 162 auf, der sich der Methodik des unbegrenzten Pixelcanvas zum Ausgeben von Videoinhalt, wie oben unter Bezugnahme auf den Videocontroller 108 beschrieben, bedienen kann. Andere Verarbeitungsmethodiken können ebenfalls in dem LED-Controller 162 eingesetzt werden. Die Videowand 164 weist ein Array von LED-Kacheln 166 auf, aber es können auch andere Videoanzeigemoden eingesetzt werden. Dieses spezielle Beispiel zeigt ein Array von 10 x 5 Kacheln, aber es kann jede Anzahl von Kacheln verwendet werden. Jede von den Kacheln 166 ist mit vier Kommunikations-Links 168, einer auf jeder Seite der Kachel, versehen. (Gebogene Pfeile innerhalb der Videowand 164 in 4 stellen einen Kommunikations-Link dar. Nur vier stellvertretende Links sind mit einer Bezugszahl 168 gekennzeichnet, um 4 nicht zu überfrachten; die detaillierte Ansicht in 4A enthält mehr Kennzeichnungen). Die Kommunikations-Links 168 können von auf Ethernet basierenden Verbindungen zum Übertragen von Videodaten und Kachelkommunikation mit ausreichender Geschwindigkeit, um Latenzprobleme in der Videoeingabe zu vermeiden, basieren. Man beachte, dass zur Bereitstellung eines vollständig redundanten Systems die Kommunikations-Links 168 sowohl dem Kachelvermaschungsnetz als auch dem Datennetz Redundanzmechanismen bereitstellen.
-
In dem Beispiel von 4 sind zwei Netzwerkweichen gezeigt: die primäre Netzwerkweiche 170 und die Sicherungs-Netzwerkweiche 172, die mit dem LED-Controller 162 über primäre und Sicherungs-Netzwerkverbindungen 174 bzw. 176 kommunizieren. Auch wenn zwei Netzwerkweichen gezeigt sind, könnte ein anderes Beispiel vier Netzwerkweichen einsetzen, jeweils eine, die primäres oder Sicherungsvideo von jeder Ecke des LED-Kachel-Array einspeist. Ferner kann eine Redundanz durch Verbinden von primären und Sicherungsweichen über eine oder mehrere Netzwerk-Verbindungsleitungen 178 bereitgestellt werden. Die primären und Sicherungs-Netzwerkverbindungen 174, 176, ebenso wie die optionalen Netzwerk-Verbindungsleitungen 178 (falls vorgesehen) können Hochgeschwindigkeits-Netzwerkverbindungen, wie etwa Gigabit-Ethernet oder höher, unter Verwendung eines oder mehrerer Kupfer- oder Glasfaserkabel umfassen. Ebenso kann auch mehr als ein LED-Controller 162 eingesetzt werden, beispielsweise ein Cluster, wie in 3 gezeigt. Netzwerkverbindungen 182, die herkömmliche Ethernet-Kabel sein können, stellen Videoeingaben und Datenkommunikation mit Kacheln 166 über Kommunikations-Links 168e an den offenen Rändern von Randkacheln 166e am Außenrand der Videowand bereit (siehe 4A). Bei Kacheln 166 mit Rändern, die anderen Kachelrändern gegenüberliegen, vereinen die Kommunikations-Links 168 die aneinander angrenzenden Kacheln. Die Kommunikations-Links 168 können auch optional dafür ausgelegt sein, Leistung an die Kacheln auszugeben.
-
Wegen der, wie in 4 gezeigt, von mehreren Zwischenkachel-Kommunikations-Links geschaffenen Gitter-Netzwerk-Topologie, die primäre und der Sicherung dienende Multipoint-Data-Links (eine primären Weiche 170 und eine Sicherungsweiche 172, jeweils mit unabhängigen Netzwerkverbindungen 182 für Kacheln 166) aufweist, gibt es mehrere Datenwege zu jeder individuellen LED-Kachel 166, so dass ein Ausfall von einem oder mehreren Kommunikations-Links zwischen Kacheln nicht zu toten Kacheln in dem Kachel-Array führt, wie bei der herkömmlichen Daisy-Chain-Verkettung der Video-Links zwischen Kacheln. Diese Anordnung schützt sogar vor bestimmten katastrophalen Ausfallmodi, wie etwa einem Ausfall einer gesamten Kolonne von nebeneinander liegenden Links 168 zwischen Kacheln 166, was passieren kann, wenn ein großes Objekt von hinten auf die Videowand fällt und eine ganze Verkabelungssäule physisch beschädigt (wenn beispielsweise Kabel abgerissen werden, wenn ein großes Werkzeug umfällt). Ohne die Sicherungs-Data-Links, die über die Sicherungs-Netzwerkweiche 172 und ihre unabhängigen Netzwerkverbindungen 182 bereitgestellt werden, würde die Hälfte der Videowand 164 in einem solchen katastrophalen Ausfallmodus keine Daten empfangen und wäre nicht in der Lage, ein Bild anzuzeigen.
-
4B stellt eine andere Ausführungsform eines vernetzten Videowandsystems 160A dar. Das System 160A kann im Wesentlichen ebenso aufgebaut sein wie das System 160, aber in diesem Fall mit zwei primären Netzwerkweichen 170 und zwei Sicherungs-Netzwerkweichen 172. Die primären Netzwerkverbindungen 174 und die Sicherungs-Netzwerkverbindungen 176 sind somit dupliziert, ebenso wie optionale Verbindungsleitungen 178 zwischen Netzwerkweichen. In 4A sind Randkacheln um den Außenrand der Videowand 164A um der größeren Klarheit willen separat mit 166e gekennzeichnet. Die Netzwerkverbindungen 182 sind mit den Kommunikations-Links an den offenen, äußeren Rändern jeder Randkachel um den Außenrand der Videowand 164A herum eingerichtet. Die Kommunikations-Links 168 sind in 4B nicht separat gezeigt, sind aber auf die gleiche Weise bereitgestellt wie in 4 und 4A gezeigt.
-
Hierin offenbarte Ausführungsformen stellen somit neben anderen Vorteilen ein Netzwerk von LED-Controllern bereit, die ihre Eingangsvideoraster nahtlos zu einem einzelnen Supercanvas mit unbegrenzter Pixelauflösung kombinieren, der leicht so konfiguriert werden kann, dass er zu jeder Videowand passt. Diese Techniken ermöglichen eine lichtemittierende Anzeigevorrichtung, die in der Lage ist, zwei oder mehr herkömmliche Videoraster zu überspannen.
-
Beschriebene Ausführungsformen bieten auch eine Verkabelung mit beschränkungsfreier Topologie. Es werden Ausführungsformen bereitgestellt, in denen alle Videocontroller ein superschnelles Network Backbone (i.e. 100G) zwischen allen Netzwerkweichen speisen. Mit dieser Konfiguration braucht das System keine starre Verkabelungsbeziehung zwischen Videocontrollern und Kacheln wie in Systemen des Standes der Technik.
-
Physische Ausführungsformen schließen eine Beispiels-Videowand ein, die von einem Kachel-Array gebildet wird, das so groß ist, dass es mehrere Videocontroller überspannen muss. Die Eingabe in die einzelnen Videocontroller kann aus einem gemeinsamen TCP/IP-basierten Videonetz kommen, so dass jeder Videocontroller Zugang zu jedem Abschnitt des Bildschirmrasters hat. Die Video-Controller kommunizieren miteinander als Rechennetz, um zu ermitteln, wie das Raster aufgeteilt werden soll, um die Last gleichmäßig unter sich aufzuteilen. Jeder Video-Controller übermittelt dann die Koordinaten und die Größe des Teilrasters, die anzufordern sind, als Eingabe an das IPbasierte Videonetz. Ferner kann die Ausgabe von jedem Videocontroller, der ein Array von Kacheln speist, in ein oder mehrere Ethernet-Netzwerke eingespeist werden, die von allen Videocontrollern des Systems gemeinsam genutzt werden, so dass die summierte Bandbreite des Netzwerkes von ausreichender Kapazität ist, um die Kommunikation mehrerer Videocontroller, die viele Kacheln speisen, zu bewältigen. Die Videocontroller arbeiten somit gemeinsam, um zu ermitteln, wie die Kacheln aufgeteilt werden sollen, um die Verarbeitungslast zwischen Controllern auszugleichen. Dieses Ausgleichen ist auch Teil der Rechnung für die Video-Controller, um dann die geeignete Rastergröße und den geeigneten Rasterort von dem auf TCP/IP basierenden Videonetz anzufordern, um die Eingabe in den Video-Controller einzuspeisen.
-
Hierin offenbarte Systeme und Verfahren schließen LED-Kachelnetze ein, die VLANs nutzen, um das Routen der Daten zwischen LED-Controllern und Kacheln durch das Ethernet-Vermittlungsnetz vorzusehen. Alternativ dazu können Ausführungsformen ein flaches Netzwerk ohne VLANs nutzen, um alle LED-Kacheln zu entdecken und Datenverkehr auf Basis der MAC-Adressen der Kacheln an die einzelnen Kacheln zu übermitteln und zu lenken. Ferner können offenbarte Systeme und Verfahren eine Netzwerkweiche umfassen, die Daten von LED-Controllern in einer einzelnen Netzwerkweiche oder einer Gruppe von Netzwerkweichen unter Verwendung von Faser-, Kupfer- oder DirectAttach-Netzwerkschnittstellen empfängt. Das Netzwerk kann einen oder mehrere Links mit hoher Bandbreite verwenden, für die Kupfer oder Faser verwendet wird, um mit einer Mehrzahl von Netzwerkweichen auf der Seite der Videoanzeigewand zu kommunizieren. LED-Controller in solchen Systemen und Verfahren können die verfügbare Bandbreite durch unterschiedliche Abschnitte des Vermittlungsnetzes als Komponente der Ermittlung, wie der Datenverkehr zwischen Controllern aufgeteilt werden soll, berücksichtigen.
-
In zusätzlichen alternativen Ausführungsformen werden Systeme und Verfahren offenbart, in denen das LED-Kachel-Array eine Videowand und ein verbundenes Gitter-Netzwerk als Teil des Lastenausgleichs zwischen LED-Controllern und einem Vermittlungsnetz bildet. Eingaben in die Controller können von verschiedenen Ausgängen eines Media Servers oder Bildschirmumschalt-Videocontrollers unter Verwendung herkömmlicher Videosignale wie unter anderem HDMI, DisplayPort, SDI, etc. eingespeist werden, wo mehrere LED-Controller nötig sind, um das Kachel-Array in der Videowand zu beherrschen. Die LED-Controller teilen den Bildschirm in mehrere Raster und übermitteln die Größe und Details des Rasters unter Verwendung von EDID, DisplayID, API oder anderen an den Media Server, so dass der Media Server das Array von Controllern auf intelligente Weise mit den Rastern geeigneter Größe speisen kann.
-
In manchen Ausführungsformen können Video-/LED-Controller 108, 162 einschließlich der GUI 120 als eine oder mehrere Rechenvorrichtungen 200 ausgeführt werden, wie in 5 dargestellt. In diesem Beispiel weist die Rechenvorrichtung 200 einen oder mehrere Prozessoren 202, einen Speicher 204, eine Speichervorrichtung 206, eine High-Speed-Schnittstelle 208, die mit dem Speicher 204 und High-Speed-Erweiterungsports 210 verbunden ist, und eine Low-Speed-Schnittstelle 212, die mit einem Low-Speed-Bus 214 und der Speichervorrichtung 206 verbunden ist, auf. Die einzelnen Komponenten 202, 204, 206, 208, 210 und 212 sind unter Verwendung verschiedener Busse oder anderer geeigneter Verbindungen untereinander verbunden, wie in 5 durch Pfeile angegeben ist, die Komponenten verbinden. Der Prozessor 202 kann Befehle zur Ausführung innerhalb der Rechenvorrichtung 200 verarbeiten, einschließlich von Befehlen, die im Speicher 204 oder auf der Speichervorrichtung 206 gespeichert sind, um grafische Informationen über die GUI 218 mit der Anzeige 220 oder an einer externen Benutzeroberflächenvorrichtung, die mit der High-Speed-Schnittstelle 208 gekoppelt ist, anzuzeigen. In anderen Implementierungen können je nach Eignung mehrere Prozessoren und/oder mehrere Busse zusammen mit mehreren Speichern und Speichertypen verwendet werden. Ebenso können mehrere Rechenvorrichtungen 200 verbunden werden, wobei jede Vorrichtungen Abschnitte der notwendigen Operationen bereitstellt (z.B. als Serverbank, als Gruppe von Blade-Servern oder als Multiprozessorsystem).
-
Der Speicher 204 speichert Informationen innerhalb der Rechenvorrichtung 200. In einer Implementierung ist der Speicher 204 ein computerlesbares Medium. In einer Implementierung handelt es sich bei dem Speicher 204 um eine Einheit oder um Einheiten eines flüchtigen Speichers. In einer anderen Implementierung handelt es sich bei dem Speicher 204 um eine Einheit oder um Einheiten eines nicht-flüchtigen Speichers.
-
Die Speichervorrichtung 206 ist in der Lage, eine Massenspeicherung für die Rechenvorrichtung 200 bereitzustellen und kann Informationen wie etwa die Datenbank von Kachelanzeigeinformationen, die oben beschrieben wurde, enthalten. In einer Implementierung ist die Speichervorrichtung 206 ein computerlesbares Medium. In einer Reihe verschiedener Implementierungen kann die Speichervorrichtung 206 eine Diskettenvorrichtung, eine Festplattenvorrichtung, eine Bildplattenvorrichtung oder eine Bandvorrichtung, ein Flash-Memory oder eine andere, ähnliche Festkörperspeichervorrichtung oder ein Array von Vorrichtungen sein, einschließlich von Vorrichtungen in einem Speichernetz oder anderen Konfigurationen. In einer Implementierung ist ein Computerprogrammprodukt materiell in einem Informationsträger verkörpert. Das Computerprogrammprodukt enthält Befehle, die bei ihrer Ausführung ein oder mehrere Verfahren durchführen, wie etwa solche, die oben beschrieben sind. Der Informationsträger ist ein computer- oder maschinenlesbares Medium, wie etwa der Speicher 204, die Speichervorrichtung 206 oder ein Speicher auf dem Prozessor 202.
-
Ein High-Speed-Controller 208 verwaltet bandbreitenintensive Operationen für die Rechenvorrichtung 200, während ein Low-Speed-Controller 212 weniger bandbreitenintensive Operationen verwaltet. Solch Aufgabenzuweisungen sind nur beispielhaft. In einer Implementierung ist der High-Speed-Controller 208 mit dem Speicher 204, der Anzeige 220 (e.g. über einen Grafikprozessor oder -beschleuniger) und mit High-Speed-Erweiterungsports 210, die verschiedene Erweiterungskarten (nicht gezeigt) akzeptieren können, gekoppelt. In der Implementierung ist der Low-Speed-Controller 212 mit der Speichervorrichtung 206 und einem Low-Speed-Erweiterungsport 214 gekoppelt. Der Low-Speed-Erweiterungsport, der verschiedene Kommunikationsports (z.B. USB, Bluetooth, Ethernet, drahtloses Ethernet) einschließen kann, kann mit einer oder mehreren Eingabe-/Ausgabevorrichtungen als Teil der GUI 218 oder als weitere externe Benutzeroberfläche, wie etwa als Tastatur, als Pointervorrichtung, als Scanner, oder als Netzwerkvorrichtung, wie etwa als Weiche oder Router, gekoppelt sein, e.g. über einen Netzwerkadapter.
-
Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in digitaler elektronischer Schaltung, integrierter Schaltung, speziell designten ASICs (anwendungsspezifischen integrierten Schaltkreisen), Computer-Hardware, Firmware, Software und/oder Kombinationen davon verwirklicht werden. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen einschließen, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das einschließt: mindestens einen einem bestimmten Zweck dienenden oder universellen programmierbaren Prozessor, der mit einem Speichersystem gekoppelt ist, um Daten und Befehle von diesem zu empfangen und an dieses zu senden, mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung.
-
Diese Computerprogramme (auch Programme, Software, Software-Anwendung oder Code genannt) schließen Maschinenbefehle für einen programmierbaren Prozessor ein und können in einer höheren prozeduralen und/oder objektorientierten Programmiersprache und/oder in Assemblier-/Maschinensprache implementiert werden. Wie hierin verwendet, bezeichnet die Begriffe „maschinenlesbares Medium“ „computerlesbares Medium“ jedes Computerprogrammprodukt, jeden Apparat und/oder jede Vorrichtung (e.g. Magnetplatten, Bildplatten, Speicher, programmierbare Logikvorrichtungen (PLDs)), die verwendet werden, um Maschinenbefehle und/oder Daten an einem programmierbaren Prozessor bereitzustellen, einschließlich eines maschinenlesbaren Mediums, das Maschinenbefehle als maschinenlesbares Signal empfängt. Der Begriff „maschinenlesbares Signal“ bezeichnet jedes Signal, das verwendet wird, um Maschinenbefehle und/oder Daten an einem programmierbaren Prozessor bereitzustellen.
-
Um eine Interaktion mit einem Benutzer möglich zu machen, können die hierin beschriebenen Systeme und Techniken an einem Computer implementiert werden, der eine Anzeigevorrichtung (e.g. eine LED-, OLED- oder LCD-Anzeige), um dem Benutzer Informationen anzeigen zu können, und eine Tastatur und eine PointerVorrichtung (z.B. eine Maus oder einen Trackball), durch welche der Benutzer eine Eingabe an dem Computer bereitstellen kann, aufweist. Andere Arten von Vorrichtungen können ebenfalls verwendet werden, um eine Interaktion mit einem Benutzer zu ermöglichen; beispielsweise kann Feedback, das dem Benutzer bereitgestellt wird, jede Form von sensorischem Feedback (z.B. visuelles Feedback, akustisches Feedback oder taktiles Feedback) sein; und eine Eingabe von dem Benutzer kann in jeder Form empfangen werden, einschließlich einer akustischen, Sprach- oder taktilen Eingabe.
-
Die hier beschriebenen Systeme und Techniken können in einem Rechnersystem implementiert werden, das eine Back-End-Komponente einschließt (z.B. als Datenserver), oder das eine Middleware-Komponente (z.B. einen Anwendungsserver) einschließt oder das eine Front-End-Komponente (z.B. einen Client-Computer, der eine grafische Benutzeroberfläche oder einen Web-Browser aufweist, durch die bzw. den ein Benutzer mit einer Implementierung der hier beschriebenen Systeme und Techniken interagieren kann), oder irgendeine Kombination aus solchen Back-End-, Middleware- oder Front-End-Komponenten einschließt. Die Komponenten des Systems können durch irgendeine Form oder irgendein Medium für eine kabelgebundene oder kabellose digitale Datenübermittlung (e.g. ein Kommunikationsnetz) miteinander verbunden werden. Beispiele für Kommunikationsnetze schließen ein Local Area Network („LAN“), ein Wide Area Network („WAN“) und das Internet ein.
-
Das Rechensystem kann Clients und Server einschließen. Ein Client und ein Server können im Allgemeinen voneinander fern sein und interagieren typischerweise durch ein Kommunikationsnetz. Die Beziehung von Client und Server entsteht dank Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung miteinander haben.
-
Weitere alternative Ausführungsformen schließen Verfahren zum Ausgeben von Pixeldaten umfassendem Videoinhalt an eine von einem Array von Videoanzeige-Kacheln gebildete hochauflösende Videowand ein, wobei jede Videoanzeige-Kachel eine eindeutige Adresse innerhalb des Array aufweist. Verfahrensschritte können einschließen: Empfangen einer Mehrzahl von Videoeingangsströmen, wobei die Eingangsströme jeweils einen Abschnitt der Pixeldaten enthalten, die nötig sind, um den Videoinhalt auf der Anzeigewand zu rendern, und die Mehrzahl von Eingangsströmen insgesamt alle benötigten Pixeldaten umfassen; Kombinieren der Videoeingangsströme, um eine virtuelle Darstellung des Videoinhalts in einem Speicher mit einer Auflösung zu bilden, die der Videowandauflösung zumindest gleich ist; Aufteilen von Pixeldaten aus der virtuellen Darstellung in Pakete mit der eindeutigen Kacheladresse für eine entsprechende Kachelposition in der Videowand auf Basis einer Pixeldatenposition in der virtuellen Darstellung; und Senden der Pixeldaten-Pakete an die Videowand über ein Paket-geschaltetes Netzwerk.
-
Eine weitere Ausführungsform der hierin offenbarten Verfahren ist ein Verfahren zum Ausgeben von Pixeldaten umfassendem Videoinhalt an eine von einem Array von Videoanzeige-Kacheln gebildete hochauflösende Videowand, wobei jede von den Videoanzeige-Kacheln eine eindeutige Adresse innerhalb des Array aufweist. In manchen Ausführungsformen kann das Array von Videoanzeige-Kacheln ein Array von LED-Kacheln sein. Ein solches Verfahren kann einschließen: Empfangen eines oder mehrerer Videoeingangsströme, die weniger Pixeldaten enthalten als zum Rendern des Videoinhalts auf der Videowand mit der Auflösung der Videowand notwendig sind; Hochskalieren des einen oder der mehreren Videoeingangsströme, um mindestens einen hochskalierten Videoeingangsstrom zu erzeugen, der Pixeldaten umfasst, die notwendig sind, um den Videoinhalt mit der Auflösung der Videowand zu rendern; virtuelles Rendern des Videoinhalts aus dem mindestens einen hochskalierten Videoeingangsstrom in einem Speicher, um eine virtuelle Darstellung des Videoinhalts in dem Speicher mit einer Auflösung zu bilden, die der Videowandauflösung zumindest gleich ist; Aufteilen von Pixeldaten aus der virtuellen Darstellung in Pakete, die jeweils die eindeutige Kacheladresse für Kachelpositionen in der Videowand, die der Pixeldatenposition in der virtuellen Darstellung entspricht, aufweisen; und Senden der Pixeldaten-Pakete an die Videowand über ein Paket-geschaltetes Netzwerk.
-
Eine noch andere Ausführungsform der hierin offenbarten Verfahren ist ein Verfahren zum Ausgeben von Pixeldaten umfassendem Videoinhalt an eine von einem Array von Videoanzeige-Kacheln gebildete hochauflösende Videowand, wobei jede von den Videoanzeige-Kacheln eine eindeutige Adresse innerhalb des Array aufweist. In manchen Ausführungsformen kann das Array von Videoanzeige-Kacheln ein Array von LED-Kacheln sein. Ein solches Verfahren kann einschließen: Empfangen eines oder mehrerer Videoeingangsströme, die mehr Pixeldaten enthalten als zum Rendern des Videoinhalts auf der Videowand mit der Auflösung der Videowand notwendig sind; Herunterskalieren des einen oder der mehreren Videoeingangsströme, um mindestens einen herunterskalierten Videoeingangsstrom zu erzeugen, der Pixeldaten umfasst, die notwendig sind, um den Videoinhalt mit der Auflösung der Videowand zu rendern; virtuelles Rendern des Videoinhalts aus dem mindestens einen herunterskalierten Videoeingangsstrom in einem Speicher, um eine virtuelle Darstellung des Videoinhalts in dem Speicher mit einer Auflösung zu bilden, die der Videowandauflösung zumindest gleich ist; Aufteilen von Pixeldaten aus der virtuellen Darstellung in Pakete, die jeweils die eindeutige Kacheladresse für Kachelpositionen in der Videowand, die der Pixeldatenposition in der virtuellen Darstellung entspricht, aufweisen; und Senden der Pixeldaten-Pakete an die Videowand über ein Paket-geschaltetes Netzwerk.
-
Das Obige war eine ausführliche Beschreibung von der Veranschaulichung dienenden Ausführungsformen der Offenbarung. Man beachte, dass in der vorliegenden Beschreibung und den hier beigefügten Ansprüchen konjunktive Formulierungen, wie sie etwa in den Ausdrücken „mindestens eines von X, Y und Z“ und „eines oder mehrere von X, Y und Z“ verwendet werden, solange nicht ausdrücklich etwas anderes ausgesagt oder angegeben wird, so aufzufassen sind, dass jeder Gegenstand in der konjunktiven Liste in jeder Anzahl ausschließlich jedes anderen Gegenstands in der Liste oder in jeder Anzahl in Kombination mit beliebigen oder allen anderen Gegenständen in der konjunktiven Liste, von denen jeder auch in beliebiger Zahl vorhanden sein kann, vorhanden sein kann. Wendet man diese allgemeine Regel an, so sollen die konjunktiven Ausdrücke in den obigen Beispielen, in denen die konjunktive Liste aus X, Y und Z besteht, jeweils Folgendes einschließen: eines oder mehrere von X; eines oder mehrere von Y; eines oder mehrere von Z; eines oder mehrere von X und eines oder mehrere von Y; eines oder mehrere von Y und eines oder mehrere von Z; eines oder mehrere von X und eines oder mehrere von Z; und eines oder mehrere von X, eines oder mehrere von Y und eines oder mehrere von Z.
-
Verschiedene Modifikationen und Hinzufügungen können vorgenommen werden, ohne vom Gedanken und Bereich dieser Offenbarung abzuweichen. Merkmale von jeder der oben beschriebenen verschiedenen Ausführungsformen können je nach Eignung mit Merkmalen von anderen beschriebenen Ausführungsformen kombiniert werden, um eine Vielfalt von Merkmalskombinationen in damit verbundenen neuen Ausführungsformen bereitzustellen. Auch wenn das Obige eine Anzahl von separaten Ausführungsformen beschreibt, ist das hier Beschriebene ferner lediglich eine Veranschaulichung der Anwendung der Prinzipien der vorliegenden Offenbarung. Auch wenn bestimmte Verfahren hierin so dargestellt und/oder beschrieben werden, als würden sie in einer bestimmten Reihenfolge durchgeführt, ist außerdem die Reihenfolge, um Aspekte der vorliegenden Offenbarung zu erreichen, im Rahmen durchschnittlicher Fachkenntnisse stark variabel. Demgemäß soll diese Beschreibung nur als Beispiel verstanden werden und den Bereich dieser Offenbarung ansonsten nicht beschränken.
-
Vorstehend wurden Ausführungsbeispiele offenbart und in den begleitenden Zeichnungen dargestellt. Der Durchschnittsfachmann wird verstehen, dass verschiedene Änderungen, Weglassungen und Hinzufügungen an dem, was hierin konkret offenbart wurde, vorgenommen werden können, ohne vom Gedanken und Bereich der vorliegenden Offenbarung abzuweichen.