Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYNCHRONIZATION OF VIDEOS IN A DISPLAY WALL
Document Type and Number:
WIPO Patent Application WO/2015/062616
Kind Code:
A1
Abstract:
The invention relates to a method and to a device for synchronizing the presentation of video frames from a video stream of a video insertion (IS) of a video image source, which video insertion is simultaneously presented on two or more displays (D) of a display wall (1) composed of a plurality of displays (D). According to the invention the synchronous, tearing-free presentation is realized by means of a video-frame queue for the video frames, a mediation function, which is common to the network graphics processors involved in the presentation of the video insertion (IS) and which, during a mediation duration that extends over a plurality of frame flybacks of the display wall (1), determines which video frame is presented by the displays (D) and establishes a balance between the vertical display frequency and the video stream frequency, and synchronization messages, which are sent before the start of a mediation duration by a master network graphics processor of a display (D) to the slave network graphics processors of the other displays (D).

Inventors:
ZERWAS UDO (DE)
Application Number:
PCT/EP2013/003268
Publication Date:
May 07, 2015
Filing Date:
October 30, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BARCO CONTROL ROOMS GMBH (DE)
International Classes:
G06F3/14; G09G5/14
Other References:
SUNGWON NAM; SACHIN DESHPANDE; VENKATRAM VISHWANATH; BYUNGIL JEONG; LUC RENAMBOT; JASON LEIGH: "Multiapplication, Intertile Synchronization on Ultra-High-Resolution Display Walls", PROCEEDINGS OF THE FIRST ANNUAL ACM SIGMM CONFERENCE ON MULTIMEDIA SYSTEMS, 2010, pages 145 - 156, XP002718215
GISEOK CHOE; JEONGSOO YU; JEONGHOON CHOI; JONGHO NANG: "Seventh International Conference on Computer and Information Technology (CIT 2007", 2007, IEEE COMPUTER SOCIETY, article "Design and Implementation of a Real-time Video Player on Tiled-Display System", pages: 621 - 626, XP002718216
SUNGWON NAM; SACHIN DESHPANDE; VENKATRAM VISHWANATH; BYUNGIL JEONG; LUC RENAMBOT; JASON LEIGH: "Multiapplication, Intertile Synchronization on Ultra-High-Resolution Display Walls", PROCEEDINGS OF THE FIRST ANNUAL ACM SIGMM CONFERENCE ON MULTIMEDIA SYSTEMS, 2010, pages 145 - 156, XP002718215
GISEOK CHOE; JEONGSOO YU; JEONGHOON CHOI; JONGHO NANG: "Seventh International Conference on Computer and Information Technology (CIT 2007", 2007, IEEE COMPUTER SOCIETY, article "Design and Implementation of a Real-time Video Player on Tiled-Display System", pages: 621 - 626
Attorney, Agent or Firm:
JANY, Peter (DE)
Download PDF:
Claims:
Patentansprüche

Computer-implementiertes Verfahren zum Synchronisieren der Darstellung von Videoframes aus einem Videostream mit einer Video- streamfrequenz ( fs ) einer Videoeinblendung (IS) einer Videobildquelle (S), die gleichzeitig auf zwei oder mehreren Displays (D) einer aus mehreren Displays (D) zusammengesetzten Displaywand (1) dargestellt wird, wobei die Displays (D) jeweils von einem zugehörigen I etzwerk-Grafikpro- zessor (NGP), der einen Computer mit einer Netzwerk- und einer Grafikkarte umfasst, angesteuert und mit derselben vertikalen Displayfrequenz ( fd ) betrieben werden, die lokalen Uhren auf den Netzwerk-Grafikprozessoren (NGP) synchronisiert werden, vorzugsweise durch PTP (Precision Time Proto- col), die Bildrückläufe (VR) der die Displays (D) ansteuernden Grafikkarten der Netzwerk-Grafikprozessoren (NGP) mittels Framelock oder Genlock synchronisiert werden, und der Videostream von der Videobildquelle (S) über ein Netzwerk (LAN) an die Netzwerk-Grafikprozessoren (NGP) übertragen wird, wobei vorzugsweise die Videobildquelle (S) vor der Übertragung über das Netzwerk (LAN) mittels eines Kodierers (EC) kodiert und komprimiert und nach dem Empfangen von den Netzwerk-Grafikprozessoren (NGP) jeweils mittels eines Dekodierers (3) dekodiert wird, umfassend folgende Verfahrensschritte:

Die an der Darstellung einer Videobildquelle (S) beteiligten Netz- werk-Grafikprozessoren (NGP) werden in einer aster-Slave-Archi- tektur organisiert, wobei ein Netzwerk-Grafikprozessor (NGP) als Master-Netzwerk-Grafikprozessor (Master-NGP) für die Videobildquelle (S) und die anderen Netzwerk-Grafikprozessoren (NGP) als Slave-Netzwerk-Grafikprozessoren (Slave-NGP) konfiguriert werden, wobei die Rollenverteilung jeweils für eine Videobildquelle (S) dadurch gegeben ist, dass zum Synchronisieren der Darstellung der Videobildquelle (S) der Master-Netzwerk-Grafikprozessor (Master- NGP) Synchronisationsnachrichten (SN) an die Slave-Netzwerk- Grafikprozessoren (Slave-NGP) sendet, die von den Slave-Netzwerk- Grafikprozessoren (Slave-NGP) empfangen und ausgewertet werden, die Videoframes werden jeweils mittels einer in den Videostream eingebetteten absoluten Framekennnummer (id) identifiziert, die vorzugsweise aus den RTP-Timestamps der Videoframes abgeleitet ist, die Darstellung der Videoframes wird unter den Netzwerk-Grafikprozessoren (NGP) zu Framesynchronisationszeitpunkten (TS) synchronisiert, auf die jeweils eine bis zum nächsten Framesynchronisationszeitpunkt (TS) andauernde Mediationsdauer (TM) folgt, die sich über mehrere Bildrückläufe der Displaywand (1) erstreckt, wobei jeweils kurz vor einem Framesynchronisationszeitpunkt (TS), d.h. vor dem Beginn einer Meditationsdauer (TM), zu einem Synchronisationsnachrichtzeitpunkt (TSN) von dem Master-Netzwerk-Grafikprozessor (Master-NGP) eine Synchronisationsnachricht (SN) an die Slave- Netzwerk-Grafikprozessoren (Slave-NGP) gesendet wird, und während der Mediationsdauer (TM) von den Netzwerk-Grafikprozes- soren (NGP) Videoframes synchron dargestellt werden, indem die Netzwerk-Grafikprozessoren (NGP) jeweils lokal die darzustellenden Videoframes mittels einer Mediationsfunktion (MF) bestimmen, die den Netzwerk-Grafikprozessoren (NGP) gemeinsam ist, und wobei in das Argument der Mediationsfunktion (MF) eingehende Parameter, die zum synchronen Darstellen der Videoframes erforderlich sind, in der Synchronisationsnachricht (SN) übermittelt werden, wobei entweder diese Parameter die vom Master-Netzwerk-Grafikprozessor (Master-NGP) gemessene Videostreamfrequenz ( fs ) oder die hierzu äquivalente vom Master-Netzwerk-Grafikprozessor (Master-NGP) gemessene Periode ( Ts) der Videostreamfrequenz ( fs ) und die vom Master-Netzwerk-Grafikprozessor (Master-NGP) gemessene vertikale Displayfrequenz ( fd ) oder die hierzu äquivalente vom Master-Netzwerk-Grafikprozessor (Master-NGP) gemessene Periode ( Td ) der vertikalen Displayfrequenz ( fd ) umfassen, oder diese Parameter den Quotienten ( s / fd ) ^er vom Master-Netzwerk-Grafikprozessor (Master-NGP) gemessenen Videostreamfrequenz (fs ) mit der vom Master-Netzwerk-Grafikprozessor (Master-NGP) gemessenen vertikalen Displayfrequenz ( fd ) oder dessen hierzu äquivalenten Kehrwert ( fd / fs ) umfassen, oder diese Parameter den Quotienten ( Td / Ts ) der vom Master-Netzwerk-Grafikprozessor (Master-NGP) gemessenen Periode ( Td ) der vertikalen Displayfrequenz ( fd ) mit der vom Master-Netzwerk-Grafikprozessor (Master-NGP) gemessenen Periode ( Ts) der Videostreamfrequenz ( fs ) oder dessen hierzu äquivalenten Kehrwert (Ts / Td ) umfassen, die Mediationsfunktion (MF) wird von dem Master-Netzwerk-Grafikprozessor (Master-NGP) durch das Versenden von Synchronisationsnachrichten (SN) mit einer Rate synchronisiert, die kleiner als die vertikale Displayfrequenz ( fd ) ist, die zu rendernden Videoframes des Videostreams werden jeweils lokal von den Netzwerk-Grafikprozessoren (NGP) mittels lokaler Videoframezähler (NF) gezählt und durch Einhängen in jeweils eine Videoframe-Warteschlange (2) gepuffert, einschließlich der zugehörigen absoluten Framekennnummer (id) und des zugehörigen lokalen Videoframezählers (NF), sodass eine Videoframe-Warteschlange (2) jeweils die lokale Zuordnung zwischen den absoluten Framekennnummern (id) und dem lokalen Videoframezähler (NF) enthält, mit der Synchronisationsnachricht (SN) des Master-Netzwerk-Grafikprozessors (Master-NGP) an die Slave-Netzwerk-Grafikprozessoren (Slave-NGP) wird ein Momentbild der Videoframe-Warteschlange (2) des Master-Netzwerk-Grafikprozessors (Master-NGP) zu dem Synchronisationsnachrichtzeitpunkt (TSN) übermittelt, der um einen Framesynchronisationszeitpunktvorlauf (TSV) vor dem nächsten Framesynchronisationszeitpunkt (TS) liegt, wobei das Momentbild die lokale Zuordnung zwischen den absoluten Framekennnummern (id) und dem lokalen Videoframezähler (NFM) des Master- Netzwerk- Grafikprozessors (Master-NGP) der Videoframes in der Videoframe- Warteschlange (2) des Master-Netzwerk-Grafikprozessors (Master- NGP) enthält, zum Ermitteln eines lokalen Frameversatzes, der angibt, um wie viele Videoframes die Darstellung der Videoframes auf dem jeweiligen Slave-Netzwerk-Grafikprozessor (Slave-NGP) gegenüber der Darstellung der Videoframes auf dem Master-Netzwerk-Grafikprozessor (Master-NGP) vor der Synchronisationsnachricht (SN) versetzt ist, wird lokal von den Slave-Netzwerk-Grafikprozessoren (Slave- NGP) das mit der Synchronisationsnachricht (SN) empfangene Momentbild der Videoframe-Warteschlange (2) des Master- Netzwerk- Grafikprozessors (Master-NGP) mit einem lokal gespeicherten Momentbild der Videoframe-Warteschlange (2) des Slave-Netzwerk- Grafikprozessors (Slave-NGP) verglichen und aus diesem Vergleich der Frameversatz bestimmt, und der lokale Frameversatz wird auf den Slave-Netzwerk-Grafikpro- zessoren (Slave-NGP) ab dem Framesynchronisationszeitpunkt (TS) korrigiert, indem auf den Slave-Netzwerk-Grafikprozessoren (Slave- NGP) ab dem Framesynchronisationszeitpunkt (TS) der Frameversatz zu dem lokalen Videoframezähler (NFS) des Slave-Netzwerk-Grafik- prozessors (Slave-NGP), der das zu rendernde Videoframe angibt, addiert wird, sodass den Slave-Netzwerk-Grafikprozessoren (Slave-NGP) alles zum Synchronisieren Erforderliche von dem Master-Netzwerk-Grafikprozessor (Master-NGP) in der Synchronisationsnachricht (SN) mitgeteilt wird, um sowohl zu dem Framesynchronisationszeitpunkt (TS) als auch während der sich daran anschließenden Mediationsdauer (TM) bis zum folgenden Framesynchronisationszeitpunkt (TS) selbstständig lokal die Videoframes der Videoeinblendung (S) mit dem Master-Netzwerk-Grafikprozessor (Master-NGP) synchronisiert darstellen zu können.

Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Darstellung der Videoframes mittels der Netzwerk-Grafikprozessoren (NGP) mehrfach gepuffert, vorzugsweise doppelt-gepuffert, und swap-locked erfolgt.

Verfahren nach Anspruch 1 oder 2, umfassend folgende Verfahrensschritte:

Die Bildrückläufe der Grafikkarten der Netzwerk-Grafikprozessoren (NGP) werden von den Netzwerk-Grafikprozessoren (NGP) lokal mit- tels eines unter den Netzwerk-Grafikprozessoren (NGP) synchronisierten Vsynczählers (NS) gezählt, von den Netzwerk-Grafikprozessoren (NGP) werden lokale relative Vsynczähler (NSR) gebildet, die die Differenz zwischen dem aktuellen, synchronisierten Vsynczähler (NS) und dessen Wert zum letzten Framesynchronisationszeitpunkt (TS) sind, von den Netzwerk-Grafikprozessoren (NGP) werden die relativen Vsynczähler (NSR) als Argumentwert der Mediationsfunktion (MF) , verwendet, wobei für die Mediationsfunktion (MF) gilt

NFR = MF(NSR) = mediation(NSR) = floor NSR = floor NSR—

s und die Mediationsfunktion (MF) als Funktionswert einen lokalen relativen Videoframezähler (NFR) berechnet, der die Differenz aus dem lokalen Videoframezähler (NF) des aus der Videoframe-Warteschlange (2) zum Rendern zu selektierenden Videoframes und dem lokalen Videoframezähler (NF) des Videoframes zum letzten Framesynchronisationszeitpunkt (TS) ist, sodass von den Netzwerk-Grafikprozessoren (NGP) mittels des lokalen relativen Videoframezählers (NFR) das von dem jeweiligen Netzwerk-Grafikprozessor (NGP) für die Darstellung auf dem Display (D) zu rendernde Videoframe bestimmt und zum Rendern ausgewählt wird, wobei die Mediationsfunktion (MF) aufgrund des in dem Argumentwert der Mediationsfunktion (MF) enthaltenen Quotienten Video- streamfrequenz ( fs ) dividiert durch vertikale Displayfrequenz ( fd ) (bzw. des reziproken Quotienten der Periodendauern) in der Verarbeitung der Videoframes zwischen diesen beiden Frequenzen ausgleichend vermittelt, wenn diese verschieden sind. Verfahren nach einem der vorhergehenden Ansprüche, umfassend folgende Verfahrensschritte:

Zum Bestimmen des Frameversatzes wird in dem Vergleich des mit der Synchronisationsnachricht (SN) empfangenen Momentbildes der Videoframe-Warteschlange (2) des Master-Netzwerk-Grafikprozessors (Master-NGP) mit einem lokal gespeicherten Momentbild der Videoframe-Warteschlange (2) des Slave-Netzwerk-Grafikprozessors (Slave-NGP) mittels der in den Momentbildern enthaltenen absoluten Framekennnummern (id) geprüft, ob in den beiden Momentbildern ein gemeinsames Bezugsvideoframe enthalten ist, und für dieses Bezugsvideoframe aus der in den Momentbildern enthaltenen lokalen Zuordnung zwischen den absoluten Framekennnummern (id) und den lokalen Videoframezählern (NF) eine Videoframezählerdifferenz (DNF) gebildet, die die Differenz zwischen dem lokalen Videoframezähler (NFS) des Slave-Netzwerk-Grafikprozessors (Slave-NGP) des Bezugsvideoframes und dem lokalen Videoframezähler (NFM) des Master-Netzwerk-Grafikprozessors (Master-NGP) (DNF=NFS-NFM) des Bezugsvideoframes ist, und mittels der Videoframezählerdifferenz (DNF) wird der Frameversatz bestimmt, indem zunächst der Slave-Netzwerk-Grafikprozessor (Slave-NGP) für das Bezugsvideoframe eine Umrechnungsdifferenz bildet, die die Differenz aus seinem lokalen Videoframezähler (NFS) und der Videoframezählerdifferenz (DNF) ist, und der Slave-Netzwerk-Grafikprozessor (Slave-NGP) den lokalen Videoframezähler (NFM) des Master-Netzwerk-Grafikprozessors (Master-NGP) für das Videoframe berechnet, das zum Synchronisationsnachrichtzeitpunkt (TSN) vom Master zum Rendern ausgewählt wurde, indem er von dem lokalen Videoframezähler (NFS) des Slave- Netzwerk-Grafikprozessor (Slave-NGP) die Umrechnungsdifferenz abzieht, und der Frameversatz als die Differenz des lokalen Videoframezählers (NFM) des Master-Netzwerk-Grafikprozessors (Master-NGP) für das Videoframe, das zum Synchronisationsnachrichtzeitpunkt (TSN) vom Slave-Netzwerk-Grafikprozessor (Slave-NGP) zum Rendern ausgewählt wurde, und des lokalen Videoframezählers (NFM) des Master-Netzwerk-Grafikprozessors (Master-NGP) für das Videoframe, das zum gleichen Synchronisationsnachrichtzeitpunkt (TSN) vom Master- Netzwerk-Grafikprozessor (Master-NGP) zum Rendern ausgewählt wurde, berechnet wird.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zum Bestimmen der Videoframezählerdifferenz (DNF) bei dem Vergleich der Momentbilder danach gesucht wird, ob das als letztes, d.h. unmittelbar vor dem Versand der Synchronisationsnachricht (SN) vom Slave-Netzwerk-Grafikprozessor (Slave- NGP) in die Videoframe-Warteschlange (2) des Slave-Netzwerk-Gra- fikprozessors (Slave-NGP) eingehängte Videoframe in dem Momentbild des Master-Netzwerk-Grafikprozessors (Master-NGP) enthalten ist.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zum Bestimmen der Videoframezählerdifferenz (DNF) mit der Synchronisationsnachricht (SN) des Master-Netzwerk- Grafikprozessors (Master-NGP) an die Slave-Netzwerk-Grafikprozes- soren (Slave-NGP) der Wert des lokalen Videoframezählers (NFM) des Master-Netzwerk-Grafikprozessors (Master-NGP) für das als letztes, d.h. unmittelbar vor dem Versand der Synchronisationsnachricht vom Master-Netzwerk-Grafikprozessor (Master-NGP) in die Videoframe-Warteschlange (2) des Master-Netzwerk-Grafikprozessors (Master-NGP) eingehängte Videoframe, und die absolute Framekennnummer (id) dieses Videoframes übermittelt wird, und bei dem Vergleich der Momentbilder danach gesucht wird, ob dieses Videoframe in beiden verglichenen Momentbildern enthalten ist.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Versenden einer Synchronisationsnachricht (SN) und das Synchronisieren der Darstellung von Videoframes zu Frameresynchronisationszeitpunkten (TS) wiederholt wird, vorzugsweise in periodischen, d.h. regelmäßigen zeitlichen Abständen.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Rate bzw. Frequenz, mit der die Synchronisationsnachrichten (SN) vom Master-Netzwerk-Grafikprozessor (Master-NGP) an die Slave-Netzwerk-Grafikprozessoren (Slave-NGP) gesendet werden, d.h. zu Framesynchronisationszeiten (TS) eine Framesynchronisation durchgeführt wird, zwischen 0,05 Hz und 10 Hz, bevorzugt zwischen 0,1 Hz und 5,0 Hz, weiter bevorzugt zwischen 0,2 Hz und 3,0 Hz, besonders bevorzugt zwischen 0,5 Hz und 2,0 Hz beträgt.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Mediationsdauer (TM) ein fest vorgegebener Wert, insbesondere eine feste Zeitspanne, eine feste Anzahl von Bildrücklaufsignalen (Vsync), eine feste Anzahl von Bildrückläufen (VR) oder ein maximaler Wert des relativen Vsynczählers (NSR) ist.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die den Framesynchronisationszeitpunkten (TS) zugeordneten Synchronisationsnachrichten (SN) zu Synchronisationsnachrichtzeitpunkten (TSN) von dem Master-Netzwerk-Grafikprozessor (Master-NGP) an die Slave-Netzwerk-Grafikprozessoren (Slave-NGP) gesendet werden, die um einen Framesynchronisations- zeitpunktvorlauf (TSV) vor dem zugehörigen folgenden Framesynchronisationszeitpunkt (TS) liegen, der zwischen einer halben und fünf, bevorzugt zwischen einer und vier und besonders bevorzugt zwischen ein und drei Perioden (Td) der vertikalen Displayfrequenz (fd) beträgt.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Synchronisationsnachrichten (SN) von dem Master-Netzwerk-Grafikprozessor (Master-NGP) an die Slave-Netz- werk-Grafikprozessoren (Slave-NGP) als Mulitcast-Nachrichten gesendet werden.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Bestimmung entweder der Videostreamfre- quenz (fs) oder der hierzu äquivalenten Periode (Ts) der Video- streamfrequenz (fs) und der vertikalen Displayfrequenz (fd) oder der hierzu äquivalenten Periode (Td) der vertikalen Displayfrequenz (fd), oder des Quotienten (fs /fd) der Videostreamfrequenz (fs) mit der vertikalen Displayfrequenz (fd) oder dessen hierzu äquivalenten Kehrwerts (fd/fs), oder des Quotienten (Td/Ts) der Periode (Td) der vertikalen Displayfrequenz (fd) mit der Periode (Ts) der Videostreamfrequenz (fs) oder dessen hierzu äquivalenten Kehrwerts (Ts/Td) nin uncl wieder, regelmäßig, intervallartig oder bevorzugt mit einem gleitenden Messfenster (M) im Takt der vertikalen Displayfrequenz (fd) wiederholt wird.

Computerprogrammprodukt, insbesondere ein computerlesbares digitales Speichermedium, mit gespeicherten, computerlesbaren, computerausführbaren Anweisungen zum Durchführen eines Verfahrens nach einem der vorhergehenden Ansprüche, d.h. mit Anweisungen, die, wenn sie in einen Prozessor, einen Computer oder ein Com- puternetzwerk geladen wurden und ausgeführt werden, den Prozessor, den Computer oder das Computernetzwerk veranlassen, Verfahrensschritte und Operationen gemäß einem der vorhergehenden Ansprüche durchzuführen.

14. Computersystem, umfassend mehrere Netzwerk-Grafikprozessoren (NGP), die jeweils einen Computer mit Netzwerkkarte, Grafikkarte und Netzwerk-Interface und ein Videosynchronisationsmodul zum Ausführen eines Verfahrens nach einem der vorhergehenden Verfah- rensansprüche aufweisen.

15. Displaywand (1), die aus mehreren Displays (D) zusammengesetzt ist, zum Darstellen eines oder mehrerer Videostreams aus einer oder mehreren Videobildquellen (S), dadurch gekennzeichnet, dass sie ein Computersystem nach dem vorhergehenden Anspruch umfasst.

Description:
Synchronisieren von Videos in einer Displaywand

Die Erfindung betrifft das Synchronisieren von Videos bzw. von Videoframes aus Videostreams, die auf zwei oder mehreren Displays einer aus mehreren Displays zusammengesetzten Displaywand dargestellt werden. Eine andere gebräuchliche Bezeichnung für ein Display ist Bildschirm oder Monitor. Eine Displaywand, die auch als Videowand bezeichnet wird, umfasst eine Mehrzahl von Displays (Dl, D2, Dn), zum Beispiel in Projektionsmodulen oder TFT-, LED-, OLED- oder LCD-Bildschirme. Projektionsmodule umfassen einen Projektionsschirm zum Darstellen eines von einem Bildgeber in einem verkleinerten Maßstab erzeugten Bildes, das mittels einer Projektionseinrichtung vergrößert auf den Projektionsschirm abgebildet wird. Man unterscheidet hierbei zwischen Rückprojektions- und Auflichtapparaten. Aktive Displays wie TFT-, LED-, OLED- oder LCD-Bildschirme erzeugen das Bild jeweils selbst in unverkleinertem Maßstab ohne Projektionseinrichtung. Große Displays finden eine breite Anwendung in Fällen, in denen ein großes komplexes Bild, beispielsweise bestehend aus verschiedenen Videooder Computerbildern, großflächig angezeigt werden soll. Unter einem großen Bild werden dabei Bilder verstanden, die typischerweise Bildschirmdiagonalen von mehr als 0,5 m aufweisen und bis zu mehreren Metern betragen können. Verbreitete Einsatzbereiche für solche großen Displays sind Darstellungen von Bildern, die von mehreren Personen gleichzeitig betrachtet werden, beispielsweise bei Konferenzen und Präsentationen.

Wenn das angezeigte Bild bei gegebenen Qualitätsanforderungen eine bestimmte Größe und Komplexität überschreiten soll, ist dies nicht mehr mit einem einzigen Display möglich. In solchen Fällen wird das Bild aus Teilbildern, die jeweils von einem Display angezeigt werden, zusammengesetzt. Das jeweils von einem Display angezeigte Bild ist in diesem Fall ein Teilbild des von allen Displays zusammen angezeigten Gesamtbildes einer Display- oder Bildwand, die mehrere Displays umfasst. Eine übliche Displaywand umfasst somit mehrere schachbrettartig, gekachelt nebeneinander gesetzte Displays und ein Displaywandgestell, das die Displays trägt. Mit den einzelnen Displays einer Displaywand wird jeweils ein Bildausschnitt eines mit der Bildwand anzuzeigenden Bildes dargestellt. Damit der Eindruck eines Gesamtbildes nicht gestört wird, müssen die einzelnen Displays im Wesentlichen spaltfrei aneinander angrenzen. Bereits ein Abstand von einem Millimeter ist für einen Betrachter deutlich in Form einer Kachelstruktur erkennbar und wird als störend empfunden. Daher stellt sich das Problem, die von den einzelnen Displays angezeigten Teilbilder derart zu einem Großbild zusammenzusetzen, dass ein schachbrettartiger Bildeindruck des Gesamtbildes vermieden wird. Dies betrifft einerseits den Intensitätsabfall eines Teilbildes vom Zentrum zu seinem Rand hin. Andererseits ist insbesondere ein breiter, deutlich sichtbarer Steg zwischen den einzelnen Teilbildern zu vermeiden.

Nach dem Stand der Technik ist es möglich, eine große Anzahl von Displays in einem modularen Aufbau einer großflächigen Displaywand anein- anderzureihen und/oder übereinanderzustapeln, um auf der Displaywand ein aus den vielen Teilbildern der einzelnen Displays zusammengesetztes Großbild darzustellen. Die Anzahl der Displays, die zu einer Displaywand zusammengesetzt werden, beträgt bis zu 150 oder mehr. Großflächige Displaywände, die beispielsweise aus zwölf oder mehr Displays zusammengesetzt sind, haben eine Displaywanddiagonale von mehreren Metern. Derartige Displaywände sind beispielsweise in der modernen Leitwarttech- nik verbreitet.

Die Anzahl der auf der Displaywand gleichzeitig dargestellten Videobildquellen ist in manchen Fällen nur eins, beispielsweise wenn nur ein Video auf einer sehr großen Displaywand dargestellt werden soll. Es gibt aber auch viele Anwendungen, z.B. in der Leitwarttechnik oder in Überwachungseinrichtungen, bei denen gleichzeitig zahlreiche Videobildquellen auf einer Displaywand dargestellt werden, die Displaywand also nicht nur ein Video, sondern viele Videobildquellen darstellt. Bei einer Displaywand stellt sich jedoch nicht nur das Problem der möglichst stegfreien Anordnung der Displays, sondern die auf den Displays dargestellten Bilder müssen auch für bewegte Objekte, die gleichzeitig auf mehreren benachbarten Displays dargestellt werden, derart synchronisiert werden, dass das aus den beteiligten Displays zusammengesetzte Bild für den Betrachter ein synchrones Bild auf der Displaywand bietet. Aufgrund der technischen Gegebenheiten, insbesondere von Laufzeitunterschieden, kann nämlich der unten in der Figurenbeschreibung näher erläuterte optische "Tearing -Effekt" auftreten, wobei zu einem bestimmten Zeitpunkt auf den Displays einer Displaywand zu verschiedenen Zeiten gehörende Videoframes einer Videobildquelle dargestellt werden können. Dieser optische Effekt ist besonders bei horizontal oder vertikal bewegten Objekten störend, und zwar an den Rändern der das bewegte Objekt darstellenden Displays, weil dort das Objekt bei mangelnder Synchronisation an dem Übergang von einem Display zum anderen "auseinandergerissen" erscheint. Im Stand der Technik gibt es folgende zwei Ansätze zur Lösung dieses Problems.

In Sungwon Nam, Sachin Deshpande, Venkatram Vishwanath, Byungil Jeong, Luc Renambot, Jason Leigh, "Multiapplication, Intertile Synchroni- zation on Ultra-High-Resolution Display Walls" Proceedings of the first annual ACM SIGMM Conference on multimedia Systems, 2010 Proceeding, S. 145-156 wird ein Verfahren zum Synchronisieren zwischen den Units oder Displays einer Displaywand zum Darstellen einer Vielzahl von Anwendungen und mit ultrahoher Auflösung beschrieben. Generische Anwendungen haben allerdings keine inhärente Frequenz, anders als Videostreams. In dieser Druckschrift werden die Displays von einem Cluster von Computern gesteuert und jeder Computer kann ein oder mehrere Displays steuern. Die auf den Displays dargestellten vielen Anwendungen können dabei unabhängig voneinander variierende Frameraten haben. Das Framelock oder Genlock wird mit einer Hardwarelösung realisiert, um die vertikale Synchronisation der Grafikprozessoren zu synchronisieren. Die Contentpuffer- und Swappuffer-Synchronisation wird durch einen einzigen globalen Synchronisationsmaster bewirkt. Die Refreshfrequenz (ver- tikale Displayfrequenz) der Displays muss größer sein als das Maximum der Frameraten aller dargestellten Anwendungen. Die Contentpuffer- und Swappuffer-Synchronisation erfordert eine intensive Kommunikation zwischen dem globalen Synchronisationsmaster und Display-Knoten. Um ein Frame darzustellen, müssen im Falle des in dieser Literaturstelle beschrie- benen Ein-Phasen-Algorithmus (m+l)n Synchronisationsnachrichten und im Falle des beschriebenen Zwei-Phasen-Algorithmus (m+3)n Synchronisationsnachrichten über das Netzwerk übertragen werden, wobei m die Anzahl der Videobildquellen und n die Anzahl der Displays der Displaywand ist. Dies führt zu einer hohen Netzwerkbelastung und verringert die Skalierbarkeit des Systems. In Giseok Choe, Jeongsoo Yu, Jeonghoon Choi, Jongho Nang, "Design and Implementation of a Real-time Video Player on Tiled-Display System", Seventh International Conference on Computer and Information Technology (CIT 2007), IEEE Computer Society, 2007, S. 621-626 wird ein real- time Videoplayer auf einem gekachelten Displaysystem beschrieben, das eine Vielzahl von PCs umfasst, um eine große Displaywand mit hoher Auflösung zu bilden. In dem dort vorgeschlagenen System überträgt ein Masterprozess einen komprimierten Videostream mittels UDP Multicast an eine Vielzahl von PCs. Alle PCs empfangen denselben Videostream, dekomprimieren ihn, schneiden ihre gewünschten Bereiche aus dem dekomprimierten Videoframe aus und stellen ihn auf ihren Displays dar, während sie mittels eines Synchronisationsverfahrens untereinander synchronisiert werden. Mittels einer Synchronisation der Hardwareuhren der PCs wird Skew zwischen den Displays der Displaywand vermieden, und mittels einer auf der Bitrate des Videostreams basierenden Flusskontrolle sowie einer Prepufferung wird Jitter vermieden. Das System erfordert jedoch die Verfügbarkeit korrekter Zeitstempel in den Videoframes und ist nur zum Darstellen einer einzigen Videobildquelle, nicht aber mehrerer Videobildquellen gleichzeitig auf der Displaywand geeignet.

Die im Stand der Technik bekannten Lösungen sind somit nachteilig, insbesondere hinsichtlich des erforderlichen Hardwareaufwandes, der hohen Netzwerkbelastung und der fehlenden generellen Anwendbarkeit für eine Vielzahl von beliebigen Videobildquellen, die gleichzeitig auf der Displaywand dargestellt werden sollen.

Ausgehend von diesem Stand der Technik liegt der vorliegenden Erfindung die Aufgabe zugrunde, ein verbessertes Verfahren und eine entsprechende Vorrichtung zu schaffen, mit denen die gleichzeitig auf mehreren (insbesondere benachbarten) Displays einer Displaywand dargestellten Bilder von beliebigen Videobildquellen derart synchronisiert werden können, dass das aus den beteiligten Displays zusammengesetzte Bild für den Betrachter ein synchrones Bild auf der Displaywand bietet. Dabei soll gegenüber herkömmlichen Synchronisationsverfahren die Frequenz bzw. Häufigkeit der Synchronisationsnachrichten, die zum Synchronisieren der Darstellung auf den Displays über das Netzwerk übertragen werden, redu- ziert werden, um das Netzwerk nur gering damit zu belasten.

Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des beigefügten Anspruchs 1 gelöst. Bevorzugte Ausgestaltungen, Weiterbildungen und Verwendungen der Erfindung ergeben sich aus den nebengeordneten und abhängigen Ansprüchen und der nachfolgenden Beschreibung mit zugehörigen Zeichnungen.

Ein erfindungsgemäßes computer-implementiertes Verfahren zum Synchronisieren der Darstellung von Videoframes aus einem Videostream mit einer Videostreamfrequenz f s einer Videoeinblendung einer Videobildquelle, die gleichzeitig auf zwei oder mehreren Displays einer aus mehreren Displays zusammengesetzten Displaywand dargestellt wird, wobei die Displays jeweils von einem zugehörigen Netzwerk-Grafikprozessor, der einen Computer mit einer Netzwerk- und einer Grafikkarte umfasst, angesteuert und mit derselben vertikalen Displayfrequenz f d betrieben werden, die lokalen Uhren auf den Netzwerk-Grafikprozessoren synchronisiert wer- den, vorzugsweise durch PTP (Precision Time Protocol), die Bildrückläufe der die Displays ansteuernden Grafikkarten der Netzwerk-Grafikprozessoren mittels Framelock oder Genlock synchronisiert werden, und der Videostream von der Videobildquelle über ein Netzwerk an die Netzwerk-Grafikprozessoren übertragen wird, wobei vorzugsweise die Video- bildquelle vor der Übertragung über das Netzwerk mittels eines Kodierers kodiert und komprimiert und nach dem Empfangen von den Netzwerk- Grafikprozessoren jeweils mittels eines Dekodierers dekodiert wird, weist die Besonderheit auf, dass es folgende Verfahrensschritte umfasst:

Die an der Darstellung einer Videobildquelle beteiligten Netzwerk-Grafikprozessoren werden in einer Master-Slave-Architektur organisiert, wobei ein Netzwerk-Grafikprozessor als Master-Netzwerk-Grafikprozessor für die Videobildquelle und die anderen Netzwerk-Grafikprozessoren als Slave- Netzwerk-Grafikprozessoren konfiguriert werden, wobei die Rollenverteilung jeweils für eine Videobildquelle dadurch gegeben ist, dass zum Synchronisieren der Darstellung der Videobildquelle der Master-Netzwerk- Grafikprozessor Synchronisationsnachrichten an die Slave-Netzwerk- Grafikprozessoren sendet, die von den Slave- Netzwerk-Grafikprozessoren empfangen und ausgewertet werden, die Videoframes werden jeweils mittels einer in den Videostream eingebetteten absoluten Framekennnummer identifiziert, die vorzugs- weise aus den RTP-Timestamps der Videoframes abgeleitet ist, die Darstellung der Videoframes wird unter den Netzwerk-Grafikprozessoren zu Framesynchronisationszeitpunkten synchronisiert, auf die jeweils eine bis zum nächsten Framesynchronisationszeitpunkt andauernde Mediationsdauer folgt, die sich über mehrere Bildrückläufe der Displaywand erstreckt, wobei jeweils kurz vor einem Framesynchronisationszeitpunkt, d.h. vor dem Beginn einer Meditationsdauer, zu einem Synchronisationsnachrichtzeitpunkt von dem Master-Netzwerk-Grafikprozessor eine Synchronisationsnachricht an die Slave-Netzwerk-Grafikprozessoren gesendet wird, und während der Mediationsdauer von den Netzwerk- Grafikprozessoren Videoframes synchron dargestellt werden, indem die Netzwerk-Grafikprozessoren jeweils lokal die darzustellenden Videoframes mittels einer Mediationsfunktion bestimmen, die den Netzwerk-Grafikprozessoren gemeinsam ist, und wobei in das Argument der Mediationsfunktion eingehende Parameter, die zum synchronen Darstellen der Videoframes erforderlich sind, in der Synchronisationsnachricht übermittelt wer- den, wobei entweder diese Parameter die vom Master-Netzwerk-Grafikprozessor gemessene Videostreamfrequenz f s oder die hierzu äquivalente vom Master-Netzwerk-Grafikprozessor gemessene Periode T s der Videostream- frequenz f s und die vom Master-Netzwerk-Grafikprozessor gemessene vertikale Displayfrequenz f d oder die hierzu äquivalente vom Master-Netzwerk-Grafikprozessor gemessene Periode T d der vertikalen Displayfrequenz f d umfassen, oder diese Parameter den Quotienten f s / f d der vom Master-Netzwerk-Grafikprozessor gemessenen Videostreamfrequenz f s mit der vom Master-Netzwerk-Grafikprozessor gemessenen vertikalen Displayfrequenz f d oder dessen hierzu äquivalenten Kehrwert f d / f s umfassen, oder diese Parameter den Quotienten T d / T s der vom Master-Netzwerk-Grafikprozessor gemessenen Periode T d der vertikalen Displayfrequenz f d mit der vom Master-Netzwerk-Grafikprozessor gemessenen Peri- ode T s der Videostreamfrequenz f s oder dessen hierzu äquivalenten Kehrwert T s / T d umfassen, die Mediationsfunktion wird von dem Master-Netzwerk-Grafikprozessor durch das Versenden von Synchronisationsnachrichten mit einer Rate syn- chronisiert, die kleiner als die vertikale Displayfrequenz f ist, die zu rendernden Videoframes des Videostreams werden jeweils lokal von den Netzwerk-Grafikprozessoren mittels lokaler Videoframezähler gezählt und durch Einhängen in jeweils eine Videoframe-Warteschlange gepuffert, einschließlich der zugehörigen absoluten Framekennnummer und des zugehörigen lokalen Videoframezählers, sodass eine Videoframe- Warteschlange jeweils die lokale Zuordnung zwischen den absoluten Framekennnummern und dem lokalen Videoframezähler enthält, mit der Synchronisationsnachricht des Master-Netzwerk-Grafikprozessors an die Slave-Netzwerk-Grafikprozessoren wird ein Momentbild der Videoframe-Warteschlange des Master-Netzwerk-Grafikprozessors zu dem Synchronisationsnachrichtzeitpunkt übermittelt, der um einen Framesynchro- nisationszeitpunktvorlauf vor dem nächsten Framesynchronisationszeitpunkt liegt, wobei das Momentbild die lokale Zuordnung zwischen den absoluten Framekennnummern und dem lokalen Videoframezähler des Master-Netzwerk-Grafikprozessors der Videoframes in der Videoframe- Warteschlange des Master-Netzwerk-Grafikprozessors enthält, zum Ermitteln eines lokalen Frameversatzes, der angibt, um wie viele Videoframes die Darstellung der Videoframes auf dem jeweiligen Slave- Netzwerk-Grafikprozessor gegenüber der Darstellung der Videoframes auf dem Master-Netzwerk-Grafikprozessor vor der Synchronisationsnachricht versetzt ist, wird lokal von den Slave-Netzwerk-Grafikprozessoren das mit der Synchronisationsnachricht empfangene Momentbild der Videoframe- Warteschlange des Master-Netzwerk-Grafikprozessors mit einem lokal gespeicherten Momentbild der Videoframe-Warteschlange des Slave-Netz- werk-Grafikprozessors verglichen und aus diesem Vergleich der Frameversatz bestimmt, und der lokale Frameversatz wird auf den Slave-Netzwerk-Grafikprozesso- ren ab dem Framesynchronisationszeitpunkt korrigiert, indem auf den Slave-Netzwerk-Grafikprozessoren ab dem Framesynchronisationszeitpunkt der Frameversatz zu dem lokalen Videoframezähler des Slave-Netz- werk-Grafikprozessors, der das zu rendernde Videoframe angibt, addiert wird, sodass den Slave-Netzwerk-Grafikprozessoren alles zum Synchronisieren Erforderliche von dem Master-Netzwerk-Grafikprozessor in der Synchronisationsnachricht mitgeteilt wird, um sowohl zu dem Framesynchronisationszeitpunkt als auch während der sich daran anschließenden Mediationsdauer bis zum folgenden Framesynchronisationszeitpunkt selbstständig lokal die Videoframes der Videoeinblendung mit dem Master-Netzwerk-Grafikprozessor synchronisiert darstellen zu können.

Die Erfindung richtet sich ferner auf ein Computerprogrammprodukt, insbesondere ein computerlesbares digitales Speichermedium, mit gespeicherten, computerlesbaren, computerausführbaren Anweisungen zum Durchführen eines erfindungsgemäßen Verfahrens, d.h. mit Anweisungen, die, wenn sie in einen Prozessor, einen Computer oder ein Computernetzwerk geladen wurden und ausgeführt werden, den Prozessor, den Computer oder das Computernetzwerk veranlassen, Verfahrensschritte und Operationen gemäß dem erfindungsgemäßen Verfahren durchzuführen.

Die Erfindung richtet sich weiterhin auf ein Computersystem, umfassend mehrere Netzwerk-Grafikprozessoren, die jeweils einen Computer mit Netzwerkkarte, Grafikkarte und Netzwerk-Interface und ein Videosynchronisationsmodul zum Ausführen eines erfindungsgemäßen Verfahrens aufweisen. Das Videosynchronisationsmodul kann dabei als Hardware oder bevorzugt vollständig als Software implementiert sein.

Schließlich hat die Erfindung eine Displaywand zum Gegenstand, die aus mehreren Displays zusammengesetzt ist und zum Darstellen eines oder mehrerer Videostreams aus einer oder mehreren Videobildquellen dient und ein erfindungsgemäßes Computersystem umfasst.

Der Erfindung liegt die Erkenntnis zugrunde, dass es mit einer erfindungsgemäßen Synchronisation von Videoframes, die im Wesentlichen auf der kombinierten Verwendung jeweils einer Videoframe-Warteschlange für die Videoframes in den Netzwerk-Grafikprozessoren und einer in den Netzwerk-Grafikprozessoren gemeinsam verwendeten Mediationsfunktion, die von einem Master-Netzwerk-Grafikprozessor aus mit einer vergleichsweise geringen Rate synchronisiert wird, möglich ist, die Darstellung der Videoframes einer Videobildquelle bzw. einer Videoeinblendung auf mehreren Displays einer Displaywand derart in Frequenz und Phase zu synchronisieren, dass eine tearingfreie Darstellung erfolgt, wobei das Netzwerk nur gering mit den Synchronisationsvorgängen und Synchronisationsnachrichten belastet wird. Durch die Erfindung werden sowohl Unterschiede zwischen der Frequenz eines dargestellten Videostreams und der vertikalen Displayfrequenz als auch Unterschiede in den Übertragungsdauern der Videoframes eines dargestellten Videostreams über das Netzwerk zu den einzelnen Netzwerk-Grafikprozessoren sowie Unterschiede in den Verarbeitungsdauern der Videoframes in den einzelnen Netzwerk-Grafikprozessoren kompensiert. Dabei beruht primär, aber nicht ausschließlich, die Kompensation der unterschiedlichen Frequenzen auf der Verwendung der Mediationsfunktion und die Kompensation der unterschiedlichen Übertra- gungs- und Verarbeitungsdauern (sogenanntes Dejittering) auf der Verwendung der Videoframe-Warteschlangen. Die erfindungsgemäße Verwendung einer Mediationsfunktion führt zu einer erheblichen Reduktion der Frequenz der Synchronisationsnachrichten. Die Erfindung ermöglicht somit in vorteilhafter Weise eine tearingfreie Darstellung bei gleichzeitig geringer Belastung des Netzwerks.

Die Erfindung hat gegenüber der oben genannten Literaturstelle Sungwon Nam et al. folgende Vorteile:

(i) Die Refreshfrequenz (vertikale Displayfrequenz) der Displays ist unabhängig von der Framerate (Videostreamfrequenz) der einzelnen Videobildquellen, deshalb können mehrere Videobildquellen beliebiger Videostreamfrequenz dargestellt werden. Die Rolle des Masters ist mit einer bestimmten Videobildquelle verknüpft. Daher können verschiedene Netzwerk-Grafikprozessoren als Master für die Contentsynchronisation verschiedener Videobildquellen agieren. Dies ist ein Vorteil bei der Implementierung der Erfindung im Vergleich zu einem System, in dem ein einziger Master für das Synchronisieren erforderlich ist.

Zwischen zwei aufeinanderfolgenden Framesynchronisationszeitpunkten wird mittels einer Mediationsfunktion bestimmt, welche Videoframes aufeinanderfolgend dargestellt werden. Die Frequenz, mit der die Framesynchronisationen durchgeführt werden, d.h. die Frequenz der Frameresynchronisationen (Rekorrelation der synchronen Darstellung der Videoframes), ist jedoch viel kleiner als die vertikale Displayfrequenz (Synchronisationswiederholfrequenz der Displays, Bildrücklauffrequenz, auf Englisch refresh rate). Dies verringert die zusätzliche Belastung des Netzwerks durch Synchronisationsvorgänge, die für das Vermeiden von Tearing über das Netzwerk ablaufen müssen, erheblich. Das ist umso mehr von Vorteil, je mehr Videobildquellen oder Videoeinblendungen, z.B. 40 bis 60, synchronisiert werden müssen.

Die Synchronisationsprozesse laufen für jede Videobildquelle unabhängig. Bei der parallelen Durchführung einer Synchronisation von mehreren Videostreams (Videoeinblendungen IS) auf mehreren Netzwerk-Grafikprozessoren NGP haben die Synchronisationsprozesse für die mehreren gleichzeitig synchronisierten Videostreams (Videoeinblendungen IS) nämlich keine Auswirkung aufeinander, d.h. sie arbeiten voneinander vollständig unabhängig, zumindest dann, wenn keine transparenten Überblendungen von Videoeinblendungen benötigt werden, was in der Praxis nahezu immer der Fall ist. Das erfindungsgemäße Verfahren der Contentsynchronisation läuft somit für jeden Videostream, der auf der Displaywand dargestellt wird, gesondert und unabhängig voneinander ab, ohne dass dabei die einzelnen Synchronisationsprozesse für die jeweiligen Video- streams (Videoeinblendungen IS) eine Abstimmung oder Synchronisation untereinander benötigen.

Die-Synchronisation der Bildrückläufe (Englisch: vertical retra- ces) der Ausgangssignale der Grafikkarten erfolgt ohne zusätzliche Hardware, indem die Pixelclock auf jeder Grafikkarte durch Software programmiert wird. Da die Videoframes in einen unsichtbaren zweiten Puffer gerendert werden (Double-Buffe- ring) und erst dann zu sehen sind, wenn dieser verdeckte Puffer während des nächsten Bildrücklaufs in den sichtbaren Bereich kopiert wird (Swap-Locking), ist die Darstellung neuer Videoframes für beliebig viele Videobildquellen automatisch zwischen allen Netzwerk-Grafikprozessoren synchronisiert.

Die Erfindung hat gegenüber der oben genannten Literaturstelle

Choe et al. insbesondere folgende Vorteile:

Die Erfindung kann eine Vielzahl von Videobildquellen mit untereinander verschiedenen Frameraten handhaben. Die Frameraten der Videobildquellen können zudem auch verschieden von der Refreshrate (vertikale Displayfrequenz) der gekachelt angeordneten Displays der Displaywand sein.

Die in den Videostream eingebetteten Zeitstempel werden bei der Erfindung nur zum Identifizieren der Videoframes verwendet, die Zeitinformation der Zeitstempel wird aber nicht zum Synchronisieren der Videoframes herangezogen. Dies ist vorteilhaft, weil nicht alle Kodierer eine korrekte Angabe von Zeit- stempeln unterstützen. Die Lösung nach der Literaturstelle Giseok Choe et al. hängt dagegen für eine synchrone Darstellung der Videoframes vollständig davon ab, dass für die Videoframes korrekte Zeitstempel zur Verfügung stehen.

Die synchronisierte Darstellung neuer Videoframes auf den Netzwerk-Gra- fikprozessoren (NGP 1, NGP 2, NGP n) ist noch keine Content-Synchronisation, d.h. das synchronisierte Sichtbarwerden eines neuen Videoframes garantiert noch nicht, dass es sich dabei auch um dasselbe Video- frame aus dem Videostream handelt. Die Prozesse, die schließlich diese Contentsynchronisation bewerkstelligen, arbeiten getrennt und unabhängig für jede einzelne Videobildquelle, wobei für jeden dieser Prozesse ein Netzwerk-Grafikprozessor der Master ist und alle anderen sind die Slaves; dabei können verschiedene Darstellungen von Videobildquellen verschie- dene Netzwerk-Grafikprozessoren als Master haben. Die Rolle des Masters ist es, die Synchronisationsnachrichten für die Videoframe-Content-Synchronisation an alle beteiligten Slaves zu schicken.

Der Hauptvorteil der erfindungsgemäßen Mediationsfunktion besteht da- rin, dass die für die Synchronisation erforderliche Netzwerkbelastung stark reduziert wird, da nicht für jedes einzelne Videoframe eines Video- streams eine Synchronisationsnachricht über das Netzwerk geschickt werden muss, sondern nur noch im zeitlichen Abstand der Framesynchronisationszeitpunkte TS. Die Zeit zwischen zwei Framesynchronisationen, d.h. die Mediationsdauer TM zwischen zwei Framesynchronisationszeitpunkten TS, beträgt bei der Erfindung typischerweise eine Sekunde statt 20 msec, wie sie bei einer Frame-by-Frame-Synchronisation mit einer Framerate des Videostreams von 50 Hz erforderlich wäre. Besonders vorteilhaft ist ferner, dass für die erfindungsgemäße Framesynchronisation kein Versen- den von Synchronisationsnachrichten von den Slave-Netzwerk-Grafikpro- zessoren zu dem Master-Netzwerk-Grafikprozessor erforderlich ist, sondern die Übermittlung von Synchronisationsnachrichten von dem Master- Netzwerk-Grafikprozessor an die Slave-Netzwerk-Grafikprozessoren ausreicht. Der zusätzliche Datenverarbeitungsaufwand auf den Netzwerk-Gra- fikprozessoren zum lokalen Vergleichen von Informationen aus der Synchronisationsnachricht mit lokal gespeicherten Informationen und zum Berechnen der Mediationsfunktion bzw. zum Ermitteln des zu rendernden Videoframes ist sehr gering und stellt im Hinblick auf die hohe Rechenleistung gebräuchlicher Netzwerk-Grafikprozessoren praktisch keine nennenswerte Belastung dar. Die Implementierung der erfindungsgemäßen Synchronisation besteht aus Mediation und Framesynchronisation und erfolgt vorzugweise vollständig in Software (z.B. auf dem Betriebssystem LINUX) auf der Standard-Hardware-Komponente, die das Rendering macht (und ggf. auch das Softwareoder Hardwaredecoding). Eine solche Standard-Hardware-Komponente in Form eines Netzwerk-Grafikprozessors umfasst einen Computer mit Netzwerkkarte, Grafikkarte und (Ethernet-)Netzwerk-Interface). Die Erfindung hat somit den Vorteil, dass sie ohne zusätzliche Hardwarekomponenten bei einer gebräuchlichen Displaywand mit der dort standardmäßig vorhandenen Hardware implementiert werden kann.

In vorteilhaften praktischen Ausführungsformen kann das erfindungsgemäße Verfahren insbesondere einen oder mehrere folgender weiterer Verfahrensschritte umfassen : Die Bildrückläufe der Grafikkarten der Netzwerk-Grafikprozessoren werden von den Netzwerk-Grafikprozessoren lokal mittels eines unter den Netzwerk-Grafikprozessoren synchronisierten Vsynczählers gezählt, von den Netzwerk-Grafikprozessoren werden lokale relative Vsynczähler NSR gebildet, die die Differenz zwischen dem aktuellen, synchronisierten Vsynczähler und dessen Wert zum letzten Framesynchronisationszeitpunkt sind, von den Netzwerk-Grafikprozessoren werden die relativen Vsynczähler NSR als Argumentwert der Mediationsfunktion MF verwendet, wobei für die Mediationsfunktion MF gilt

NFR = MF(NSR) = mediation(NSR) =

und die Mediationsfunktion MF als Funktionswert einen lokalen relativen Videoframezähler NFR berechnet, der die Differenz aus dem lokalen Videoframezähler des aus der Videoframe-Warteschlange zum Rendern zu selektierenden Videoframes und dem lokalen Videoframezähler des Videoframes zum letzten Framesynchronisationszeitpunkt ist, sodass von den Netzwerk-Grafikprozessoren mittels des lokalen relativen Videoframezählers NFR das von dem jeweiligen Netzwerk-Grafikprozessor für die Darstellung auf dem Display zu rendernde Videoframe bestimmt und zum Rendern ausgewählt wird, wobei die Mediationsfunktion MF aufgrund des in dem Argumentwert der Mediationsfunktion- MF enthaltenen Quotienten Videostreamfrequenz f s dividiert durch vertikale Displayfrequenz f d (bzw. des reziproken Quotienten der Periodendauern) in der Verarbeitung der Videoframes zwischen diesen beiden Frequenzen ausgleichend vermittelt, wenn diese verschieden sind .

In vorteilhaften Ausführungsformen kann das erfindungsgemäße Verfahren ferner insbesondere einen oder mehrere folgender weiterer Verfahrensschritte umfassen :

Zum Bestimmen des Frameversatzes wird in dem Vergleich des mit der Synchronisationsnachricht empfangenen Momentbildes der Videoframe- Warteschlange des Master-Netzwerk-Grafikprozessors mit einem lokal gespeicherten Momentbild der Videoframe-Warteschlange des Slave-Netz- werk-Grafikprozessors mittels der in den Momentbildern enthaltenen absoluten Framekennnummern geprüft, ob in den beiden Momentbildern ein gemeinsames Bezugsvideoframe enthalten ist, und für dieses Bezugsvideoframe aus der in den Momentbildern enthaltenen lokalen Zuordnung zwischen den absoluten Framekennnummern und den lokalen Videoframezählern eine Videoframezählerdifferenz gebildet, die die Differenz zwischen dem lokalen Videoframezähler des Slave-Netzwerk-Grafikprozes- sors des Bezugsvideoframes und dem lokalen Videoframezähler des Mas- ter-Netzwerk-Grafikprozessors des Bezugsvideoframes ist, und mittels der Videoframezählerdifferenz wird der Frameversatz bestimmt, . indem zunächst der Slave-Netzwerk-Grafikprozessor für das Bezugsvideoframe eine Umrechnungsdifferenz bildet, die die Differenz aus seinem lokalen Videoframezähler und der Videoframezählerdifferenz ist, und der Slave-Netzwerk-Grafikprozessor den lokalen Videoframezähler des Master-Netzwerk-Grafikprozessors für das Videoframe berechnet, das zum Synchronisationsnachrichtzeitpunkt vom Master zum Rendern ausgewählt wurde, indem er von dem lokalen Videoframezähler des Slave-Netzwerk-Grafikprozessor die Umrechnungsdifferenz abzieht, und der Frameversatz als die Differenz des lokalen Videoframezählers des Master-Netzwerk-Grafikprozessors für das Videoframe, das zum Synchronisationsnachrichtzeitpunkt vom Slave-Netzwerk-Grafikprozessor zum Rendern ausgewählt wurde, und des lokalen Videoframezählers des Mas- ter-Netzwerk-Grafikprozessors für das Videoframe, das zum gleichen Synchronisationsnachrichtzeitpunkt vom Master-Netzwerk-Grafikprozessor zum Rendern ausgewählt wurde, berechnet wird.

Hinter diesem Vorgang steht die Frage, wie der Slave-Netzwerk-Grafikprozessor mittels des in der Synchronisationsnachricht empfangen Momentbildes von einem Videoframe den lokalen Videoframezähler bestimmt, den dasselbe Videoframe auf dem Master-Netzwerk-Grafikprozessor hat. Der Slave-Netzwerk-Grafikprozessor normiert dabei seinen lokalen Videoframezähler auf den Master-Netzwerk-Grafikprozessor. Dies erfolgt mit Hilfe der Videoframezählerdifferenz, die konstant und unabhängig vom Videoframe ist, solange beim Dekodieren eines Videostreams auf einem Netzwerk-Grafikprozessor kein Videoframe aus dem Videostream verloren geht, z.B. durch eine Fehlfunktion, eine Störung, eine Fehlübertragung oder ein Zeitproblem. Die Videoframezählerdifferenz der lokalen Videoframezähler wird beim Bestimmen und Korrigieren des Frameversatzes zwischen Slave-Netzwerk-Grafikprozessor und Master-Netzwerk-Grafikprozessor dazu benötigt, den lokalen Videoframezähler des Slave-Netz- werk-Grafikprozessors auf den Master-Netzwerk-Grafikprozessor umzurechnen. Der Slave-Netzwerk-Grafikprozessor kann für ein beliebiges Videoframe den lokalen Videoframezähler auf dem M aste r- Netz wer k- Grafikprozessor berechnen, indem er von seinem lokalen Videoframezähler die Umrechnungsdifferenz abzieht.

Prinzipiell kann man zum Bestimmen des Frameversatzes beim Vergleichen der Momentbilder nach einer beliebigen absoluten Framekennnum- mer suchen, die in beiden Momentbildern, d.h. in dem Momentbild des Master-Netzwerk-Grafikprozessors, das mit der Synchronisationsnachricht an den Slave-Netzwerk-Grafikprozessor übermittelt wurde, und dem Momentbild der Videoframe-Warteschlange des Slave-Netzwerk-Grafikpro- zessors Slave-NGP enthalten ist, um anhand dieses gemeinsamen Bezugsvideoframes den Frameversatz zu bestimmen. Gemäß einer bevorzugten Ausführungsform, mit der in optimierter Weise überprüft werden kann, ob sich die Intervalle der enthaltenen absoluten Framekennnummern in den beiden Momentbildern überlappen und ein gemeinsames Bezugsvideoframe bestimmt wird, werden bevorzugt Tests mit den Ver- fahrensschritten gemäß einer oder beider folgender Varianten durchgeführt. Die erste Variante besteht darin, dass zum Bestimmen der Videoframezählerdifferenz bei dem Vergleich der Momentbilder danach gesucht wird, ob das als letztes, d.h. unmittelbar vor dem Versand der Synchronisationsnachricht vom Slave-Netzwerk-Grafikprozessor in die Videoframe- Warteschlange des Slave-Netzwerk-Grafikprozessors eingehängte Videoframe in dem Momentbild des Master-Netzwerk-Grafikprozessors enthalten ist. Falls ja, kann dieses Videoframe dann als gemeinsames Bezugsvideoframe verwendet werden. Die zweite Variante besteht darin, dass zum Bestimmen der Videoframezählerdifferenz mit der Synchronisationsnachricht des Master- Netzwerk- Grafikprozessors an die Slave-Netzwerk-Grafikprozessoren der Wert des lokalen Videoframezählers des Master-Netzwerk-Grafikprozessors für das als letztes, d.h. unmittelbar vor dem Versand der Synchronisationsnach- rieht vom Master-Netzwerk-Grafikprozessor in die Videoframe-Warteschlange des Master-Netzwerk-Grafikprozessors eingehängte Videoframe, und die absolute Framekennnummer dieses Videoframes übermittelt wird, und bei dem Vergleich der Momentbilder danach gesucht wird, ob dieses Videoframe in beiden verglichenen Momentbildern enthalten ist. Falls ja, kann dieses Videoframe dann als gemeinsames Bezugsvideoframe verwendet werden.

Gemäß dieser Ausführungsform wird der Frameversatz bestimmt, indem der Slave-Netzwerk-Grafikprozessor die Differenz aus dem lokalen Video- framezähler (mit der Videoframezählerdifferenz auf den Master umgerechnet) des zum Rendern zum letzten Framesynchronisationszeitpunkt ausgewählten Videoframes und dem lokalen Videoframezähler des entsprechenden Videoframes des Master-Netzwerk-Grafikprozessors (übermittelt mit der letzten Synchronisationsnachricht vom Master-Netzwerk-Grafik- Prozessor) berechnet und mit dieser Differenz den lokalen relativen Videoframezähler des Slave-Netzwerk-Grafikprozessors durch Hinzuaddieren oder Subtrahieren korrigiert. Diese beiden Tests können in beliebiger Reihenfolge ausgeführt werden, und wenn einer der beiden Tests erfolgreich ist, d.h. dass eine Überlappung festgestellt wird, braucht der andere Test nicht mehr durchgeführt werden. Wenn dagegen beide Tests nicht erfolgreich sind, gibt es in den verglichenen Momentbildern kein gemeinsames Bezugsvideoframe

Die Erfindung wird nachfolgend anhand in den Figuren dargestellter Ausführungsbeispiele näher erläutert. Die darin beschriebenen Besonderheiten können einzeln oder in Kombination miteinander eingesetzt werden, um bevorzugte Ausgestaltungen der Erfindung zu schaffen. Gleiche oder gleich wirkende Teile werden in den verschiedenen Figuren mit denselben Bezugszeichen bezeichnet und gewöhnlich nur einmal beschrieben, auch wenn sie bei anderen Ausführungsformen vorteilhaft eingesetzt werden können. Es zeigen:

Figur 1 ein Beispiel einer Displaywand mit 3x4 Displays,

Figur 2 ein Beispiel einer Videoeinblendung auf einer Displaywand,

Figur 3 ein Beispiel für Frametearing bei der horizontalen Bewegung eines vertikalen Teststreifens in einer Displaywand,

Figur 4 ein Beispiel für Frametearing bei der vertikalen Bewegung eines horizontalen Teststreifens in einer Displaywand,

Figur 5 eine Systemkonfiguration mit Framelock,

Figur 6 eine Systemkonfiguration mit Genlock,

Figur 7 ein Beispiel einer Videoframe-Warteschlange, implementiert als

Ringpuffer,

Figur 8 das Rendern eines Videostreams auf einem Netzwerk-Grafikprozessor für f s = f d , d.h. die Videostreamfrequenz f s ist gleich der vertikalen Displayfrequenz f d ,

Figur 9 das Rendern eines Videostreams auf einem Netzwerk-Grafikprozessor für f s < f d , Figur 10 das Sichtbarwerden der Videoframes von Figur 9 auf einem Display,

Figur 11 das Rendern eines Videostreams auf einem Netzwerk-Grafikprozessor für f s > f d ,

Figur 12 das Sichtbarwerden der Videoframes von Figur 11 auf einem

Display,

Figur 13 die Synchronisation von zwei Netzwerk-Grafikprozessoren für eine Videobildquelle,

Figur 14 die Wirkung einer Mediationsfunktion für den Fall f s < f d ,

Figur 15 die Wirkung einer Mediationsfunktion für den Fall f s > f d ,

Figur 16 die Funktion floor(x),

Figur 17 eine erste Vorbereitungsstufe des Synchronisationsprozesses, Figur 18 eine zweite Vorbereitungsstufe des Synchronisationsprozesses, Figur 19 den Synchronisationsprozess und

Figur 20 die Messung der Frequenzen f s und f d .

Die Figur 1 zeigt eine Aufsicht auf die Displays D einer beispielhaften Displaywand 1 mit 3x4 Displays D. Eine Displaywand 1, die auch als Videowand bezeichnet wird, umfasst allgemein eine Mehrzahl n von Displays D (Dl, D2, Dn), zum Beispiel Projektionsmodule (Rückprojektion oder Auflicht) oder LCDs. Die Architektur der Displaywand 1 umfasst n benachbarte Displays D in einer Matrixanordnung mit i Zeilen und j Spalten, d.h. i x j = n. Die n Displays D haben dieselbe Displayfrequenz f d und vorzugsweise dieselbe Größe und Auflösung.

Bei den von den Displays D der Displaywand 1 darzustellenden Videobildquellen S handelt es sich um eine Mehrzahl von m Videos bzw. Videobildquellen S (Sl, S2, Sm). Diese Videos sind jeweils ein Datenstrom von Bildern, d.h. ein Videostream (Videostrom) von Videoframes. Viele aufeinanderfolgende Einzelbilder ergeben ein Video bzw. einen Film. Die von einem Display D dargestellten Einzelbilder aus einer viele Einzelbilder umfassenden Video- oder Filmsequenz werden als Videoframes bezeich- net. Die Videobildquellen S haben Videostreamfrequenzen f s , die sowohl untereinander verschieden sein können als auch verschieden von der vertikalen Displayfrequenz f d sein können. Während die Bezeichnung Videobildquelle S (oder Bildquelle, englisch "source") sich auf die Erzeuger- bzw. Quellenseite (beispielsweise einen das Video als Videobildquelle liefernden Encoder) des Videodatenstreams bezieht, werden die aus den Videostreams der Videobildquellen S abgeleiteten Darstellungen auf den Displays D der Displaywand 1 als Videoein- blendungen IS (englisch "insertions") bezeichnet. Aus den m Videobildquellen S wird eine bestimmte Anzahl von Videoeinblendungen IS gewonnen und auf der Displaywand 1 dargestellt. Dabei kann eine einzelne Videoeinblendung IS nur ein Teil des Bildes einer Videobildquelle S (sogenanntes "cropping") oder aber das gesamte Bild einer Videobildquelle S sein. Die Bilder einer Videobildquelle S können auch mehrfach als mehrere Videoeinblendungen IS auf einem oder mehreren Displays D dargestellt werden, dasselbe gilt für Teile der Bilder einer Videobildquelle S. In der Regel ist die Anzahl der Videoeinblendungen IS größer oder gleich der Anzahl m der Videobildquellen S. Im praktisch häufigsten Fall wird jede Videobildquelle S nur einmal auf der Displaywand 1 dargestellt; in diesem Fall ist dann die Anzahl der Videoeinblendungen IS gleich der Anzahl m der Videobildquellen S.

Die Figur 2 zeigt ein Beispiel einer logischen Videoeinblendung IS auf der Displaywand 1 von Figur 1. Der räumliche Bereich einer auf einer Displaywand 1 dargestellten Videoeinblendung IS wird sich im allgemeinen über mehrere Displays D erstrecken, wobei die Videoteileinblendungen auf den betreffenden Displays D zusammen eine logische Videoeinblendung IS bilden. In Figur 2 erstreckt sich der eingeblendete Bereich der Videoeinblen- dung IS über das gesamte Display D6 und Teile der Displays Dl, D2, D3, D5, D7, D9, D10 und Dil, wogegen die Displays D4, D8 und D12 nicht an der Darstellung der Videoeinblendung IS beteiligt sind. Aufgrund verschiedener Effekte, insbesondere aufgrund unterschiedlicher Übertragungsdauern (Netzwerkverzögerungen) von den Kodierern der Videobildquellen S zu den Netzwerk-Grafikprozessoren der Displays D und/oder aufgrund verschiedener Verarbeitungsdauern (Verarbeitungsverzögerungen) der bei der Bilderzeugung auf den Displays D beteiligten Netzwerk-Grafikprozessoren, die beispielsweise durch unterschiedliche CPU-Auslastungen verursacht werden, kann es passieren, dass ein bestimmtes Videoframe des Videostreams einer logischen Videoeinblen- dung IS auf einem Display D mit einer kleinen zeitlichen Verzögerung (oder allgemein mit einem kleinen zeitlichen Unterschied) gegenüber den anderen Displays D dargestellt wird. Das bedeutet, dass während zu einem Zeitpunkt ein Videoframe i auf einem Display D dargestellt wird, zu demselben Zeitpunkt auf einem oder mehreren anderen Displays D der Displaywand 1 ein oder mehrere in dem Videostream zeitlich vorausgehende Videoframes, z.B. Videoframe (i-1) oder (i-2), oder ein oder mehrere in dem Videostream zeitlich nachkommende Videoframes, z.B. Videoframe (i+1) oder (i+2), dargestellt werden. Dies führt zu einem Effekt, der allgemein Tearing (von engl, "to tear" = zerreißen, in deutsch etwa als "Einzelbild-Zerreißen" oder "Zeilenreißen" zu bezeichnen) genannt wird. Andere Gründe, die zum Tearing in der Darstellung auf den Displays D einer Displaywand 1 führen sind, bestehen darin, dass die verschiedenen Videobildquellen S, die kodiert über das Netzwerk verteilt werden, aus Videobildquellen S mit untereinander verschiedenen Frameraten stammen können, und dass die Frameraten der Videobildquellen S verschieden von den Refreshfrequenzen (vertikale Displayfrequenzen) der Displays D sein können. Das bekannte Tearing ist ein unerwünschter Effekt (ein sogenanntes "Artefakt") beim Darstellen bewegter Bilder auf einem einzelnen Display D, z.B. einem Computermonitor oder einem digitalen Fernseher. Tearing ist ein visuelles Artefakt in Videodarstellungen, das auftritt, wenn ein Videodisplay D die Information von einem oder mehreren Videoframes in einem einzigen Bilddurchlauf darstellt. Zu dem Effekt kann es kommen, wenn der Aufbau und das Anzeigen der Einzelbilder nicht mit der Monitor- Wiedergabe, beispielsweise der Refreshfrequenz (Bildwiederholfrequenz, vertikale Frequenz, vertikale Displayfrequenz) oder dem Bildlauf, synchronisiert ist. Dies kann an der fehlenden Anpassung der Refreshfrequenz liegen; in diesem Fall bewegt sich die Tearinglinie, wenn sich der Phasenunterschied verändert, mit einer Geschwindigkeit, die proportional zu dem Frequenzunterschied ist. Es kann aber auch einfach an einer fehlenden Synchronisation der Phase zwischen gleichen Frameraten liegen; in diesem Fall befindet sich die Tearinglinie an einem festen Ort, der durch die Phasendifferenz gegeben ist. Bei der Darstellung bewegter Bilder oder bei Kameraschwenks führt Tea- ring zu einem zerrissenen Aussehen von Kanten gerader Objekte, die dann nicht mehr aneinander anschließen. Der Betrachter sieht dann mehrere Teile aufeinander folgender Einzelbilder zur selben Zeit, d.h. die Bilder wirken "zerrissen". Dem kann man beispielsweise durch Mehrfach- pufferung, z.B. Doppelpufferung bei der Bilderzeugung und Bilddarstellung abhelfen, indem die Einzelbilder alternierend in zwei Speicherbereiche geschrieben werden, von denen immer einer sichtbar ist. Diese Speicherbereiche werden dann synchron mit der Refreshfrequenz des Monitors, etwa 60 mal pro Sekunde, während der vertikalen Synchronisation (Vsync) umgeschaltet, wodurch der Bildwechsel "unsichtbar" wird. Dieses Prinzip funktioniert in gleicher Art natürlich auch mit 30 Hz oder 15 Hz, wobei dann eben der Monitor jedes Bild etwas länger anzeigt. Besonders störend ist dieser Tearing-Effekt bei höheren Auflösungen, wobei je nach Aufbau der Monitor-Panels vertikales oder horizontales oder gar in beiden Richtungen auftretendes Tearing vorkommen kann. Zum Vermeiden des bekannten Tearings bei einem einzelnen Display D wird zumeist sowohl Mehrfachpufferung, z.B. Doppelpufferung, als auch vertikale Synchronisation verwendet. Die Videokarte wird solange daran gehindert, etwas Sichtbares an dem Displayspeicher zu tun, bis der Dis- playspeicher seinen aktuellen Refreshzyklus beendet hat, und während des vertikalen Austastintervalls veranlasst der Controller die Videokarte entweder dazu, den nicht sichtbaren Grafikbereich in den aktiven Displaybereich zu kopieren oder behandelt beide Speicherbereiche als darstellbar und schaltet einfach zwischen beiden um. Bei der vertikalen Synchronisa- tion ist die Framerate der Renderingmaschine genau gleich der Refreshfrequenz (vertikale Displayfrequenz) des Monitors. Sie hat jedoch auch manche Nachteile wie z.B. Flattern (englisch "judder"), was daran liegt, dass Videos üblicherweise mit geringerer Framerate (24-30 Video- frames/sec) als der Refreshfrequenz des Monitors (typischerweise 60 Hz) aufgenommen werden. Das daraus resultierende regelmäßige Verpassen von Startpunkten und etwas zu häufige Darstellen von Zwischenframes führt zu einem Bildflattern.

Während im Stand der Technik somit ein erheblicher technischer Aufwand betrieben wird, um bereits das Tearing bei der Darstellung auf einem einzelnen Display D zu vermeiden, lösen die dabei angewendeten bekannten Maßnahmen nicht das oben beschriebene Problem, dass aufgrund der beschriebenen Laufzeitunterschiede zu einem bestimmten Zeitpunkt auf den Displays D einer Displaywand 1 Videoframes dargestellt werden kön- nen, die in dem Videostream zu verschiedenen Zeiten gehören. Dieser bei Displaywänden 1 auftretende optische Effekt kann ebenfalls als "Tearing- Effekt" bezeichnet werden und ist besonders bei der Darstellung horizontal oder vertikal bewegter Objekte an den Rändern der das Objekt darstellenden Displays D störend, weil dort an dem Übergang von einem Dis- play zum benachbarten Display das Objekt "auseinandergerissen" erscheint. Dieser Effekt tritt umso eher auf, je größer die Refreshfrequenz (vertikale Displayfrequenz) und die Auflösung der Displays D sind. Der Effekt wird anhand der Figuren 3 und 4 veranschaulicht, bei denen ein sich über zwei benachbarte Displays D erstreckendes, zur Durchführung reproduzierbarer Prüfungen häufig verwendetes Testsignal in Form eines horizontal bzw. vertikal wandernden Balkens bzw. Teststreifens dargestellt wird.

Die Figur 3 zeigt ein Beispiel eines Frametearing in einer Displaywand 1 bei horizontaler Bewegung (in die +x Richtung) eines vertikalen Balkens. Das Display D3 zeigt das Videoframe i und das benachbarte Display Dl stellt zum selben Zeitpunkt das frühere Videoframe (i-1) dar. Dadurch kommt es zum Tearing, d.h. zu einem Versatz in der Darstellung des Balkens an dem Übergang zwischen den Displays Dl und D3, wobei der Versatz umso größer ist, je größer die Geschwindigkeit des bewegten Balkens ist. Der Versatz verfälscht die Darstellung des Balkens und fällt einem Betrachter störend auf. Der Versatz ist umso größer, je größer die Geschwindigkeit des bewegten Balkens ist.

Die Figur 4 zeigt ein Beispiel eines Frametearing in einer Displaywand 1 bei vertikaler Bewegung (in die +y Richtung) eines horizontalen Balkens. Das Display D3 zeigt das Videoframe i und das benachbarte Display D4 stellt im selben zeitlichen Moment das frühere Videoframe (i-1) dar. Dadurch kommt es zum Tearing, d.h. zu einem die Darstellung verfälschenden Versatz in der Darstellung des Balkens an dem Übergang zwischen den Displays D3 und D4, wobei der Versatz umso größer ist, je grö- ßer die Geschwindigkeit des bewegten Balkens ist.

Schon ein Versatz der Darstellung eines Objekts auf benachbarten Displays um ein Videoframe fällt beim Betrachten einer Displaywand 1 auf (Gummibandeffekt). In der Praxis liegt der zeitliche Frameversatz auf den Displays D einer Displaywand 1 ohne erfindungsgemäße Synchronisation der Darstellung der Videoframes bei +/- 1 bis max. +/- 3 Videoframes. Jedoch ist schon ein Unterschied von +/- 1 Videoframe in der Darstellung einer Videoeinblendung auf benachbarten Displays D sichtbar, insbesondere bei der Darstellung schnell bewegter Objekte und weil der Frameversatz schwankt, und soll demzufolge durch die Synchronisation verhindert werden. In der Praxis reicht es in der Regel jedoch aus, eine Abweichung von +/- 3 Videoframes (d.h. drei aufeinanderfolgenden Bildrückläufen) erfindungsgemäß durch Videoframe-Warteschlangen und die Mediationsfunktion auszuregeln.

Um diesen sichtbaren Artefakt des Frametearing in einer Displaywand 1 zu vermeiden, ist es wichtig, dass auf den verschiedenen (physikalischen) Displays D der Displaywand 1 zu einem Zeitpunkt genau dieselben Videoframes einer logischen Videoeinblendung IS dargestellt werden. Die Darstellung der Videoframes einer Videoeinblendung IS auf den Displays D einer Displaywand 1 muss also hinsichtlich Frequenz und Phase synchroni- siert werden, um zu vermeiden, dass zu einem Zeitpunkt von den Displays D unterschiedliche Videoframes dargestellt werden.

Um die vorstehend beschriebenen beiden Arten von Tearing bei der Darstellung von Videobildquellen r auf einer Displaywand 1 zu vermeiden, wer- den erfindungsgemäß bevorzugt folgende drei Maßnahmen ergriffen:

(i) Mehrfachpufferung, vorzugsweise Doppelpufferung, und Swap- Locking auf jedem der Netzwerk-Grafikprozessoren NGP, die ein einzelnes Display D der Displaywand 1 ansteuern.

(ii) Synchronisation der Bildrückläufe (Englisch: vertical retraces) der Grafikkarten in den einzelnen Displays (Framelocking oder

Genlocking).

(iii) Contentiocking; dabei wird die Darstellung von Videoframes einer Videobildquelle S derart synchronisiert, dass in demselben zeitlichen Moment auf jedem der beteiligten Displays D genau dieselben Videoframes dieser Videobildquelle, die zu einer logischen Videoeinblendung IS gehören, dargestellt werden.

Im Folgenden wird erläutert, wie erfindungsgemäß der tearingfreie Betrieb erreicht wird, insbesondere mittels eines erfindungsgemäßen Con- tentlockings.

Im Rahmen der Erfindung erfolgt die Darstellung der Videoframes vorzugsweise mittels der Netzwerk-Grafikprozessoren NGP mehrfach gepuf- fert, vorzugsweise doppelt-gepuffert, und swap-locked. Diese Begriffe beziehen sich auf den Vorgang, wie die in einem Pufferspeicher eines Netzwerk-Grafikprozessors NGP gespeicherten Bilddaten (Videoframes) auf dem zugeordneten Display D zur Darstellung gelangen. Bei der Doppelpufferung werden zwei Pufferspeicher verwendet, nämlich ein Frontpuffer (in englisch: visible buffer oder front buffer), in dem die Bilddaten enthalten sind, die gerade auf dem Display D dargestellt werden, und ein Backpuffer, in dem die Bilddaten des nächsten Videoframes enthalten sind. Double Buffering bezeichnet also, dass das Onboard- Memory in der Grafikkarte des Netzwerk-Grafikprozessors NGP zwei Spei- cherbereiche hat, nämlich einen sichtbaren Bereich, der zur Darstellung in das Display D ausgelesen wird, und einen Backpuffer-Bereich, der von der GPU angesteuert wird. Bei der Mehrfachpufferung werden entsprechende weitere Pufferspeicher verwendet. Im Swap-Locking-Betrieb erfolgt das Kopieren aus dem Backpuffer in den Frontpuffer oder das Vertauschen der Rollen dieser Pufferbereiche (Buffer-Flipping) in der Bildaustastlücke (ver- tical retrace, Bildrücklauf) des Displays D. Das Swapping kann entweder ein echtes Kopieren sein oder ein Buffer-Flipping, d.h. ein echtes Austauschen der Speicherbereiche. Beim Austauschen werden nicht die Pufferinhalte vertauscht, sondern das Lesen erfolgt aus dem anderen Puffer. Durch das mehrfach oder double Buffering und den swap-locked Speicherbetrieb wird das Tearing während eines Bildaufbaus auf einem einzelnen Display D vermieden. Dieses Umschalten kann ein Kopieren vom verdeck- ten in den sichtbaren Speicherbereich sein oder der Video-Controller auf der Grafikkarte vertauscht hardwaremäßig die Rollen dieser beiden Speicherbereiche, was als Buffer-Flipping bezeichnet wird

Mit Rendern bezeichnet man das Umsetzen bzw. Konvertieren einer geometrischen Bildbeschreibung, beispielsweise einer Vektorgrafik, in eine Pixeldarstellung. Das Rendern von Videoframes mittels OpenGL kann dop- pelt-gepuffert und swap-locked durchgeführt werden. OpenGL ist ein grafisches Subsystem, das speziell Rendern mit Textur erlaubt, wobei zum Rendern von Videoframes der Frameinhalt als Textur auf das Darstellungsrechteck der Videoeinblendung abgebildet (gemappt) wird. Doppeltes Puffern bedeutet, dass die Videoframes in einen Backpuffer gerendert werden, dessen Inhalt nicht auf dem Display D sichtbar ist. Und dies erfolgt, während das vorausgegangene, in dem Frontpuffer enthaltene Videoframe dargestellt wird. Wenn eine Swap-Puffer-Funktion (eine OpenGL Library Funktion) aufgerufen wird, werden der Backpuffer und der Frontpuffer ausgetauscht (swapped), d.h. der Backpuffer wird zum neuen Frontpuffer, dessen Information ausgelesen und auf dem Display D sichtbar wird, und der Frontpuffer wird zum neuen Backpuffer für den Renderungsvorgang des nächsten Videoframes.

Das Swap-Locking bedeutet, dass dieser Pufferaustausch während der vertikalen Bildaustastlücke (dem Bildrücklauf, Bildrücksprung, Displayrücklauf, Displayrücksprung) des Displays D durchgeführt wird. Die Swap- Puffer-Funktion kann zu jedem beliebigen Zeitpunkt aufgerufen werden, aber der Backpuffer wird nur während der nächsten Bildaustastlücke des Displays D in den Frontpuffer kopiert. Dadurch wird in jedem individuellen dargestellten Bild eines Displays D das Tearing verhindert.

Im Rahmen der Erfindung werden ferner die Bildrückläufe der die Displays D ansteuernden Grafikkarten in den Netzwerk-Grafikprozessoren synchronisiert, was bedeutet, dass die Bildrücklaufsignale dieselbe Frequenz und dieselbe Phase haben. Ein mögliches Verfahren zur Implementierung besteht darin, dass ein Computer mit einem Grafikprozessor, d.h. hier ein Netzwerk-Grafikprozessor NGP, als Master konfiguriert wird, der beispielsweise über ein Multidropkabel an alle Computer mit einem Grafikprozessor das Bildrücklaufsignal Vsync liefert. Diese Variante wird als "Framelock" bezeichnet und ist in Figur 5 dargestellt. Die Slaves sind derart ausgebildet, dass sie auf dieses Signal hören und ihre Synchronisation nach diesem Bildrücklaufsignal Vsync einrasten (englisch: lock). Ein anderes Verfahren besteht darin, beispielsweise über ein Multidropkabel jeden Netz- werk-Grafikprozessor NGP nach demselben externen Bildrücklaufsignal Vsync einzurasten. Dieses externe Synchronisationssignal Vsync wird dann von einem Synchronisations-Signalgeber SS bereitgestellt. Diese Implementierung wird auch als "Genlock" bezeichnet und ist in Figur 6 dargestellt.

Eine Hardware-Synchronisierung der Bildrücklaufsignale Vsync der Displays D über mehrere Grafikprozessoren NGP, beispielweise durch Framelock oder Genlock, kann von einer bestimmten zusätzlichen Frame Lock Hardware realisiert werden. Von der NVIDIA Corp., Santa Clara, Kalifor- nien, USA ist zum Beispiel das G-Sync-Board kommerziell erhältlich. Die Vsync-Signale können aber auch softwaremäßig synchronisiert werden, beispielsweise mittels MultiCast-Nachrichten über das Netzwerk. Das Synchronisieren der Bildrückläufe der Displays D hinsichtlich Frequenz und Phase erfolgt in der Praxis typischerweise mit einer Genauigkeit von 1 msec oder besser.

Die Bildrückläufe der Displays D der Displaywand 1 werden somit mit Bildrücklaufsignalen Vsync hinsichtlich Frequenz und Phase synchronisiert. Bei der erfindungsgemäßen Realisierung in Software werden die Bildrück- laufsignale Vsync mit einem synchronisierten Bildrücklaufsignalzähler (synchronisierter Vsynczähler NS) von einem Bildrücklaufsignal Vsync zum nächsten, d.h. von einem Bildrücklauf zum nächsten, hochgezählt. Der aktuelle Wert des Bildrücklaufsignalzählers (synchronisierter Vsync- zähler NS) wird zusammen mit den Bildrücklaufsignalen Vsync an die Netzwerk-Grafikprozessoren NGP übertragen, sodass zu denselben Zeitpunkten auf den Netzwerk-Grafikprozessoren NGP dieselben Werte des Bildrücklaufsignalzählers (synchronisierter Vsynczähler NS) zur Verfügung stehen.

Ohne Synchronisierung der Vsync-Signale, beispielsweise mittels Framelock oder Genlock, würde auf der Displaywand 1 ein Frametearing zwischen den Displays D auftreten. Der fundamentale Ursprung des Frametearing ist in diesem Fall ein anderer als bei dem oben beschriebenen Frametearing-Phänomen auf einem einzelnen Display D. Ohne Synchronisieren der Vsync-Signale aller Netzwerk-Grafikprozessoren NGP auf dieselbe Frequenz und dieselbe Phase, beispielsweise mittels Framelock oder Genlock, würde das Frametearing von der Phasendifferenz des vertikalen Scannens (des vertikalen Ablaufs der Bilddarstellung) benachbarter Displays D verursacht, die zu einer außerphasigen Darstellung des auf den Displays D dargestellten Videoframes auf verschiedenen Displays D führen würde.

Um einen tearingfreien Betrieb zwischen den von den Displays D einer Displaywand 1 dargestellten Bildern zu gewährleisten, ist es daher notwendig, dass die Bildrücklaufsignale Vsync aller Netzwerk-Grafikprozessoren NGP dieselbe Frequenz und Phase haben, beispielsweise indem ein Framelock oder Genlock durchgeführt wird. Damit ist die Grundbedingung erfüllt, dass der Bildaufbau auf den Displays D mit derselben Frequenz und Phase erfolgt.

Die Figur 5 zeigt eine Systemkonfiguration mit Framelock und die Figur 6 eine Systemkonfiguration mit Genlock. Bei den von den n Displays Dl, D2, Dn der Displaywand 1 darzustellenden Videobildquellen S handelt es sich um eine Mehrzahl von m Videos bzw. Videobildquellen S (Sl, S2, Sm). Diese Videos sind jeweils ein Datenstrom von Bildern, d.h. ein Videostream von Videoframes. Bei den Displays D handelt es sich um eine Mehrzahl von Displays (Dl, D2, Dn), zum Beispiel Projektionsquader (Rückprojektion oder Auflicht) oder LCDs, die jeweils von einem separaten Netzwerk-Grafikprozessor NGP (NGP 1, NGP 2, NGP n) angesteuert werden. Ein Netzwerk-Grafikprozessor NGP, der auch als Rendermaschine oder Renderingmaschine bezeichnet wird, ist die generische Bezeichnung für einen zweckbestimmten Displaycontroller mit einer LAN-Verbindung, einer CPU, einem Speicher, einer Festplatte, einem Betriebssystem (z.B. Linux), Softwaredekodierern und/oder Hardwaredekodierern, einem Grafikprozessor und allen anderen Komponenten, die für seine Funktionalität erforderlich sind. Der Displayausgang jedes Netzwerk-Grafikprozessors NGP ist über ein Video-Display-Interface, z.B. ein Digital Visual Interface (DVI), mit jeweils einem Display D verbunden. Ein Display D und ein zugeordneter Netzwerk-Grafikprozessor NGP werden gemeinsam auch als Displayunit bezeichnet.

Die Videos der Videobildquellen S können kodiert sein. Das Kodieren erfolgt jeweils mittels eines Kodierers EC (englisch "encoder") und ist eine Kompressionstechnik, die dazu dient, die Redundanz in Videodaten zu erniedrigen und folglich die im Netzwerk zum Übertragen der Videos der Videobildquelle S erforderliche Bandbreite zu verringern. MPEG2, MPEG4, H.264 und JPEG2000 sind Beispiele üblicher Standards von Kompressionstechniken zum Kodieren von Videos. Manche, zahlreiche oder alle Video- bildquellen (Sl, S2, Sm) können kodiert sein. Die Kodierer EC können eine Mischung von Kodierern verschiedener Hersteller sein, z.B. Ϊ5210-Ε (von Impath Networks Inc. Canada), VBrick 9000 Serie (von VBrick Systems Inc.) und VIP1000 (Bosch). Auf diesen Kodierern EC sind Varianten der Standardkommunikationsprotokolle implementiert. Es kann auch sein, dass unkomprimierte Videobildquellen S an die Netzwerk-Grafikprozessoren NGP der Displaywand 1 übertragen werden, das Übertragen unkomprimierter Videos bedingt aber eine höhere Belastung des Netzwerks. Der Datenstrom aus von den Kodierern EC komprimierten Videobildern der Videobildquellen S wird über ein Netzwerk LAN bzw. IP-Netzwerk (z.B. ein general purpose LAN oder ein dedicated Video LAN) und eventuelle Netzwerk-Switches SW an die Netzwerk-Grafikprozessoren NGP übertragen. Das Computernetzwerk LAN ist z.B. ein Gigabit Ethernet GbE gemäß IEEE 802.3-2008 und/oder ein Ethernet-Netzwerk E. Die Übertragung der Videobilder über das Netzwerk LAN erfolgt beispielsweise mit dem sogenannten UDP Multicast. Bei Computernetzwerken bezeichnet man mit Multicast das gleichzeitige Senden einer Nachricht oder Information von einem Sender (der Videobildquelle S) an eine Gruppe von Empfängern (Empfangscomputern, Netzwerk-Grafikprozessoren NGP) in einer einzigen Übertragung von dem Sender an die Empfänger. Der Vorteil von Multicast besteht darin, dass gleichzeitig Nachrichten an mehrere Teilnehmer oder an eine geschlossene Teilnehmergruppe übertragen werden können, ohne dass sich beim Sender die Bandbreite mit der Zahl der Empfänger multipliziert. Multicast ist die übliche Bezeichnung für IP-Multicast, welches es ermöglicht, in IP-Netzwerken effizient Pakete an viele Empfänger zur gleichen Zeit zu senden.

Mittels Dekodierern in den Netzwerk-Grafikprozessoren NGP werden die über das Netzwerk LAN empfangenen Videostreams wieder zur Darstellung auf den Displays D dekodiert und von den Displays D dargestellt. Die Dekodierer können Hardware- und/oder Software-Dekodierer sein. Die Dekoderfunktion kann die verschiedenen Kompressionsstandards handhaben, z.B. MPEG2, MPEG4, MJPEG und H.264.

Das bedeutet also, dass alle m Videobildquellen S über das IP-Netzwerk LAN an alle Netzwerk-Grafikprozessoren NGP gesendet und von den Dis- plays D der Displaywand 1 in einer bestimmten Zusammensetzung dargestellt werden. Die Netzwerk-Grafikprozessoren NGP entscheiden jedoch nicht selbst, welche Videobildquelle S oder Videobildquellen S bzw. wel- chen Teil oder welche Teile einer Videobildquelle S sie auf dem ihnen jeweils zugeordneten Display D darstellen, sondern dies wird von einer nicht dargestellten Zentralinstanz oder Zentraleinheit gesteuert. Die Darstellung der Videobildquellen 1 auf den Displays D der Displaywand 1 erfolgt gemäß einem bestimmten Layout, das von der nicht dargestellten Zentralinstanz vorgegeben wird. Die Zentralinstanz teilt den Netzwerk- Grafikprozessoren NGP mit, welchen Teil welcher Videobildquelle S das dem jeweiligen Netzwerk-Grafikprozessor NGP zugeordnete Display D an welcher Stelle des Displays D darstellen soll.

Zum Übertragen der Videobildquellen S über das Netzwerk LAN an die Netzwerk-Grafikprozessoren NGP werden in der Regel zwei Netzwerke verwendet, nämlich ein Video-Netz, das alle Videobildquellen S an alle Netzwerk-Grafikprozessoren NGP überträgt, und ein Steuer- oder Haus- Netz, das von der Zentralinstanz die Steuerungsinformation für die einzelnen Displayunits liefert. Die Steuerinformation gibt dabei an, welche Videobildquelle S oder welcher Teil einer Videobildquelle S von welchem Display D an welcher Stelle des Displays D dargestellt werden soll.

Es ist klar, dass jeder an der Darstellung einer logischen Videoeinblendung IS beteiligte Netzwerk-Grafikprozessor NGP von dem Netzwerk LAN denselben Videodatenstream erhalten, ihn dekodieren und denjenigen Teil der logischen Videoeinblendung IS, der demjenigen Display D der Displaywand 1 entspricht, der von dem jeweiligen Netzwerk-Grafikprozessor NGP gesteuert wird, auf dem ihm zugeordneten Display D darstellen muss.

Wie oben erläutert, kann aufgrund verschiedener Durchgangszeiten (Netzwerkverzögerung) zwischen den Kodierern EC und den Netzwerk- Grafikprozessoren NGP und/oder unterschiedlicher CPU-Auslastungen der beteiligten Netzwerk-Grafikprozessoren NGP ein bestimmtes Videoframe eines Videostreams einer Videobildquelle S auf einem Display D der Displaywand 1 mit einer kleinen zeitlichen Verschiebung gegenüber ande- ren Displays D der Displaywand 1 dargestellt werden. Während beispielsweise das Videoframe i auf einem Display D der Displaywand 1 dargestellt wird, können zum selben Zeitpunkt ein oder mehrere frühere Videoframes, z.B. die Videoframes (i-1) oder (i-2), auf anderen Displays D der Displaywand 1 dargestellt werden. Dies führt zu dem sichtbaren Artefakt, der "Tea ring -Effekt" oder "Frame-Tearing" genannt wird.

Das Synchronisieren der Bildrücklaufsignale Vsync der Displays D, insbesondere mittels Framelock oder Genlock, reicht somit allein nicht aus, um einen tearingfreien Betrieb der Displaywand 1 zu erzielen, da es wie oben erläutert, aufgrund verschiedener Durchgangszeiten (Netzwerkverzögerung) zwischen den Kodierern EC und den Netzwerk-Grafikprozessoren NGP und/oder unterschiedlicher CPU-Auslastungen der beteiligten Netz- werk-Grafikprozessoren NGP dazu kommen kann, dass ein bestimmtes Videoframe eines Videostreams einer Videobildquelle S auf einem Display D der Displaywand 1 mit einer kleinen zeitlichen Verschiebung gegenüber anderen Displays D der Displaywand 1 dargestellt wird, auch wenn die Bildrücklaufsignale Vsync der Displays D und somit die Bilddarstellungen auf den Displays D hinsichtlich Frequenz und Phase synchronisiert sind. Um einen tearingfreien Betrieb zwischen den von den Displays D einer Displaywand 1 dargestellten Bildern zu gewährleisten, ist es zusätzlich notwendig, dass in demselben zeitlichen Moment auf jedem der beteiligten Displays D genau dieselben Videoframes einer bestimmten Videobildquelle S, die zu einer logischen Videoeinblendung IS gehören, dargestellt werden. Diese Bedingung wird mit "Contentlock" bezeichnet und das Verfahren zur Realisierung mit "Contentsynchronisation" oder "Content- Iocking").

Das Synchronisieren der Bildrücklaufsignale Vsync der Displays D, bei- spielsweise mittels Framelock oder Genlock, ist daher eine notwendige, aber keine hinreichende Voraussetzung für Contentlock. Um den sichtbaren Artefakt des Frametearing zu vermeiden, ist es wesentlich, dass zu denselben Zeitpunkten genau dieselben Videoframes einer logischen Videoeinblendung IS auf den verschiedenen (physikalischen) Displays D (phasengleich) dargestellt werden, und das bedeutet, dass die Darstellung der Videoframes zwischen den an der Darstellung einer Videoeinblendung IS beteiligten Netzwerk-Grafikprozessoren NGP durch Contentlock synchronisiert werden muss.

Die erfindungsgemäße Contentsynchronisation zum Synchronisieren der Darstellung der Videoframes auf den Displays D derart, dass in demselben zeitlichen Moment auf jedem der beteiligten Displays D genau dieselben Videoframes einer bestimmten Videobildquelle S, die zu einer logischen Videoeinblendung IS gehören, dargestellt werden, umfasst folgende Teile:

Synchronisation der Uhren auf den Netzwerk-Grafikprozessoren NGP, vorzugsweise durch PTP.

Puffern der Videoframes in einer Videoframe-Warteschlange auf jedem Netzwerk-Grafikprozessor NGP.

Verwendung einer Mediationsfunktion zum Dejittern.

(d) Content-Locking durch Synchronisation der Zeitpunkte, zu denen die Mediationsfunktion auf allen beteiligten NGPs neu startet (Framesynchronisationszeitpunkte), des Parameters Frequenzverhältnis (Videostreamfrequenz f s dividiert durch Displayfrequenz f d ) dieser Funktion und des Videoframes, das zu diesem Zeitpunkt aus der Videoframe-Warteschlange zum Ren- dern ausgewählt wird.

Im Rahmen der Erfindung wird zum Synchronisieren der Uhren auf den Netzwerk-Grafikprozessoren NGP vorzugsweise das Precision Time Proto- col (PTP), auch bekannt als IEEE 1588-2008, benutzt. Es ist ein Netzwerk- Protokoll, das die Synchronizität der Uhrzeiteinstellungen mehrerer Geräte in einem Computernetzwerk bewirkt. Es ist ein Protokoll, das dazu verwendet wird, die Uhren von Computern in einem paketvermittelten Computernetzwerk mit variabler Latenzzeit zu synchronisieren. Die Computer des Netzwerks sind in einer Master-Slave-Architektur organisiert. Das Synchronisationsprotokoll bestimmt den Zeit-Offset der Slave-Uhren relativ zu der Master-Uhr.

Im Rahmen der Erfindung kann das PTP zum Synchronisieren der ver- schiedenen Netzwerk-Grafikprozessoren NGP verwendet werden. Hierzu dient ein Netzwerk-Grafikprozessor NGP als Referenz (PTP Master) und die Uhren aller anderen Netzwerk-Grafikprozessoren NGP werden mit hoher Genauigkeit nach diesem PTP Master synchronisiert. Die Zeit des PTP Masters wird als Systemzeit bezeichnet. Die Zeitabweichungen der Uhren der Netzwerk-Grafikprozessoren NGP von der Uhr des PTP Masters können unter 100 με gehalten werden.

Grundsätzlich könnte man daran denken, einen Contentlock, d.h. eine Contentsynchronisation, mit einer exakten Systemzeit und auf Basis der Zeitstempel von Videoframes zu realisieren. Ein Videoframe beinhaltet den kodierten Inhalt eines kompletten Videoframes einer bestimmten Videobildquelle S. Jedes Videoframe ist durch den Zeitstempel in dem RTP (Real-time Transport Protocol) Paket-Header eindeutig identifiziert. Es wurde jedoch festgestellt, dass viele Implementierungen von RTP unzu- verlässige oder falsche Zeitstempel haben. Wegen dieser Unsicherheit der Zeitstempel wird der Zeitstempel im Rahmen der Erfindung für keinen Zweck benutzt, der mit seiner Zeitangabe zusammenhängt, sondern er wird nur als Kennung (absolute Framekennnummer) für das Videoframe benutzt.

Erfindungsgemäß erfolgt die Realisierung des Contentlock, d.h. die Contentsynchronisation, mittels Puffern von Videoframes in einer Videoframe- Warteschlange und eines Framesynchronisationsprozesses, der eine Mediationsfunktion verwendet. Diese Komponenten und Konzepte werden im Folgenden erläutert. Die Videoframes eines kodierten Videosignals, d.h. einer Videobildquelle S, das über ein Computernetzwerk LAN verteilt wird, treffen nicht in zeitlich äquidistanter Weise bei den verschiedenen Netzwerk-Grafikprozessoren NGP der Displays D ein. Die Videoframes können bündel- oder stoßweise auftreten, und danach kann es einen Zeitraum geben, in dem keine Videoframes ankommen. Im Falle einer Videobildquelle S mit einer Framerate von 50 Hz beträgt die durchschnittliche Periodendauer, mit der die Videoframes eintreffen, 20 ms, wenn dieser Mittelwert über eine ausreichend lange Zeit von beispielsweise 2 s ermittelt wird. Über kürzere Zeitintervalle betrachtet können die Videoframes in zeitlichen Abständen ein- treffen, die viel kürzer oder viel länger als 20 ms sind. Diese zeitlichen Fluktuationen werden Videojitter genannt. Jitter bezeichnet einen nicht zeitlich gleichmäßigen Abstand von Videoframes beim Darstellen aufeinanderfolgender Videoframes. Die Ursachen des Jitters sind im Wesentlichen die Dekodierer, das Netzwerk LAN und die Netzwerk-Grafikprozessoren NGP, aber auch andere Komponenten wie die Kodierer EC können zum Jitter beitragen. Der Jitter macht es erforderlich, den ankommenden Videostream zu entjittern, damit bewegte Inhalte ohne Jitterartefakte dargestellt werden können. Dazu werden die dekodierten Videoframes des Videostreams in einer Videoframe-Warteschlange 2 gepuffert. Im Rahmen der Erfindung wird diese Videoframe-Warteschlange 2 bevorzugt als Ringpuffer implementiert, da hier umlaufend neu Videoframes eingetragen und Videoframes zum Rendern entnommen werden können, ohne dass diese umkopiert werden müssen. Die Figur 7 zeigt eine solche als Ringpuffer implementierte Videoframe- Warteschlange 2. Der Ringpuffer hat eine feste Anzahl von Plätzen für mögliche Einträge (in dem Beispiel von Figur 7 sechs Plätze mit den Indizes 0 bis 5). Ein Ringpuffer wird in Software als Array realisiert, wobei die Ringstruktur durch die Behandlung von Put- und Get-Pointer erreicht wird.

Pro Videobildquelle S wird in jedem Netzwerk-Grafikprozessor NGP eine Videoframe-Warteschlange 2, beispielsweise ein Ringpuffer gemäß Figur 7, vorgesehen, an den die Videoframes der Videobildquelle S übertragen werden. Bei unkodierten Videobildquellen S werden die Videoframes direkt in die Videoframe-Warteschlange 2 eingetragen, bei kodierten Videobildquellen S werden die Videoframes zuvor mit dem Dekodierer 3 dekodiert. Der Dekodierer 3 empfängt einen kodierten Stream von Videoframes, führt das Dekodieren durch und trägt die dekodierten Videofra- mes 4 in den Ringpuffer ein. Das erste Videoframe wird in Platz 0 des Ringpuffers eingetragen, das nächste Videoframe in Platz 1 und so weiter, bis der letzte Platz 5 belegt wurde und es wieder von vorne bei Platz 0 beginnt. Das Auslesen der Speicherplätze des Ringpuffers erfolgt mit dem Renderer 5 bzw. einem Renderprozess, der den Backpuffer 6 mit Videofra- mes beliefert. Das Dekodieren mit einem Dekodierer 3 und das Rendern mit einem Renderer 5 in Figur 7 findet in zwei verschiedenen Prozessen in jedem Netzwerk-Grafikprozessor NGP statt. Die Renderer 5 entnehmen jeweils das von der Mediationsfunktion ausgewählte Videoframe zum Rendern aus dem jeweiligen Videoframe-Warteschlange 2, ältere Einträge in der Videoframe-Warteschlange 2 sind bereits verarbeitet und gelten deshalb als invalidiert, d.h. ihre Plätze in der Warteschlange sind für neue Einträge freigegeben. Der Put-Pointer der Videoframe-Warteschlange 2 zeigt auf den freien Platz für das nächste vom Dekodierer 3 bereitgestellte Videoframe 4 und der Get-Pointer auf den Platz, den die Mediationsfunk- tion zum Abholen des nächsten zu rendernden Videoframes bestimmt hat. Ein Eintrag in die Videoframe-Warteschlange 2 wird invalidiert, wenn der Get-Pointer durch die Mediationsfunktion auf einen anderen Platz der Videoframe-Warteschlange 2 gesetzt wird.

Es ist für die Contentsynchronisation, die mit einem weiter unten beschriebenen Framesynchronisationsprozess durchgeführt wird, wichtig, dass der Renderer 5 bzw. der Renderprozess als Abnehmer der Videoframe-Warteschlange 2 (der Ringpuffer in Figur 7) die in der Videoframe- Warteschlange 2 gespeicherten Videoframes schnell genug zum Rendern aus der Videoframe-Warteschlange 2 entnimmt, sodass ein in der Video- frame-Warteschlange 2 mit einem Videoframe belegter Speicherplatz, das später noch zum Rendern benötigt wird, nicht von einem neuen Dekodier- Schreibvorgang aus dem Dekodierer 3 überschrieben wird. Dies wird in einem Videosynchronisationsmodul durch eine Mediationsfunktion erreicht, die zwischen der Videostreamfrequenz f s des ankommenden Videostreams der Videobildquelle S und der vertikalen Displayfrequenz (auch als vertikale Frequenz, Displayfrequenz, Bildfrequenz, Bildwiederholfrequenz oder Refreshfrequenz bezeichnet) f d des Displays D vermittelt. Das Videosynchronisationsmodul ist ein Teil der Software, die die erfindungsgemäße Synchronisation implementiert, und ist ein Teil des Rendering in dem Netzwerk-Grafikprozessor NGP. Die Mediationsfunktion sorgt für einen Geschwindigkeitsausgleich zwischen Erzeuger (Dekodierer 3) und Abnehmer (Renderer 5) der Einträge in die Videoframe-Warteschlange 2. Sie bestimmt, welches Videoframe aus der Videoframe-Warteschlange 2 ausgelesen und weiterbehandelt (von dem Renderer 5 geren- dert) wird.

Eine optimale Größe der Videoframe-Warteschlange 2 liegt dann vor, wenn sie im Betrieb einen mittleren Füllgrad von ca. 50 % aufweist, d.h. halb mit validen und halb mit invaliden (abgehandelten) Videoframes 4 gefüllt ist. In diesem Fall sind einerseits genug Videoframes 4 in der Videoframe- Warteschlange 2 zwischengespeichert, sodass das Rendern dejittert durchgeführt werden kann, und andererseits ist sie halb leer und hat somit ausreichend freie Speicherplätze, um schnell nacheinander eintreffende Videoframes 4 aus dem Videostream Zwischenspeichern zu können, ohne dass die Videoframe-Warteschlange 2 überläuft. In der praktischen Anwendung kommt man mit einer Videoframe-Warteschlange 2 aus, die ca. 5 bis 15 Plätze hat. Wenn doch größere zeitliche Verschiebungen der Videoframes 4 als beispielsweise +/- 3 Videoframes auftreten sollten, kann die Videoframe-Warteschlange 2 vergrößert werden.

Die vertikale Displayfrequenz f d des Displays D wird mit anderen Display- einstellungen von dem Display D selbst vorgegeben. Während des Initialstarts der Displaywand 1 bzw. des Displays D wird f d von dem "Display Data Channel" (DDC) Protokoll und dem begleitenden Standard "Extended Display Identification Data" (EDID) definiert. Die Displayeinstellungen und somit f d werden während des Betriebs des Systems nicht verändert. Die Periode T d ergibt sich als T d = l / f d . Die vertikale Displayfrequenz f d des Displays D liegt üblicherweise in dem Bereich 50 Hz < f d < 100 Hz , kann diesen Bereich aber auch unter- oder überschreiten.

Die Videostreamfrequenz f s des Videostreams ist die Rate der dekodier- ten Videoframes 4 am Ausgang des Dekodierers 3 bzw. am Eingang der Videoframe-Warteschlange 2. Die Periode T s ergibt sich als T s = l / f s . Idealerweise ist f s = f d , aber es sind erhebliche Unterschiede möglich; beispielsweise kann der eintreffende Videostream eine Rate f s von 60 Hz haben, während die vertikale Displayfrequenz f d nur 50 Hz beträgt. Zudem kann die "momentane" (oder "differentielle") Videostreamfrequenz f s des Videostreams auch im Laufe der Zeit schwanken, weil verschiedene Videoframes einen unterschiedlichen Weg durch das Netzwerk LAN nehmen können oder weil die Durchgangszeiten aufgrund einer sich verändernden Netzwerkbelastung schwanken können (siehe auch den weiter oben erläuterten Jitter). Eine weitere wichtige Ursache für eine schwankende Videostreamfrequenz f s eines Videostreams sind Unterschiede in den Kodierern EC oder unterschiedliche Auslastungen der CPUs oder GPUs der verschiedenen Netzwerk-Grafikprozessoren NGP. Deshalb ist im allgemeinen Fall f s f d , wobei sowohl f s < f d als auch f s > f d möglich ist. Darüber hinaus kann sich der Unterschied zwischen f s und f d im Betrieb der Displaywand 1 zeitlich verändern.

In den Figuren 8 bis 12 wird das Rendern eines Videostreams an einem Netzwerk-Grafikprozessor NGP für die drei unterschiedlichen Fälle

(1) f s = fd

(2) f s < f d (3) f s > f d erläutert.

Die Figur 8 zeigt den Fall (1), d.h. die Verarbeitung eines Videostreams auf einem Netzwerk-Grafikprozessor NGP für f s = f d . Dargestellt sind die als Rechteckimpulse veranschaulichten Bildrückläufe VR des Displays D als Funktion der Zeit t und die Nummern N, N + l etc. der in den Backpuffer gerenderten Videoframes FR. In dieser idealen, in der Praxis kaum gegebenen Situation wird zwischen zwei aufeinanderfolgenden Bildrückläufen VR des Displays D genau ein Videoframe des Videostreams gerendert, kein Videoframe muss ausgelassen werden und kein Videoframe muss länger als während der Zeitdauer T d dargestellt werden. Dies trifft in den Fällen (2) und (3) nicht zu, die in den Figuren 9 bis 12 dargestellt werden.

Die Figur 9 zeigt den Fall (2), d.h. das Rendern eines Videostreams auf einem Netzwerk-Grafikprozessor NGP für f s < f d . Dargestellt sind die als Rechteckimpulse veranschaulichten Bildrückläufe VR des Displays D als Funktion der Zeit t und die Nummern N, N + l etc. der in den Backpuffer 6 gerenderten Videoframes FR. Im Unterschied zu Figur 8 fallen die Zeit- punkte, zu denen die Videoframes FR in den Backpuffer gerendert werden, nicht auf die Zeitpunkte der Bildrückläufe VR. Die in den Backpuffer 6 gerenderten Videoframes FR sind noch nicht sichtbar, d.h. werden noch nicht auf dem Display D dargestellt, sondern erst, wenn (nach dem Durchführen der Swap-Puffer-Funktion) die Bildinformation im Frontpuffer liegt. Die Zeitpunkte des Renderings eines Videoframes und des Sichtbarwerdens des Videoframes sind im allgemeinen verschieden. Hier wird nur zum Zwecke der Veranschaulichung des Prinzips idealerweise angenommen, dass der Videostream absolut jitterfrei ist, wenn die Videoframes aus dem Dekodierer 3 kommen, d.h. sie stehen mit einer konstanten Videostreamfrequenz f s zum Rendern in den Backpuffer 6 zur Verfügung. Es kann offensichtlich nicht sein, dass in jeder Periode T d zwischen zwei Bildrückläufen VR ein neues Videoframe dargestellt, d.h. als sichtbar werdendes Videoframes FV in den Frontpuffer kopiert wird, denn dies würde der Bedingung f s < f d widersprechen. Aus Figur 9 wird ersichtlich, wann in diesem Fall die Videoframes tatsächlich auf dem Display D sichtbar werden, und dies ist in Figur 10 dargestellt.

Die Figur 10 zeigt das Sichtbarwerden der in den Backpuffer 6 gerender- ten Videoframes FR von Figur 9 als auf dem Display D sichtbar werdende Videoframes FV. Man erkennt, dass unvermeidbar manche Videoframes (hier die Videoframes N+l und N+3) während der Zeitdauer 2 x T d , d.h. während zweier Framezeiten dargestellt werden (oder anders ausgedrückt, sie werden nochmal dargestellt), um zu kompensieren, dass T s > T d (d.h. f s < f d ) ist. Dies führt im allgemeinen zu einer etwas sprunghaften Bewegung eines dargestellten bewegten Objektes, beispielsweise eines Teststreifens. Nur wenn T s ein ganzzahliges Vielfaches von T d ist, wird die Bewegung gleichmäßig sein, aber nur mit größeren Weitersprüngen eines dargestellten bewegten Objekts von einer Bildphase auf die nächste um mehrere Pixel als im Fall (1), wenn die Geschwindigkeit des dargestellten bewegten Objektes in beiden Fällen dieselbe ist. Die Figur 11 zeigt den Fall (3), d.h. die Darstellung eines Videostreams auf einem Netzwerk-Grafikprozessor NGP für f s > f d . Dargestellt sind die als Rechteckimpulse veranschaulichten Bildrückläufe VR des Displays D als Funktion der Zeit t und die Nummern N, N + l etc. der in den Backpuffer 6 gerenderten Videoframes FR. In diesem Fall kommt es vor, dass die (idealen) Renderingzeitpunkte zweier aufeinanderfolgender Videoframes in dieselbe Periode T d zwischen zwei aufeinanderfolgende Bildrückläufe VR fallen können, sodass das erste Videoframe vor dem nächsten Bildrücklauf VR von dem zweiten Videoframe überschrieben wird. Das bedeutet im Ergebnis, dass das erste Videoframe nicht sichtbar, sondern ausgelassen wird. Aus Figur 11 wird deutlich, welche Videoframes auf dem Display D dargestellt werden, und dies ist in Figur 12 veranschaulicht.

Die Figur 12 zeigt das Sichtbarwerden der in den Backpuffer 6 gerender- ten Videoframes FR von Figur 11 als auf dem Display D sichtbar werdende Videoframes FV. Daraus wird deutlich, dass manche Videoframes (in dem dargestellten Beispiel die Videoframes N+2, N+5 und N+8) unvermeidbar ausgelassen werden, um zu kompensieren, dass T s < T d (d.h. f s > f d ) ist. Auch in diesem Fall wird die Bewegung eines dargestellten bewegten Objektes, beispielsweise eines Teststreifens, nicht gleichmäßig sein, ausgenommen wenn T d ein ganzzahliges Vielfaches von T s ist.

Die vorstehenden Betrachtungen gelten offensichtlich bereits für die Darstellung eines Videos (bzw. eine Videoeinblendung IS) auf nur einem Netzwerk-Grafikprozessor NGP. Wenn es nun darum geht, einen Video- stream auf mehreren Netzwerk-Grafikprozessoren NGP für die Darstellung des Videos auf nicht nur einem, sondern auf mehreren Displays D zu synchronisieren, ergibt sich unmittelbar die Anforderung, dass diejenigen Videoframes, die (in dem oben erläuterten Sinn) mehr als einmal darge- stellt oder ausgelassen werden, auf allen beteiligten Netzwerk-Grafikprozessoren NGP dieselben sein müssen, damit das Frametearing von einem Display zum anderen vermieden wird. Die folgenden Figuren veranschau- liehen die Synchronisation eines Videostreams auf mehreren Netzwerk- Grafikprozessoren NGP.

In Figur 13 wird ein Beispiel betrachtet, in dem zwei Netzwerk-Grafikprozessoren NGP 1 und NGP 2 zum Darstellen eines Videostreams für den Fall f s < f d synchronisiert werden müssen. Die Figur 13 umfasst zwei Teile, nämlich einen ersten Teil (Figur 13a) mit den Videoframes N bis N+5 in dem Netzwerk-Grafikprozessor NGP 1 und einen zweiten Teil (Figur 13b) mit den Videoframes N+5 bis N+10 in dem Netzwerk-Grafikprozessor NGP 1. Die Figur 13b schließt sich also, mit einem dargestellten kleinen zeitlichen Überlapp, an die Figur 13a an. Die Figur 13 zeigt die Synchronisation von zwei Netzwerk-Grafikprozessoren NGP 1 und NGP 2 für den beispielhaften Fall f s = 40 Hz und f d = 50 Hz . Der Netzwerk-Grafikprozessor NGP 1 arbeitet als die Maschine, welche die Führung für den Synchronisationsablauf für eine bestimmte Videobildquelle S übernimmt. Er wird daher als Master und alle anderen Netzwerk-Grafikprozessoren NGP werden als Slaves bezeichnet. Beide, jeweils einem der Netzwerk-Grafikprozessoren NGP zugeordneten Displays D haben dieselbe vertikale Displayfrequenz f d . Die Grafikkarten der Netzwerk-Grafikprozessoren NGP sind synchronisiert, vorzugsweise framelocked oder genlocked, beispielsweise mit dem oben beschriebenen Hardwareverfahren. Das bedeutet, dass die Bildrücklaufsignale Vsync der verschiedenen Netzwerk-Grafikprozessoren NGP dieselbe Frequenz und dieselbe Phase haben.

Die Figur 13 zeigt die als Rechteckimpulse veranschaulichten Bildrückläufe VR der zu den beiden Netzwerk-Grafikprozessoren NGP 1 und NGP 2 gehörenden Displays D als Funktion der Zeit t und darunter die Nummern N-1, N, N+l etc. der in den jeweils zu einem Netzwerk-Grafikprozessor NGP gehörenden Videoframe-Warteschlange 2 (Ringpuffer) geschriebenen und damit in der Videoframe-Warteschlange 2 zum Auslesen zur Verfügung stehenden Videoframes FW einer Videobildquelle S oder einer Videoeinblendung IS, d.h. der Videoframes, die aus der Videoframe-Warte- schlänge 2 zum Rendern in den Backpuffer 6 ausgelesen werden können. Durch Doppelpufferung und Swaplocking haben die Bildrückläufe VR der beiden Netzwerk-Grafikprozessoren NGP 1 und NGP 2 dieselbe Frequenz (vertikale Displayfrequenz f d ) und dieselbe Phase. Aufgrund der oben erläuterten Effekte, insbesondere unterschiedlicher Übertragungszeiten durch das Netzwerk LAN und die Dekodierer 3, treffen die einander entsprechenden Videoframes jedoch nicht zeitgleich aus den Dekodierern 3 bzw. in den Videoframe-Warteschlangen 2 ein, sondern mit einem zeitlichen Unterschied. In dem Beispiel von Figur 13 sind die Videoframes FW1 in der Videoframe-Warteschlange 2 des Netzwerk-Grafikprozessors NGP 1 um das 1,28-fache der Periode T s der Videostreamfrequenz gegenüber den Videoframes FW2 in der Videoframe-Warteschlange 2 des Netzwerk- Grafikprozessors NGP 2 verzögert bzw. verspätet. Ferner ist die vertikale Displayfrequenz f d der Displays D verschieden von der Periode T s der Videostreamfrequenz f s . Zudem können sowohl die relative zeitliche Verzögerung der Videoframes FW1 und FW2 als auch die Videostreamfrequenz f s und gegebenenfalls die vertikale Displayfrequenz f d der Displays D zeitlichen Schwankungen unterliegen. Alle diese Effekte können, wenn sie nicht kompensiert werden, dazu führen, dass auf den beiden Displays D der Netzwerk-Grafikprozessoren NGP 1 und NGP 2 zu einem Zeitpunkt unterschiedliche Videoframes dargestellt werden und somit ein Tearing- effekt auftritt.

Aufgrund von Doppelpufferung und Swaplocking werden Videoframes nur mit dem nächsten Bildrücklauf (VR, der mit der vertikalen Displayfrequenz f d durchgeführt wird, auf den Displays D sichtbar, nachdem sie aus dem jeweiligen Netzwerk-Grafikprozessor NGP als in den Backpuffer 6 geren- dertes Videoframe FR in den jeweiligen Backpuffer 6 geschrieben wurden und dann mit dem nächsten Bildrücklauf VR als sichtbar werdendes Video- frame FV auf den Displays D sichtbar werden. Wenn wie in dem Beispiel von Figur 13 f s < f d ist und f s kein ganzzahliges Vielfaches von f d ist, passen die Zeitpunkte des Sichtbarwerdens der Videoframes FV nicht in das von der vertikalen Displayfrequenz f d vorgegebene Zeitraster der Displays D. In Figur 13 würde ohne die erfindungsgemäße Contentsynchronisation beispielsweise der Netzwerk-Grafikprozessor NGP 1 das Videoframe FW1 = N + l als zu renderndes Videoframe FR auswählen und nach dem nächsten Bildrücklauf VR mit der relativen Vsynczählernummer NSR = 1 (die relative Vsynczählernummer ist die laufende Rücklaufzählernummer) auf dem Display Dl darstellen, während zeitgleich der Netzwerk-Grafikprozessor NGP 2 das Videoframe FW2 = N-l als zu renderndes Videoframe FR auswählen und nach dem nächsten Bildrücklauf VR mit der relativen Vsynczählernummer NSR = 1 auf dem Display D2 darstellen würde. Das führt zu einem Frametearing in der Darstellung eines auf den Displays Dl und D2 dargestellten bewegten Objekts, weil nach dem Bildrücklauf VR mit der relativen Vsynczählernummer NSR = 1 auf den Displays Dl und D2 diese verschiedenen Videoframes dargestellt werden. Etwas später würde in dem Beispiel von Figur 13 dann beispielsweise der Netzwerk-Grafikprozessor NGP 1 für das Display Dl das Videoframe FW1 = N+8 zum Rendern auswählen und zeitgleich der Netzwerk-Grafikprozessor NGP 2 für das Display D2 das Videoframe FW2 = N+7, was ebenfalls zu einem Frametearing führt, weil nach dem Bildrücklauf VR mit der relativen Vsynczählernummer NSR = 10 auf den Displays Dl und D2 diese verschiedenen Videoframes dargestellt werden.

Die erfindungsgemäße Framesynchronisation mittels einer im Folgenden beschriebene Mediationsfunktion ist genau derart ausgebildet, dass in einer solchen Situation die tatsächlichen Zeitpunkte des Sichtbarwerdens auf den Displays D eine beste Näherung zu den idealen Zeitpunkten sind und das Frametearing vermieden wird, sodass auf den an der Darstellung des Videostreams einer Videobildquelle S beteiligten Displays D (in Figur 13 die Displays Dl und D2) zeitgleich dieselben Videoframes FR in den Backpuffer 6 gerendert werden. Hierzu dienen die Zwischenspeicherung mittels der Videoframe-Warteschlangen 2 und eine weiter unten erläuterte Framesynchronisation mittels einer Mediationsfunktion, die durch einen relativen Vsynczähler NSR identifizierte Bildrückläufe VR auf einen lokalen relativen Videoframezähler NFR für die zu verarbeitenden, d.h. zu rendernden Videoframes FR abbildet, wobei beide Zähler NSR und NFR zu einem gemeinsamen Framesynchronisationszeitpunkt TS bei Null begin- nen. Der Begriff "abbilden" ist hierbei im mathematischen Sinn zu verstehen, d.h. die Mediationsfunktion stellt eine Beziehung zwischen dem relativen Vsynczähler NSR als dem Funktionsargument (unabhängige Variable) und dem lokalen relativen Videoframezähler NFR als Funktionswert (abhängige Variable) her, die jedem Wert des relativen Vsynczählers NSR einen Wert des lokalen relativen Videoframezählers NFR zuordnet.

Die Werte der Zähler NSR und NFR sind in Figur 13 ebenfalls dargestellt. Der Zähler NSR für die Bildrückläufe VR zählt von dem Framesynchronisationszeitpunkt TS ab bei jedem Bildrücklauf VR jeweils um eins hoch. Der Zähler NFR für die zu rendernden Videoframes FR zählt dagegen nicht kontinuierlich um eins hoch, sondern ergibt sich in der weiter unten erläuterten Weise mittels einer Mediationsfunktion. Das Ergebnis dieser Framesynchronisation, d.h. die Werte des Zählers NFR für die zu rendernden Videoframes FR in Abhängigkeit von der Zeit t, ist in Figur 13 oben darge- stellt, ebenso wie die im Ergebnis von beiden Netzwerk-Grafikprozessoren NGP 1 und NGP 2 zeitgleich gerenderten und somit zeitgleich von den zugehörigen Displays Dl und D2 identischen, d.h. ohne Frametearing dargestellten Videoframes FR, die in Figur 13 unten eingezeichnet sind. In dem oben beispielhaft genannten Zeitpunkt, in dem ohne erfindungs- gemäße Framesynchronisation der Netzwerk-Grafikprozessor NGP 1 das Videoframe FW1 = N+l als zu renderndes Videoframe FR auswählen würde, während zeitgleich das Display D2 zu dem Netzwerk-Grafikprozessor NGP 2 das Videoframe FW2 = N-l als zu renderndes Videoframe FR darstellen würde, ist NSR = 1 und NFR = 0 und das von beiden Netzwerk- Grafikprozessoren NGP 1 und NGP 2 zeitgleich als zu renderndes Videoframe FR ausgewählte und somit nach dem Bildrücklauf NSR = 1 von beiden Displays Dl und D2 synchron dargestellte Videoframe ist das Video- frame FR = N-l. In dem oben beispielhaft genannten späteren Zeitpunkt, in dem ohne erfindungsgemäße Framesynchronisation der Netzwerk- Grafikprozessor NGP 1 das Videoframe FW1 = N+8 als zu renderndes Videoframe FR auswählen würde, während zeitgleich das Display D2 zu dem Netzwerk-Grafikprozessor NGP 2 das Videoframe FW2 = N+7 als zu renderndes Videoframe FR darstellen würde, ist NSR = 10 und NFR = 8 und das von beiden Netzwerk-Grafikprozessoren NGP 1 und NGP 2 zeitgleich als zu renderndes Videoframe FR ausgewählte und somit nach dem Bildrücklauf NSR = 10 von beiden Displays Dl und D2 synchron darge- stellte Videoframe ist das Videoframe FR = N+6.

Eine zentrale Idee der vorliegenden Erfindung besteht darin, eine für alle an der Darstellung einer Videobildquelle S oder einer Videoeinblendung IS beteiligten Netzwerk-Grafikprozessoren NGP "universelle" Mediationsfunk- tion zu verwenden, die einen Ausgleich zwischen der Videostreamfrequenz f s und der vertikalen Displayfrequenz f d vermittelt, um zum einen das Auftreten von Fällen, in denen dasselbe Videoframe nochmals dargestellt wird (im Fall f s < f d ) bzw. in denen ein Videoframe ausgelassen wird (im Fall f s > f d ) so gleichmäßig wie möglich zeitlich zu verteilen, und um zum anderen dafür zu sorgen, dass erforderlichenfalls auf allen eine Videobildquelle S oder eine Videoeinblendung IS darstellenden Displays D in jedem Zeitpunkt dieselben Videoframes dargestellt bzw. ausgelassen werden. Diese Funktion, die im Folgenden kurz Mediationsfunktion MF genannt wird, bildet Bildrückläufe VR, die durch einen relativen Vsynczähler NSR identifiziert werden, der zu einem Framesynchronisationszeitpunkt TS bei Null beginnt (im Folgenden die Variable NSR für den relativen Vsynczähler NSR, der die Bildrückläufe ab der letzten Framesynchronisation, die den Nullpunkt für den Zähler setzt), auf Videoframes ab, die durch einen Zähler identifiziert werden, der zu demselben Framesynchronisationszeitpunkt TS bei Null beginnt (im Folgenden die Variable NFR für den lokalen relativen Videoframezähler NFR der zu verarbeitenden, d.h. zu rendernden Videoframes FR ab dem letzten Framesynchronisationszeitpunkt TS, der den Nullpunkt für den Zähler setzt). Die Mediationsfunktion MF bildet den relativen Vsynczähler NSR auf den lokalen relativen Videoframezähler NFR ab, d.h. anhand der Mediationsfunktion MF wird lokal aus dem lokalen relativen Videoframezähler NFR ermittelt, welches Videoframe (identifi- ziert anhand der absoluten Framekennnummer id) gerendert wird. Mit anderen Worten bestimmt die Mediationsfunktion MF aus dem Wert NSR des relativen Vsynczählers NSR das zu rendernde Videoframe FR, das anhand des lokalen relativen Videoframezählers NFR identifiziert wird.

Die Mediationsfunktion MF kann für den allgemeinen Fal wie folgt beschrieben werden, wobei "mediation" für MF steht:

NFR = mediation(NSR) = floor NSR = floor NSR i

T.

Dabei liefert die Funktion floor(x) den ganzzahligen Anteil (in englisch: integer part) einer reellen Variablen x, d.h. die größte ganze Zahl, die < x ist. Die Funktion floor(x) ist eine Standard-Bibliotheksfunktion in der Programmiersprache C und wird in Figur 16 veranschaulicht.

Der lokale relative Videoframezähler NFR, d.h. der Funktionswert der Mediationsfunktion MF mit dem Argument NSR (NFR = mediation(NSR) ), ergibt sich dann als diejenige größte ganze Zahl NFR, für die das Produkt NFR x T s < NSR x T d ist, oder entsprechend als diejenige größte ganze Zahl NFR, für die der Quotient NFR / f s < NSR / f d ist.

Der Framesynchronisationsprozess umfasst vorzugsweise nicht nur eine Framestartsynchronisation, d.h. eine einmalige Framesynchronisation, die zu einem Framesynchronisationszeitpunkt TS durchgeführt wird, sondern auch im Anschluss daran durchgeführte Frameresynchronisationen, die zu späteren Framesynchronisationszeitpunkten TS, die auch als Frameresyn- chronisationszeitpunkte bezeichnet werden könnten, durchgeführt werden. Die Framestartsynchronisation und die Frameresynchronisationen werden dabei in derselben Weise durchgeführt und daher beide als Framesynchronisationen bezeichnet.

Zum Starten einer Framesynchronisation eines Videostreams einer Video- bildquelle S auf mehreren Netzwerk-Grafikprozessoren NGP ist das Versenden von Synchronisationsnachrichten über das Netzwerk LAN erforderlich. Der Master-Netzwerk-Grafikprozessor, der für den Videostream als der Master definiert ist, sendet eine Mulitcast-Synchronisationsnachricht an alle als Slaves definierten Netzwerk-Grafikprozessoren, die an der DarStellung des Videostreams beteiligt sind und nach der Vorgabe des Master-Netzwerk-Grafikprozessors synchronisiert werden.

Diese Multicast-Synchronisationsnachricht kann auch die Systemzeit (z.B. via PTP) beinhalten. Die Systemzeit ist die lokale absolute Zeit für einen Netzwerk-Grafikprozessor und steht dort als Standardbibliotheksfunktion zur Verfügung.

Ferner beinhaltet die Synchronisationsnachricht die Frequenzen f d (vertikale Displayfrequenz, die von dem Master-Netzwerk-Grafikprozessor gemessen wird) und f s (Videostreamfrequenz) sowie die absolute Framekennnummer des neuesten Videoframes, das auf dem Master-Netzwerk- Grafikprozessor als letztes vor dem Versenden der Synchronisationsnachricht gerendert wurde. Diese absolute Framekennnummer wird benutzt, um zu bestimmen, mit welchem Videoframe nach dem Framesynchronisa- tionszeitpunkt auf den Netzwerk- Grafik Prozessoren das Rendern beginnen soll. Die absolute Framekennnummer ist in den Videostream eingebettet. Sie ist notwendig für das Synchronisieren, um die einzelnen Videoframes in dem Videostream zu identifizieren. In den Slave-Netzwerk-Grafikprozessoren wird diese Synchronisationsnachricht empfangen und dafür gesorgt, dass in den Slave-Netzwerk- Grafikprozessoren die Framesynchronisation unter Verwendung der Mediationsfunktion MF sofort mit den übermittelten Werten der Frequenzen f d und f s beginnt. Die Implementierung kann dabei optional beispielsweise mittels der Verwendung von Threads (auch bezeichnet als Aktivitätsträger oder leichtgewichtiger Prozess) erfolgen. Dabei wird wäh- rend einer gewissen Zeit, der Mediationsdauer, die Anzahl der Bildrückläufe VR (relativer Vsynczähler NSR mit einem Nullpunkt beim letzten Framesynchronisationszeitpunkt TS) weitergezählt, bis die Mediationsfunktion bei dem nächsten Framesynchronisationszeitpunkt neu gestartet wird und wieder bei Null beginnt. Dieser Synchronisationsprozess wird im Folgenden als Framesynchronisation bezeichnet. Ein anderer geeigneter Begriff wäre Korrelation von Videoframes.

Zwischen einem Framesynchronisationszeitpunkt TS und dem darauffolgenden wird der lokale relative Videoframezähler als Funktionswert der Mediationsfunktion MF erhalten, indem ihr der relative Vsynczähler als Argumentwert übergeben wird.

Damit die Zählung des relativen Vsynczählers NSR an der Nahtstelle (dem Framesynchronisationszeitpunkt TS) korrekt weitergeht, muss je nach Zählweise nach einem neuen Start der Mediationsfunktion mit NSR = 1 begonnen werden, wenn NSR = 0 würde das Bezugsvideoframe id corr nochmal liefern würde, wobei seiner Darstellung wiederholt und der Anschluss nicht passen würde. Die Mediationsfunktion MF soll an jeder Nahtstelle, d.h. dem Framesynchronisationszeitpunkt TS am Ende eines Mediationsdauer, nur einmal aufgerufen werden. Das lässt sich auch mit einer anderen Zählweise realisieren, beispielsweise indem eine Mediationsdauer TM mit NSR-1 beendet und dann an der Nahtstelle (dem Framesynchronisationszeitpunkt TS) mit NSR=0 (statt NSR=1) weitergezählt wird. Derartige Abwandlungen werden als äquivalent angesehen.

In Figur 13 ist die absolute Bezugsframekennnummer id corr für den Netzwerk-Grafikprozessor NGP 1 die absolute Framekennnummer des Video- frames FW1 = N und für den Netzwerk-Grafikprozessor NGP 2 die absolute Framekennnummer des Videoframes FW2 = N-l. Von diesen absoluten Bezugsframekennnummern id corr des jeweils neuesten Videoframes in der jeweiligen Videoframe-Warteschlange 2 wird dann in dem jeweiligen Netzwerk-Grafikprozessor NGP durch Hinzuzählen des Wertes des lokalen relativen Videoframezählers NFR die absolute Framekennnummer id des zu rendernden Videoframes FR bestimmt. Da in beiden Netzwerk-Grafikprozessoren NGP dieselbe Mediationsfunktion angewendet wird, ergibt sich eine synchrone Darstellung, d.h. es werden auf beiden Netzwerk-Gra- fikprozessoren NGP dieselben Videoframes dargestellt.

Wenn auf diese Weise nach einer zu einem Framesynchronisationszeitpunkt TS durchgeführten Framesynchronisation in dem Zeitraum vor einem Bildrücklauf VR auf allen Netzwerk-Grafikprozessoren NGP jeweils das in den jeweiligen Backpuffer 6 zu rendernde Videoframe ausgewählt wird, wird mit dem Bildrücklauf NSR auf allen Netzwerk-Grafikprozessoren NGP gleichzeitig und synchron dasselbe Videoframe mit der absolute Framekennnummer id sichtbar werden. Insbesondere werden dieselben Videoframes ausgelassen, d.h. übersprungen und nicht dargestellt, oder wiederholt dargestellt, wenn das aufgrund von Unterschieden in den Frequenzen f s und f d erforderlich ist.

In dem Beispiel von Figur 13, die den Fall f s < f d betrifft, in dem Videoframes mehrfach dargestellt werden müssen, ist zu erkennen, dass bei den zu rendernden Videoframes FR manche Videoframes wiederholt, also mehrfach hintereinander auf den Displays dargestellt werden, beispielsweise die Videoframes N-l und N+7. Durch die erfindungsgemäße Framesynchronisation werden aber auch unterschiedliche und zeitlich variierende Verarbeitungs- und Laufzeiten eines Videoframes zu den jeweiligen Backpuffern 6 der Netzwerk-Grafikprozessoren NGP derart kompensiert, dass zu einem Zeitpunkt dieselben Videoframes auf den Displays D dargestellt werden. In Figur 13 werden unabhängig von den unterschied- liehen und zeitlich variierenden zeitlichen Verzögerungen der Videoframes FW1 und FW2 von den Displays dieselben Videoframes FR synchron dargestellt. Die Mediationsfunktion MF beseitigt somit den Jitter (z.B. aus den Kodierern) bzw. gleich diesen aus. Dieser Jitter kann beispielsweise bei einer Videostreamfrequenz von 40 Hz zur Folge haben, dass der tatsächliche zeitliche Abstand der Videoframes nicht regelmäßig 40 msec beträgt, sondern zwischen 20 msec und 70 msec, d.h. um +/- 50 % schwankt. Dies kann die Mediationsfunktion MF ausgleichen. Die Mediationsfunktion selbst oder allein bewirkt aber noch keine Synchronisation der Darstellung des Videoframes auf den Displays.

Der Prozess des Startens oder Auslösens der Framesynchronisation von Videoframes bzw. Framekennnummern wird vorzugsweise hin und wieder zu neuen Frameresynchronisationszeitpunkten TP wiederholt, beispiels- weise in periodischen, d.h. regelmäßigen zeitlichen Abständen. Die Mediationsfunktion wird in diesem Fall abschnittsweise angewendet, nämlich von einem Framesynchronisationszeitpunkt zum nächsten Framesynchronisationszeitpunkt (von einer Framesynchronisation zur nächsten, von einem Reset der Mediationsfunktion zum nächsten). Die Übergänge von einer Anwendung der Mediationsfunktion zur nächsten (zu den Framesynchronisationszeitpunkten) könnte man auch als Nahtstelle bezeichnen.

Das Wiederholen des neuen Startens der Mediationsfunktion wird als Fra- meresynchronisation bezeichnet werden. Ein anderer geeigneter Begriff wäre Rekorrelation. Die Rate bzw. Frequenz der Frameresynchronisation, d.h. der Wiederholung der Framesynchronisation, bzw. die Rate bzw. Frequenz, mit der die Synchronisationsnachrichten SN vom Master-Netzwerk- Grafikprozessor Master-NGP an die Slave-Netzwerk-Grafikprozessoren Slave-NGP gesendet werden, d.h. zu Framesynchronisationszeiten TS eine Framesynchronisation durchgeführt wird, beträgt vorteilhafterweise zum Beispiel zwischen 0,05 Hz und 10 Hz, bevorzugt zwischen 0,1 Hz und 5,0 Hz, weiter bevorzugt zwischen 0,2 Hz und 3,0 Hz, besonders bevor- zugt zwischen 0,5 Hz und 2,0 Hz. Die Rate, mit der die Framesynchronisation durchgeführt wird, d.h. die Frequenz der Framesynchronisationszeitpunkte TS, und mit der die Mediationsfunktion MF von dem Master-Netzwerk-Grafikprozessor Master-NGP zurückgesetzt und synchronisiert wird, ist somit erheblich kleiner als die vertikale Displayfrequenz f d und kann weniger als 1/10, 1/20, 1/50 oder ein 1/100 der Displayfrequenz f d betragen, in bevorzugten Ausführungsformen etwa 1/50 der Videostream- frequenz f s . Sie kann an die spezielle Auslegung des Netzwerks LAN, die Hardware-Ausstattung sowie die Art und die Frequenz einer oder mehre- rer Videobildquellen S angepasst sein. Sie kann fest vorgegeben sein oder auch dynamisch angepasst werden. Die Frameresynchronisation läuft in derselben Weise ab wie eine Framestartsynchronisation. Nach einem Framesynchronisationsstartzeitpunkt TS, d.h. zwischen zwei aufeinanderfolgenden Frameresynchronisationszeitpunkten, wird das vor den nächs- ten Bildrückläufen VR von den Netzwerk-Grafikprozessoren NGP jeweils zu rendernde Videoframe auf die gleiche Weise wie nach einer Framesynchronisation unter Verwendung der Mediationsfunktion MF aus dem Video- stream ausgewählt. In bevorzugten Ausführungsformen ist die Mediationsdauer TM ein fest vorgegebener Wert. Hierzu kann beispielsweise die Mediationsdauer TM als eine feste Zeitspanne, eine feste Anzahl von Bildrücklaufsignalen Vsync, eine feste Anzahl von Bildrückläufen VR oder ein maximaler Wert des relativen Vsynczählers vorgegeben sein. Optional kann die Media- tionsdauer TM auch zeitlich variabel gestaltet werden, beispielsweise um sie dynamisch derart anzupassen oder zu regeln, dass bei einer möglichst geringen Frequenz von Synchronisationsnachrichten SN, d.h. bei möglichst langer Mediationsdauer TM, noch eine ausreichende Contentsynchronisation erzielt wird. Eine entsprechende Variante besteht darin, dass die Mediationsfunktion MF mit einem (Differential)Regler modifiziert wird, um dafür zu sorgen, dass die Videoframe-Warteschlange 2 immer einen optimalen Füllgrad von 50 % hat. Beim Initialisieren des Prozesses wird die Videoframe-Warteschlange 2 etwa halb gefüllt und das Rendern wird mit einem mittleren Videoframe begonnen. Danach kann der Füllgrad der Videoframe-Warteschlange 2 protokolliert werden. Bei den auf die Initialisierung folgenden Mediationsdauern TM wird die Mediationsfunktion MF dann mittels einer Korrekturgröße modifiziert, deren Wert davon abhängt, wie stark der Ist-Füllgrad von einem Soll-Füllgrad abweicht. Diese Korrekturgröße ist beispielsweise ein Faktor, der an das ermittelte Verhältnis T d / T s im Argument von floor (x) der Mediationsfunktion MF angebracht wird. Im Ergebnis erhält man dadurch sozusagen eine Beschleunigung der Verarbeitung, d.h. ein zeitlich früheres Darstellen, wenn der Füllgrad der Videoframe-Warteschlange 2 zu groß ist (dadurch wird die Videoframe- Warteschlange 2 etwas mehr geleert), oder ein zeitlich späteres Darstellen, wenn der Füllgrad der Videoframe-Warteschlange 2 zu klein ist (dadurch wird die Videoframe-Warteschlange 2 etwas mehr gefüllt).

Die Figur 14 zeigt ein schematisches Beispiel einer erfindungsgemäßen Mediationsfunktion MF für den Fall f s < f d , in dem manche Videoframes mehrfach dargestellt werden müssen. Dieser Fall entspricht insoweit demjenigen der Figur 13. Dargestellt sind die Bildrückläufe VR mit der Periode T d eines Displays D als Funktion der Zeit t mit dem relativen Vsynczähler NSR, der jeweils an den Enden VRE der Bildrückläufe VR hochgezählt wird, sowie zum Rendern ausgewählte, in den Backpuffer 6 gespeicherte Videoframes FR mit der Periode T s und dem zugehörigen lokalen relativen Videoframezähler NFR für die zu rendernden Videoframes FR. Zu dem Framesynchronisationszeitpunkt TS werden beide Zähler NSR und NFR auf Null gesetzt. Natürlich ist es auch möglich, die Zähler nicht auf Null, sondern auf einen anderen Startwert zu setzen. In diesem Fall muss in den entsprechenden Gleichungen ein konstanter Wert, z.B. +1 oder +2, hinzuaddiert oder subtrahiert werden, um diese versetzte Zählweise zu berück- sichtigen. Derartige Abwandlungen sollen als gleichwertige Ausführungsformen angesehen werden. Die Mediationsfunktion MF bildet sowohl die Bildrückläufe VR mit NSR = 0 als auch NSR = 1 auf das zu rendernde Videoframe FR mit dem lokalen relativen Videoframezähler NFR = 0 ab. Ebenso werden die Bildrückläufe VR sowohl mit NSR = 3 als auch mit NSR = 4 auf das zu rendernde Video- frame FR mit NFR = 2 abgebildet. Das bedeutet, dass die Videoframes FR mit den Zählern NFR = 0 und NFR = 2 zweimal dargestellt werden, nämlich das Videoframe NFR = 0 bei den Bildrückläufen NSR = 0 und NSR = 1 und das Videoframe NFR = 2 bei den Bildrückläufen NSR = 3 und NSR = 4. Dagegen werden die Bildrückläufe NSR = 2, NSR = 5, NSR = 6 und NSR = 7 nur einmal abgebildet, nämlich auf NFR = 1, NFR = 3, NFR = 4 und NFR = 5. Durch diese Mediationsfunktion MF wird kompensiert, dass f s < f d ist.

Die folgende Tabelle zeigt ein Zahlenbeispiel für diesen Fall f s < f d wie in Figur 14 mit den beispielhaften Werten f s = 40 Hz (T s = 25 ms) und f d = 50 Hz (T d = 20 ms) für 0 < NSR < 20. In diesem Fall werden die Videoframes mit NFR = 0, NFR = 4, NFR = 8 und NFR = 12 wiederholt, d.h. nochmal auf einem Display D dargestellt, wie durch die mit einem Ausrufezeichen markierten Werte veranschaulicht ist.

9 7

10 8 !

11 8 !

12 9

13 10

14 11

15 12 !

16 12 !

17 13

18 14

19 15

20 16

Die Figur 15 zeigt ein schematisches Beispiel einer der Figur 14 entsprechenden Situation für den Fall f s > f d , in dem Videoframes bei der Darstellung auf den Displays ausgelassen werden müssen, mit einer entsprechenden Mediationsfunktion MF. Hierbei werden die Videoframes NFR = 4 und NFR = 8 ausgelassen, d.h. nicht gerendert und demzufolge nicht auf den Displays D dargestellt, wodurch kompensiert wird, dass f s > f d ist.

Die folgende Tabelle zeigt ein Zahlenbeispiel für diesen Fall f s > f d wie in Figur 15 mit den beispielhaften Werten f s = 60 Hz (T s = 16, 67 ms) und f d = 50 Hz (T d = 20 ms) für 0 < NSR < 20. In diesem Fall werden die Videoframes mit NFR = 5, NFR = 11, NFR = 17 und NFR = 23 ausgelassen, d.h. nicht auf den Displays dargestellt, wie durch die mit einem Ausrufezeichen markierten, hierzu benachbarten Werte veranschaulicht ist.

NSR

0 0

1 1 2 2

3 3

4 4 !

5 6 !

6 7

7 8

8 9

9 10 !

10 12 !

11 13

12 14

13 15

14 16 !

15 18 !

16 19

17 20

18 21

19 22 !

20 24 !

Die Figuren 17 bis 19 veranschaulichen die Funktionsweise der erfindungsgemäßen Framesynchronisation (Contentsynchronisation) zwischen dem Master-Netzwerk-Grafikprozessor Master-NGP und einem Slave-Netz- werk-Grafikprozessor Slave-NGP unter Verwendung der Mediationsfunktion MF. Dargestellt sind verschiedene Vorbereitungsstufen, von der erstmaligen Initialisierung des Synchronisationsprozesses über seine stufenweise Vervollständigung bis zum vollständigem Ablauf mit voller Synchronisation. Dieses Ausführungsbeispiel bezieht sich auf einen Fall f s < f d , in dem also manche Videoframes wiederholt, d.h. nochmal auf Displays D dargestellt werden, um den Frequenzunterschied auszugleichen. Die Grundidee der erfindungsgemäßen Synchronisation besteht darin, dass die Slave-Netzwerk-Grafikprozessoren Slave-NGP alles für die Synchronisation Erforderliche von dem Master-Netzwerk-Grafikprozessor Mas- ter-NGP in einer Synchronisationsnachricht SN mitgeteilt bekommen, um sowohl zu einem Startpunkt, dem Framesynchronisationszeitpunkt TS, als auch in dem Zeitraum bis zur nächsten Synchronisationsnachricht SN bzw. bis zum nächsten Framesynchronisationszeitpunkt TS, selbstständig, lokal und ohne weitere Netzwerkbelastung, d.h. während einer Mediationsdauer TM, ohne weiteren Austausch von Synchronisationsnachrichten SN oder Synchronisationsinformationen zwischen dem Master-Netzwerk-Grafikprozessor Master-NGP und den Slave-Netzwerk-Grafikprozessoren Slave-NGP, die Videoeinblendungen synchronisiert und tearingfrei darstellen können. Die Synchronisation findet für eine Mediationsdauer TM nur einmal statt, nämlich zu dem Bildrücklauf bei dem auf eine Synchronisationsnachricht SN folgenden, zu der Synchronisationsnachricht SN gehörenden Framesynchronisationszeitpunkt TS. Auf während einer Mediationsdauer TM auftretende irreguläre Ereignisse (z.B. Leerlaufen oder Überlaufen der Videoframe-Warteschlange 2, eine starke Frequenzänderung der vertikalen Dis- playfrequehz f d und/oder der Videostreamfrequenz f s etc.), die die Synchronisation stören oder unterbrechen, wird nicht sofort reagiert, sondern erst nach dem Ende der aktuellen Mediationsdauer TM, indem dann eine neue Synchronisation initialisiert wird. Bei irregulären Ereignissen wird hingenommen, dass während der aktuellen Mediationsdauer TM die Darstellung der Videoeinblendung unsynchronisiert, d.h. mit Tearing erfolgt, und erst nach dem nächsten Framesynchronisationszeitpunkt TS wieder synchronisiert wird.

In Figur 17 ist eine erste Vorbereitungsstufe des Synchronisationsprozes- ses der Contentsynchronisation veranschaulicht. Sie zeigt das erstmalige Anlaufen, d.h. das Starten nach einer ersten Initialisierung zu einem Framesynchronisationszeitpunkt TS. Bis zu dem ersten Framesynchronisa- tionszeitpunkt TS laufen die Darstellungen der Videoframes einer Videoeinblendung auf den Displays völlig unsynchronisiert. Dargestellt sind für den als Master definierten Master-Netzwerk-Grafikprozessor Master-NGP die Werte des synchronisierten Vsynczählers NS im Verlauf der Zeit t. Der Wert des synchronisierten Vsynczählers NS wird vom sogenannten Verti- cal-Retrace-Management der Netzwerk-Grafikprozessoren NGP geliefert und zählt die Bildrückläufe VR der Displays D bzw. der Displaywand 1, d.h. die Bildrücklaufsignale Vsync der Displays D. Der Bildrücklauf VR erfolgt mit der Frequenz des Bildrücklaufsignals Vsync, mit dem die Dis- plays D synchronisiert werden (mittels Framelock oder Genlock), d.h. mit der vertikalen Displayfrequenz f d . Das Zählen des synchronisierten Vsynczählers NS erfolgt somit mit der Displayfrequenz f d , der Frequenz des Bildrücklaufsignals Vsync, in zeitlichen Abständen der Periode T d . Der synchronisierte Vsynczähler NS ist ein Zähler, d.h. sein Wert erhöht sich von einem vertikalen Rücksprung VR zum nächsten um eins. Der Wert ist auf allen Netzwerk-Grafikprozessoren NGP gleich, d.h. der synchronisierte Vsynczähler NS ist auf allen Netzwerk-Grafikprozessoren NGP synchronisiert (beispielsweise mittels PTP und Framelock oder Genlock), sodass zu einem Zeitpunkt auf allen Netzwerk-Grafikprozessoren NGP derselbe absolute Wert für den synchronisierten Vsynczähler NS vorliegt. Für den Slave-Netzwerk-Grafikprozessor Slave-NGP ergibt sich daher in Figur 17 dieselbe synchronisierte Abfolge des synchronisierten Vsynczählers NS. Die Synchronisation der Netzwerk-Grafikprozessoren NGP und die Implementierung der Synchronisation umfasst drei voneinander unabhängige Schichten, die aufeinander aufbauen. Die unterste Schicht ist die Synchronisation der lokalen Uhren auf den einzelnen Netzwerk-Grafikprozessoren NGP, beispielsweise mittels PTP (Precision Time Protocol). Diese Schicht hat kein Wissen von dem Vertical-Retrace-Management. Eine zweite Schicht ist das Vertical-Retrace-Management, das die synchronisierten Uhren benutzt, um die Grafikkarten der einzelnen Netzwerk-Grafikprozes- soren NGP so zu programmieren (mittels Framelock oder Genlock), das ihre Bildrückläufe mit der geforderten Genauigkeit (Abweichung kleiner 0,5 msec) zum selben Zeitpunkt erfolgen. Diese zweite Schicht hat kein Wissen von den zu verarbeitenden bzw. darzustellenden Videostreams. Die dritte Schicht ist die sogenannte oder eigentliche Inter-NGP-Syn- chronisation, die die Contentsynchronisation durchführt. Sie bezieht von der zweiten Schicht über einen Funktionsaufruf den von der zweiten Schicht zur Verfügung gestellten synchronisierten Vsynczähler NS, den die dritte Schicht anstelle direkter Zeitwerte der lokalen synchronisierten Uhren benutzt.

Ferner sind in Figur 17 für den Master-Netzwerk-Grafikprozessor Master- NGP und den Slave-Netzwerk-Grafikprozessor Slave-NGP die Werte der relativen Vsynczähler NSR dargestellt. Diese sind der relative Wert des synchronisierten Vsynczählers NS bezogen auf dessen Wert beim letzten Neustart der Mediationsfunktion MF, d.h. beim zuletzt vorausgehenden Framesynchronisationszeitpunkt TS. Der relative Vsynczähler NSR ist die Differenz zwischen dem aktuellen Wert des synchronisierten Vsynczählers NS und dessen Wert am letzten Framesynchronisationszeitpunkt TS, also ein relativer Zähler, da er relativ zum letzten Framesynchronisationszeitpunkt zählt. Die relativen Vsynczähler NSR sind lokale Zähler, d.h. Zähler auf den jeweiligen Netzwerk-Grafikprozessoren NGP, für die Bildrückläufe VR, bezogen auf den Bildrücklauf VR an dem zuletzt erfolgten Framesynchronisationszeitpunkt TS. Der Bildrücklauf VR erfolgt mit der Frequenz des Bildrücklaufsignals Vsync, mit dem die Displays D synchronisiert werden (mittels Framelock oder Genlock), d.h. mit der vertikalen Displayfrequenz f d . Das Zählen des relativen Vsynczählers NSR erfolgt somit mit der Frequenz des Bildrücklaufsignals Vsync, d.h. mit derselben Frequenz wie der synchronisierte Vsynczähler NS. Durch die Kopplung der relativen Vsynczähler NSR an den synchronisierten Vsynczähler NS und den für die Displays D gemeinsamen Framesynchronisationszeitpunkten TS sind die relativen Vsynczähler NSR auf allen Netzwerk-Grafikprozessoren NGP syn- chronisiert, sodass zu einem Zeitpunkt (nach einem ersten Framesynchronisationszeitpunkt TS) auf allen Netzwerk-Grafikprozessoren NGP derselbe Wert für die relativen Vsynczähler NSR vorliegt. Die relativen Vsynczähler NSR werden lokal von den Netzwerk-Grafikprozessoren NGP zum Weiterzähen in der Mediationsfunktion MF ab einem Framesynchronisationszeitpunkt TS verwendet.

In der unsynchronisierten Anlaufphase bis zum ersten Framesynchronisationszeitpunkt TS in Figur 17 sind keine Werte für die relativen Vsynczäh- ler NSR angegeben, weil dies vor einem ersten Framesynchronisationszeitpunkt TS in Ermangelung eines Bezugswertes, einem zum Framesynchronisationszeitpunkt TS ausgewählten synchronisierten Vsynczähler NS, nicht möglich ist. Zum Framesynchronisationszeitpunkt TS werden die relativen Vsynczähler NSR auf einen Anfangswert (hier Null) gesetzt und zählen ab dann synchron. Der synchronisierte Wert der relativen Vsynczähler NSR kann ab dann als Argument in der Mediationsfunktion MF der Netzwerk-Grafikprozessoren NGP verwendet werden.

In Figur 17 sind für den Master-Netzwerk-Grafikprozessor Master-NGP und den Slave-Netzwerk-Grafikprozessor Slave-NGP auch die absoluten Framekennnummern id derjenigen Videoframes angegeben, die von dem Dekodierer 3 des jeweiligen Netzwerk-Grafikprozessors NGP aktuell als dekodierter Stream 4 in die Videoframe-Warteschlange 2 geschrieben werden. Aus der Videoframe-Warteschlange 2 werden sie abgehandelt, d.h. für ihre Darstellung auf dem Display D als zu renderndes Videoframe FR aus der Videoframe-Warteschlange 2 ausgelesen, mit dem Renderer 5 gerendert und als sichtbar werdendes Videoframe FV in den Backpuffer 6 geschrieben. Die absoluten Framekennnummern id der Videoframes des Videostreams stammen aus dem Videostream selbst, nämlich aus den RTP Zeitstempeln des Kodierers, der den jeweiligen Videostream kodiert, und sind in den Videostream eingebettet. Sie identifizieren die einzelnen Videoframes, die in den Videostream eingebettet sind, und sind Netzwerk- Grafikprozessor übergreifend, d.h. für ein bestimmtes Videoframe in allen Netzwerk-Grafikprozessoren NGP gleich (daher als "absoluter" Wert bezeichnet) und können folglich beim Synchronisieren der Videoframes auf den einzelnen Netzwerk-Grafikprozessoren NGP zum Identifizieren der Videoframes in dem Videostream verwendet werden. Die absoluten Framekennnummern id können wegen der Unsicherheit der Zeitstempel im RTP-Protokoll jedoch nur zum Identifizieren der Videoframes, aber nicht für Zwecke des "Tinning", d.h. der zeitlichen Steuerung oder Synchronisation der Darstellung der Videoframes verwendet werden. Ferner ist die absolute Framekennnummer id kein Zähler, was sich beispielsweise darin zeigt, dass sie sich von einem Videoframe zum nächsten unregelmäßig auch um mehr als eins erhöht oder erhöhen kann.

Die Frequenz der Videoframes 4 in dem Videostream aus dem Dekodierer 3, die in Videoframe-Warteschlange 2 geschrieben bzw. aus diesem gerendert werden, entspricht im Mittel der Videostreamfrequenz f s , sodass die Videoframes im Mittel in einem zeitlichen Abstand von der Periode T s der Videostreamfrequenz aufeinanderfolgen. Aufgrund der oben erläuterten Effekte, insbesondere des Jitters, ist die Bereitstellung der Videoframes des Videostreams aus dem Dekodierer 3 jedoch nicht zeitlich gleichmäßig, sondern schwankt ohne die erfindungsgemäße Synchronisation. Dies ist in Figur 17 durch den schwankenden zeitlichen Abstand ~ T S bei den absoluten Framekennnummern id des dekodierten Videostreams 4 aus dem Dekodierer 3 veranschaulicht.

Aufgrund der oben erläuterten Effekte (unterschiedliche Netzwerkübertragungsdauern, unterschiedliche Verarbeitungszeiten der Dekodierer 3) ist ferner ohne die erfindungsgemäße Synchronisation das Rendern von Videoframes FR nicht zwischen Netzwerk-Grafikprozessoren NGP synchro- nisiert, sodass in Figur 17 sowohl die Zeitpunkte der Fertigstellung des Dekodierens der Videoframes als auch die absoluten Framekennnummern id der gerenderten Videoframes FR zwischen dem Master-Netzwerk-Gra- fikprozessor Master-NGP und dem Slave-Netzwerk-Grafikprozessor Slave- NGP verschieden sind. Im Ergebnis werden bei einem Bildrücklauf VR, d.h. bei einem bestimmten synchronisierten Vsynczähler NS, für den Master-Netzwerk-Grafikprozessor Master-NGP und den Slave-Netzwerk- Grafikprozessor Slave-NGP, Videoframes mit unterschiedlichen absoluten Framekennnummern id als gerenderte Videoframes FR in den jeweiligen Backpuffer 6 gerendert, was zu dem beschriebenen Frametearing führt. Die erfindungsgemäße Contentsynchronisation sorgt dafür, dass bei allen Bildrückläufen VR, d.h. bei allen Bildrücklaufsignalen Vsync und somit zu allen Werten des synchronisierten Vsynczählers NS von den an der Darstellung einer Videoeinblendung beteiligten Displays D dieselben Videoframes, d.h. die Videoframes mit derselben absoluten Framekennnummer id, dargestellt werden und dadurch das Frametearing vermieden wird. Dies wird mittels lokaler Videoframe-Warteschlangen 2 für die dekodierten Videoframes auf den Netzwerk-Grafikprozessoren NGP, lokaler Videoframezähler NF (NFM auf dem Master-Netzwerk-Grafikprozessor Master- NGP, NFS auf den Slave-Netzwerk-Grafikprozessoren Slave-NGP), lokalen relativen Videoframezählern NFR (NFRM auf dem Master-Netzwerk-Grafik- Prozessor Master-NGP, NFRS auf den Slave-Netzwerk-Grafikprozessoren Slave-NGP), zu Framesynchronisationszeitpunkten TS gehörenden und kurz vor diesen von dem Master-Netzwerk-Grafikprozessor Master-NGP an die Slave-Netzwerk-Grafikprozessoren Slave-NGP gesandte Synchronisationsnachrichten SN und die Mediationsfunktion MF bewirkt.

Die Werte der lokalen Videoframezähler NF (NFM auf dem Master-Netzwerk-Grafikprozessor Master-NGP, NFS auf den Slave-Netzwerk-Grafikpro- zessoren Slave-NGP) zu den Videoframes des Videostreams auf den einzelnen Netzwerk-Grafikprozessoren NGP werden von den jeweiligen Dekodierern 3 der Netzwerk-Grafikprozessoren NGP geliefert und stehen somit auf den jeweiligen Netzwerk-Grafikprozessoren NGP lokal zur Verfügung. Die lokalen Videoframezähler NF zählen die auf dem jeweiligen Netzwerk-Grafikprozessor NGP dekodierten Videoframes (im Prinzip ab einem beliebigen Startwert), die in den Videoframe-Warteschlangen 2 abgespeichert werden, und sind Zähler, d.h. ihre Werte erhöhen sich von Videoframe zu Videoframe um eins. Die lokalen Videoframezähler NF der Netzwerk-Grafikprozessoren NGP sind aber für die an der Darstellung einer Videoeinblendung beteiligten Netzwerk-Grafikprozessoren NGP nicht synchronisiert, d.h. auf den einzelnen Netzwerk-Grafikprozessoren NGP sind einem bestimmten Videoframe (mit einer bestimmten absoluten Framekennnummer id) jeweils lokal unterschiedliche Werte der lokalen Videoframezähler NF zugeordnet.

Solange beim Dekodieren eines Videostreams auf einem Netzwerk-Grafikprozessor NGP kein Videoframe aus dem Videostream verloren geht, z.B. durch eine Fehlfunktion, eine Störung, eine Fehlübertragung oder ein Zeitproblem, erhöht sich auf einem Netzwerk-Grafikprozessor NGP der lokale Videoframezähler NF von einem Videoframe zum nächsten Videoframe jeweils um eins. Da dies entsprechend für alle lokalen Videoframezähler NF gilt, folgt daraus, dass die paarweisen Differenzen der lokalen Videoframezähler NF, d.h. der Unterschied (der "Versatz" oder "Offset", im Folgenden "die Videoframezählerdifferenz") zwischen dem lokalen Videoframezähler NF eines Netzwerk-Grafikprozessors NGP und dem lokalen Videoframezähler NF eines anderen Netzwerk-Grafikprozessors NGP zeitlich konstant ist, solange beim Dekodieren eines Videostreams auf einem Netzwerk-Grafikprozessor NGP kein Videoframe aus dem Videostream verloren geht, d.h. die Folge der von einem Netzwerk-Grafikprozessor NGP dekodierten Videoframes nicht unterbrochen wird.

Folglich ist auch die der Videoframezählerdifferenz DNF zwischen dem lokalen Videoframezähler NFS eines Slave-Netzwerk-Grafikprozessors Slave-NGP und dem lokalen Videoframezähler NFM des Master-Netzwerk- Grafikprozessors Master-NGP (DNF=NFS-NFM) zeitlich konstant, solange beim Dekodieren eines Videostreams kein Videoframe aus dem Video- stream auf einem der beiden Netzwerk-Grafikprozessoren NGP verloren geht. Diese letzte Eigenschaft, d.h. die zeitliche Konstanz der Videoframezählerdifferenz DNF eines lokalen Videoframezählers NFS eines Slave- Netzwerk-Grafikprozessors Slave-NGP gegenüber dem lokalen Video- framezähler NFM des Master-Netzwerk-Grafikprozessors Master-NGP macht sich die erfindungsgemäße Contentsynchronisation zu nutzte, denn sie ermöglicht lokal auf einem Slave-Netzwerk-Grafikprozessor Slave-NGP, den lokalen Videoframezähler NFS des Slave-Netzwerk-Grafikprozessors Slave-NGP auf den lokalen Videoframezähler NFM des Master- Netz werk- Grafikprozessors Master-NGP zu beziehen (zu normieren), um hierdurch auf dem Slave-Netzwerk-Grafikprozessor Slave-NGP dasselbe Videoframe, d.h. das Videoframe mit derselben absoluten Framekennnummern id, für die Darstellung wie auf dem Master-Netzwerk-Grafikprozessor Master-NGP auszuwählen. Ob die Videoframezählerdifferenz DNF konstant ist, wird mittels der Synchronisationsnachricht SN überprüft, und bei einer Veränderung wird erforderlichenfalls eine entsprechende Korrektur durchgeführt, um die synchrone Darstellung zu wieder herzustellen.

Von den Netzwerk-Grafikprozessoren NGP und werden jeweils in einer Videoframe-Warteschlange 2 die aus dem Videostream stammenden absoluten Framekennnummern id und die jeweils zu den absoluten Framekennnummern id gehörenden Werte der lokalen Videoframezähler NF (NFM auf dem Master-Netzwerk-Grafikprozessor Master-NGP, NFS auf dem jeweiligen Slave-Netzwerk-Grafikprozessor Slave-NGP) gespeichert, und zwar für eine gewisse Anzahl von absoluten Framekennnummern id. Die Videoframes, die von den Dekodierern 3 in die Videoframe-Warteschlangen 2 geschrieben werden, umfassen somit nicht nur die Bildinformation an sich (das dekodierte Videoframe), sondern für die einzelnen Videoframes jeweils auch die zugehörigen absoluten Framekennnum- mer id und den Wert des jeweiligen zugehörigen lokalen Videoframezählers NF. Diese lokale Zuordnung in den Videoframe-Warteschlangen 2 zwischen der absoluten Framekennnummer id und dem jeweiligen lokalen Videoframezähler NF ist in Figur 17 durch Verweise [2] auf die Videoframe-Warteschlangen 2 angedeutet. Sie wird von den Netz werk- Grafikprozessoren NGP jeweils lokal protokolliert.

Ferner sind in Figur 17 die Werte der lokalen relativen Videoframezähler NFR (NFRM auf dem Master-Netzwerk-Grafikprozessor Master-NGP, NFRS auf den Slave-Netzwerk-Grafikprozessoren Slave-NGP), dargestellt. Sie sind jeweils lokal auf den Netzwerk-Grafikprozessoren NGP der aktuelle Wert des lokalen Videoframezählers NF abzüglich dem Wert des lokalen Videoframezählers NF corr für das letzte Bezugsvideoframe id corr (das Videoframe mit der absoluten Bezugsframekennnummer id corr zum letzten Framesynchronisationszeitpunkt TS):

NFR = NF - NF corr

Der lokale relative Videoframezähler NFR ist auch der Funktionswert der Mediationsfunktion MF an einer beliebigen Stelle (für einen beliebigen Wert des relativen Vsynczählers NSR) und wird für das Auswählen des zu rendernden Videoframes FR benutzt, d.h. der lokale relative Videoframezähler NFR bestimmt das zu verarbeitende (zu rendernde) Videoframe durch Zählen ab dem Framesynchronisationszeitpunkt TS und das mittels des lokalen relativen Videoframezählers NFR bestimmte Videoframe wird für die Darstellung auf dem Display gerendert.

Da Figur 17 noch die vollständig unsynchronisierte Initialisierungsphase veranschaulicht, sind bis zum ersten Framesynchronisationszeitpunkt TS keine Werte für den lokalen relativen Videoframezähler NFRM auf dem Master-Netzwerk-Grafikprozessor Master-NGP und den lokalen relativen Videoframezähler NFRS auf dem Slave- Netzwerk-Grafikprozessor Slave- NGP dargestellt. Zu einem Synchronisationsnachrichtzeitpunkt TSN sendet der Master- Netzwerk-Grafikprozessor Master-NGP über das Netzwerk den Slave-Netz- werk-Grafikprozessoren Slave-NGP eine Synchronisationsnachricht SN. Sie werden bevorzugt in der Betriebsart Multicast gesendet (Multicast Sync- Messages oder Multicast Sync-Telegramme), und zwar nur von dem Mas- ter-Netzwerk-Grafikprozessor Master-NGP an die Slave-Netzwerk-Grafik- prozessoren Slave-NGP, aber nicht von den Slave-Netzwerk-Grafikprozes- soren Slave-NGP an den Master-Netzwerk-Grafikprozessor Master-NGP oder zwischen den Slave-Netzwerk-Grafikprozessoren Slave-NGP. Sie die- nen dazu, die Contentsynchronisation an einem kurz darauf folgenden Framesynchronisationszeitpunkt TS durchzuführen, mittels der der Master-Netzwerk-Grafikprozessor Master-NGP und die Slave- Netzwerk-Grafikprozessoren Slave-NGP nach der Vorgabe des Master-Netzwerk-Grafikprozessors Master-NGP aufeinander synchronisiert werden.

Die Synchronisationsnachrichten SN vom Master-Netzwerk-Grafikprozessor Master-NGP an die Slave-Netzwerk-Grafikprozessoren Slave-NGP sorgen dafür, dass auf den Netzwerk-Grafikprozessoren NGP die Mediationsfunktionen MF zu denselben Zeitpunkten mit denselben relativen Vsync- Zählern NSR und demselben Frequenzverhältnis f s / f d bzw. T d / T s starten. Damit die Synchronisationsnachrichten SN rechtzeitig bei den Slave- Netzwerk-Grafikprozessoren Slave-NGP vorliegen und gleichzeitig von den Slave-Netzwerk-Grafikprozessoren Slave-NGP verarbeitet werden können, werden sie jeweils kurz vor dem nächsten Framesynchronisationszeit- punkt TS gesendet. Ein Framesynchronisationszeitpunkt TS ist der Zeitpunkt, in dem ein Anwendungsabschnitt einer Mediationsfunktion MF endet und ein neuer Anwendungsabschnitt mit einem zurückgesetzten lokalen relativen Vsynczähler NSR startet. Ein Framesynchronisationszeitpunkt TS ist somit die Nahtstelle zwischen zwei Mediationsfunktions- Abschnitten, d.h. zwischen zwei aufeinanderfolgenden Mediationsdauern TM. Weil die Latenz der MultiCast-Synchronisationsnachrichten SN über das Netzwerk klein ist (ca. 1 msec), reicht es aus, wenn sie eine oder zwei Bildperioden T d vor dem Framesynchronisationszeitpunkt TS gesendet werden.

Aufgrund der Netzwerklatenz muss eine Synchronisationsnachricht SN in einem zeitlichen Sicherheitsabstand vor dem nächsten Framesynchronisationszeitpunkt TS gesendet werden, damit sie die Slave-Netzwerk-Grafik- prozessoren Slave-NGP rechtzeitig zum Framesynchronisationszeitpunkt TS erreicht. Bei normalen Betriebsbedingungen des Netzwerks genügt hierfür ein Framesynchronisationszeitpunktvorlauf TSV kleiner als 1 msec, bei Spitzenlast im Netzwerk genügen mehrere Millisekunden (kleiner als 10 msec). In der Praxis genügen hierfür ein oder zwei Bildrückläufe, d.h. allgemein ist es vorteilhaft, wenn dieser Framesynchronisationszeitpunkt- vorlauf TSV zwischen l x T d und 3 x T d beträgt. Ein vorteilhaftes Merkmal kann dementsprechend darin bestehen, dass die den Framesynchronisationszeitpunkten TS zugeordneten Synchronisationsnachrichten SN zu Synchronisationsnachrichtzeitpunkten TSN von dem Master-Netzwerk- Grafikprozessor an die Slave-Netzwerk-Grafikprozessoren gesendet werden, die um einen Framesynchronisationszeitpunktvorlauf TSV vor dem zugehörigen folgenden Framesynchronisationszeitpunkt TS liegen, der zwischen einer halben und fünf, bevorzugt zwischen ein und drei Perioden T d der vertikale Displayfrequenz f d beträgt, wobei ein bevorzugter Wert zwei Perioden T d ist.

Eine Synchronisationsnachricht SN des Master-Netzwerk-Grafikprozessors Master-NGP an die Slave-Netzwerk-Grafikprozessoren Slave-NGP enthält einen Auszug von Informationen, die auf dem Master-Netzwerk-Grafikprozessors Master-NGP lokal aufgezeichnet werden, z.B. in Form von Tabellenwerten oder Protokollen. Diese Aufzeichnung erfolgt nicht für die gesamte Vergangenheit, sondern nur für einen gewissen, aktuell zurückliegenden Zeitraum, der etwa dem Umfang der Videoframe-Warteschlange 2 entspricht. Diese aufgezeichneten Informationen umfassen die lokale Zuordnung zwischen den absoluten Framekennnummern id und dem loka- len Videoframezähler NFM des Master-Netzwerk-Grafikprozessors Master- NGP der Videoframes in der Videoframe-Warteschlange 2 des Master- Netzwerk-Grafikprozessors Master-NGP, d.h. jeder Eintrag in die Videoframe-Warteschlange 2 des Master-Netzwerk-Grafikprozessors Master- NGP enthält die absolute Framekennnummer id des Videoframes und den zugehörigen lokalen Videoframezähler NFM.

Dieselben Informationen werden entsprechend jeweils in den Slave-Netz- werk-Grafikprozessoren Slave-NGP aufgezeichnet, und zwar während einer vergleichbaren Dauer wie in dem Master-Netzwerk-Grafikprozessor Master-NGP. Dementsprechend umfassen diese aufgezeichneten Informationen die lokale Zuordnung zwischen den absoluten Framekennnummern id und dem lokalen Videoframezähler NFS des Slave-Netzwerk-Grafikpro- zessors Slave-NGP der Videoframes in der Videoframe-Warteschlange 2 des Slave-Netzwerk-Grafikprozessors Slave-NGP, d.h. jeder Eintrag in die Videoframe-Warteschlange 2 eines Slave-Netzwerk-Grafikprozessors Slave-NGP enthält die absolute Framekennnummer id des Videoframes und den zugehörigen lokalen Videoframezähler NFS.

Somit ist auf allen Netzwerk-Grafikprozessoren NGP bekannt, welche absoluten Framekennnummern id jeweils welchem lokalen Videoframezähler NF für die in der Videoframe-Warteschlange 2 gepufferten Videoframes zugeordnet ist. Dabei ist gewährleistet, dass alle Momentbilder der Videoframe-Warteschlangen 2 für Videoframes zum selben Zeitpunkt (im Rahmen der Genauigkeit der ersten (PTP) und zweiten Schicht (Vertical- Retrace-Management)) abgespeichert wurden.

Eine Synchronisationsnachricht SN des Master-Netzwerk-Grafikprozessors Master-NGP an die Slave-Netzwerk-Grafikprozessoren Slave-NGP enthält folgenden Auszug der vorstehend erläuterten, protokollierten Informationen: Ein Momentbild (Snapshot, Momentaufnahme) der Videoframe- Warteschlange 2 des Master-Netzwerk-Grafikprozessors Master- NGP zu einem Zeitpunkt des relativen Vsynczählers NSR, der um den Framesynchronisationszeitpunktvorlauf TSV vor dem nächsten Framesynchronisationszeitpunkt TS liegt. In diesem Momentbild ist die lokale Zuordnung zwischen den absoluten Framekennnummern id und dem lokalen Videoframezähler NFM des Master-Netzwerk-Grafikprozessors Master-NGP der Videoframes in der Videoframe-Warteschlange 2 des Master-Netz- werk-Grafikprozessors Master-NGP enthalten.

Den Wert des lokalen Videoframezählers NFM des Master-Netz- werk-Grafikprozessors Master-NGP für das aktuelle Videoframe, das als letztes, d.h. unmittelbar vor dem Versand der Synchronisationsnachricht SN vom Master-Netzwerk-Grafikprozessor Master-NGP aus der Videoframe-Warteschlange des 2 Master- Netzwerk-Grafikprozessors Master-NGP zum Rendern ausgelesen wurde.

Die vom Master-Netzwerk-Grafikprozessor Master-NGP gemessene Videostreamfrequenz f s (oder die hierzu äquivalente Information der Periode T s der Videostreamfrequenz f s ).

Die vertikale Displayfrequenz f d (oder die hierzu äquivalente Information der Periode T d der vertikalen Displayfrequenz f d ). Die vertikale Displayfrequenz f d wird von dem Master-Netzwerk-Grafikprozessor Master-NGP gemessen und als einheitlicher Wert an alle Slave- Slave-NGP übermittelt, damit eine exakte Übereinstimmung der Mediationsfunktion auf den Slave- Netzwerk-Grafikprozessoren Slave-NGP mit dem Master-Netz- werk-Grafikprozessor Master-NGP vorliegt. Dementsprechend wird mit einer Synchronisationsnachricht SN des Master-Netz- werk-Grafikprozessors Master-NGP an die Slave-Netzwerk-Gra- fikprozessoren Slave-NGP auch eine Information über die vom Master-Netzwerk-Grafikprozessor Master-NGP gemessene vertikale Displayfrequenz f d (oder die hierzu äquivalente Information der Periode T d der vertikalen Displayfrequenz f d ) übermittelt wird, wobei diese Information entweder die vertikale Displayfrequenz f d selbst oder den Quotienten mit der Video- streamfrequenz f s (oder die hierzu äquivalente Information über das Verhältnis der Periode der vertikalen Displayfrequenz und der Periode der Videostreamfrequenz) umfasst.

Anstatt der Informationen gemäß (iii) (Videostreamfrequenz f s oder Periode T s der Videostreamfrequenz f s ) und (iv) (vertikale Displayfrequenz f d oder Periode T d der vertikalen Displayfrequenz f d ) kann in abgewandelten Ausführungsformen die Synchronisationsnachricht SN auch nur das Verhältnis dieser Größen, d.h. den Quotienten f s / f d oder T d / T s , enthalten, da in die Mediationsfunktion nur das Verhältnis dieser Größen eingeht und somit auf den Slave-Netzwerk-Grafikprozessoren Slave- NGP nur der Wert dieses Verhältnisses, nicht aber die Frequenzen selbst benötigt werden. Derartige Abwandlungen werden als äquivalent angesehen.

Bis zum ersten Senden einer Synchronisationsnachricht SN bzw. bis zum Abschluss der stufenweisen Initialisierung der Synchronisation liegen noch nicht alle dieser gespeicherten Informationen auf dem Master- Netzwerk- Grafikprozessor Master-NGP bzw. den Slave-Netzwerk-Grafikprozessoren Slave-NGP bzw. alle Informationen einer vollständigen Synchronisationsnachricht SN vor. Bis zum ersten Framesynchronisationszeitpunkt TS, der in Figur 17 dargestellt ist, erfolgt die Darstellung der Videoframes auf den Displays D gänzlich unsynchronisiert. Ab dem ersten Framesynchronisationszeitpunkt TS sind der Master-Netzwerk-Grafikprozessor Master-NGP und die Slave-Netzwerk-Grafikprozessoren Slave-NGP hinsichtlich der Zeitpunkte synchronisiert, zu denen die Mediationsfunktion MF neu gestartet wird, d.h. zu denen der relative Vsynczähler NSR wieder bei Null beginnt. Diese Zeitpunkte sind die Framesynchronisationszeitpunkte TS und der Neustart erfolgt jeweils zu denselben Werten des synchronisierten Vsynczählers NS. Damit wird eine synchrone Grundtaktung erreicht, da ab dem Framesynchronisationszeitpunkt TS der relative Vsynczähler NSR zwischen dem Master-Netzwerk-Grafikprozessor Master-NGP und den Slave-Netzwerk-Grafikprozessoren Slave-NGP synchronisiert ist. Die loka- len relativen Videoframezähler NFR und die auf den Displays D dargestellten Videoframes sind jedoch noch nicht synchronisiert.

Die Figur 18 zeigt den Ablauf der nächsten Vorbereitungsstufe, nämlich die Werte von Figur 17 zum Zeitpunkt kurz vor und nach dem zweiten Framesynchronisationszeitpunkt TS, der nach einer Mediationsdauer TM auf den ersten Synchronisationszeitpunkt TS folgt. In dem dargestellten Beispiel ist die Mediationsdauer TM dreißig mal so groß wie die Periode T d der vertikalen Displayfrequenz f d , d.h. TM = 30 x T d . Wiederum wird zu einem Zeitpunkt, der um den Framesynchronisationszeitpunktvorlauf TSV vor dem Synchronisationszeitpunkt TS liegt, von dem Master-Netzwerk- Grafikprozessor Master-NGP eine Synchronisationsnachricht SN an die Slave-Netzwerk-Grafikprozessoren Slave-NGP gesendet. Diese beinhaltet bereits die Frequenzen f s und f d (oder das Frequenzverhältnis f s / f d ), und da der relative Vsynczähler NSR schon bei dem ersten Framesynchro- nisationszeitpunkt synchronisiert wurde, sind ab dem zweiten Framesynchronisationszeitpunkt TS die Mediationsfunktionen MF zwischen dem Master-Netzwerk-Grafikprozessor Master-NGP und den Slave- Netzwerk- Grafikprozessoren Slave-NGP synchronisiert, da alle Werte für das Argument der Mediationsfunktion MF synchronisiert sind.

Ab dem zweiten Framesynchronisationszeitpunkt TS sind somit der Master- Netz werk- Grafikprozessor Master-NGP und die Slave-Netzwerk-Grafik- Prozessoren Slave-NGP auch hinsichtlich der "Phase" synchronisiert und der Funktionswert der Mediationsfunktion MF bestimmt, welches Videoframe jeweils lokal auf einem Netzwerk-Grafikprozessor NGP aus der lokalen Videoframe-Warteschlange 2 des jeweiligen Netzwerk-Grafikprozes- sors NGP gerendert wird. Es liegt aber noch keine vollständige Synchronisation vor, denn es fehlt noch die Contentsynchronisation, damit von den Netzwerk-Grafikprozessoren NGP die Videoframes nicht nur im gleichen Takt dargestellt werden, sondern auch übereinstimmend und somit tearingfrei dieselben Videoframes (mit der selben absoluten Framekenn- nummer id) dargestellt werden. Daher unterscheiden sich im allgemeinen nach dem zweiten Framesynchronisationszeitpunkt TS noch die in den Backpuffer 6 gerenderten Videoframes FR zwischen dem Master-Netz- werk-Grafikprozessor Master-NGP und dem Slave-Netzwerk-Grafikprozessor Slave-NGP bzw. zwischen den Slave-Netzwerk-Grafikprozessoren Slave-NGP.

Für die vollständige Synchronisation muss nach dem zweiten Framesynchronisationszeitpunkt TS lokal von den Slave-Netzwerk-Grafikprozesso- ren Slave-NGP noch ein lokaler additiver Wert, der Frameversatz, bestimmt werden, der angibt, um wie viele Videoframes die Darstellung der Videoframes auf dem Slave-Netzwerk-Grafikprozessor Slave-NGP (der gerenderten Videoframes FR auf dem Slave-Netzwerk-Grafikprozessor Slave-NGP) gegenüber der Darstellung der Videoframes auf dem Master- Netzwerk-Grafikprozessor Master-NGP (der gerenderten Videoframes FR auf dem Master-Netzwerk-Grafikprozessor Master-NGP) unmittelbar vor dem Framesynchronisationszeitpunkt TS (genauer gesagt, vor der Synchronisationsnachricht SN) versetzt war. Es wird dann angenommen, dass dieser Frameversatz während der auf einen Framesynchronisationszeitpunkt TS folgenden Mediationsdauer TM konstant ist, und die Darstellung der Videoframes wird in diesem Zeitraum durch additive Berücksichtigung des Frameversatzes entsprechend korrigiert, sodass dann eine vollständige Synchronisierung erzielt wird. Bei jedem Framesynchronisationszeit- punkt TS wird dieser Frameversatz wieder neu ermittelt bzw. überprüft, sodass diesbezügliche Änderungen korrigiert werden.

Diese Bestimmung des Frameversatzes zwischen den von dem Master- Netzwerk-Grafikprozessor Master-NGP und jeweils einem Slave-Netzwerk- Grafikprozessor Slave-NGP gerenderten Videoframes erfolgt mittels der Synchronisationsnachricht SN, die unmittelbar vor dem in Figur 19 dargestellten dritten Framesynchronisationszeitpunkt TS gesendet wird. Die Figur 19 veranschaulicht somit den Synchronisationsprozess, weil ab dem dritten Framesynchronisationszeitpunkt TS eine vollständige Synchronisation erzielt wird.

Jeweils ab dem Beginn eines neuen Abschnitts der Mediationsfunktion MF, d.h. zu Beginn einer neuen Mediationsdauer TM nach einem Reset der Mediationsfunktion MF Mediation-Function-Reset auf einen relativen relativen Vsynczähler NSR von Null zu einem Framesynchronisationszeitpunkt TS mittels einer kurz davor übermittelten Synchronisationsnachricht SN werden auf allen Netzwerk-Grafikprozessoren NGP, d.h. auf dem Master- Netzwerk-Grafikprozessor Master-NGP und allen Slave-Netzwerk-Grafik- Prozessoren Slave-NGP, die an der Darstellung der betrachteten Videoeinblendung beteiligt sind, Momentbilder der jeweiligen Videoframe-Warteschlange 2 abgespeichert. Genau gesagt werden die Momentbilder zu Beginn derselben Bildrücklaufe abgespeichert, die anhand des synchronisierten Vsynczählers NS identifiziert werden, der von dem Vertical- Retrace-Management auf allen beteiligten Netzwerk-Grafikprozessoren NGP bereitgestellt wird. Jeder Eintrag in die Videoframe-Warteschlange 2 und somit auch in die Momentbilder enthält die absolute Framekennnummer id des Videoframes und den zugehörigen lokalen Videoframezähler NF. Mit der nächsten Synchronisationsnachricht SN, die der Master-Netz- werk-Grafikprozessor Master-NGP um den Framesynchronisationsvorlauf TSV, in dem dargestellten Beispiel zwei Bildrückläufe vor dem nächsten vor dem Framesynchronisationszeitpunkt TS und somit zwei Bildrückläufe vor dem nächsten Reset der Mediationsfunktion-Reset im Multicast-Modus über das Netzwerk an die Slave-Netzwerk-Grafikprozessoren Slave-NGP schickt, erhalten alle Slave-Netzwerk-Grafikprozessoren Slave-NGP rechtzeitig vor diesem nächsten Framesynchronisationszeitpunkt TS das aktu- eile Momentbild der Videoframe-Warteschlange 2 des Master-Netzwerk- Grafikprozessors Master-NGP und können es mit ihrem eigenen Momentbild vergleichen, das zum selben Zeitpunkt wie das des Master-Netzwerk- Grafikprozessors Master-NGP abgespeichert wurde. Zum Bestimmen des Frame Versatzes wird lokal in dem Slave-Netzwerk- Grafikprozessor Slave-NGP das mit der Synchronisationsnachricht SN empfangene Momentbild der Videoframe-Warteschlange 2 des Master- Netzwerk-Grafikprozessors Master-NGP mit einem lokal gespeicherten Momentbild der Videoframe-Warteschlange 2 des Slave-Netzwerk-Grafik- Prozessors Slave-NGP verglichen. Dabei werden die Einträge in den Videoframe-Warteschlangen 2 verglichen. Diese haben einen Überlappungsbereich bei den absoluten Framekennnummern id, d.h. manche absolute Framekennnummern id kommen sowohl in dem Momentbild der Videoframe-Warteschlange 2 des Master-Netzwerk-Grafikprozessors Master- NGP als auch in dem Momentbild der Videoframe-Warteschlange 2 des Slave-Netzwerk-Grafikprozessors Slave-NGP vor.

Von diesen wird eine absolute Framekennnummer id genommen, die jeweils in beiden Momentbildern enthalten ist, und der Slave-Netzwerk- Grafikprozessor Slave-NGP bestimmt mit deren Hilfe lokal den Frameversatz (die Differenz der lokalen relativen Videoframezähler NFR). Mit dieser Information kann dann der lokale relative Videoframezähler NFRS des Slave-Netzwerk-Grafikprozessors Slave-NGP auf das System des Master- Netzwerk-Grafikprozessors Master-NGP renormiert werden. Es ist also möglich, auf den Slave-Netzwerk-Grafikprozessoren Slave-NGP nur mit den lokalen Videoframezählern NFRS zu rechnen bzw. zu arbeiten, um das zu rendernde Videoframe FR zu bestimmen und die Synchronisation durchzuführen, weil die Slave-Netzwerk-Grafikprozessoren Slave-NGP auf das System des Master-NGP Master-Netzwerk-Grafikprozessors Master- NGP normiert, d.h. darauf bezogen und danach abgeglichen sind. Prinzipiell kann man beim Vergleichen der Synchronisationsnachricht SN auf einem Slave-Netzwerk-Grafikprozessor Slave-NGP mit den auf dem Slave-Netzwerk-Grafikprozessor Slave-NGP gespeicherten Werten in einem Vergleichsprozess nach einer beliebigen, jüngeren, absoluten Framekennnummer id suchen, die in beiden Momentbildern, d.h. in dem Momentbild der Videoframe-Warteschlange 2 des Master-Netzwerk-Grafik- prozessors Master-NGP, das mit der Synchronisationsnachricht SN an den Slave-Netzwerk-Grafikprozessor Slave-NGP übermittelt wurde, und dem Momentbild der Videoframe-Warteschlange 2 des Slave-Netzwerk-Grafik- prozessors Slave-NGP enthalten ist, um anhand dieses Videoframes den Frameversatz zu bestimmen. In vorteilhaften Ausführungsformen, in denen die Synchronisationsnachricht SN optional die absolute Framekennnummer id des neuesten Videoframes auf dem Master-Netzwerk-Grafikprozessor Master-NGP umfasst, wird die absolute Framekennnummer id des neuesten Videoframes in einer Synchronisationsnachricht SN " von dem Master-Netzwerk-Grafikprozessor Master-NGP an die Slave-Netzwerk- Grafikprozessoren Slave-NGP übertragen, um zu überprüfen, ob für dieses bestimmte neueste Videoframe eine Überlappung vorliegt. Dementsprechend besteht eine vorteilhafte Ausführungsform darin, dass eine Synchronisationsnachricht SN des Master-Netzwerk-Grafikprozessors Master-NGP an die Slave-Netzwerk-Grafikprozessoren Slave-NGP auch die absolute Framekennnummer id des neuesten Videoframes auf dem Master-Netzwerk-Grafikprozessor Master-NGP, d.h. das Videoframe, das auf dem Master-Netzwerk-Grafikprozessor Master-NGP zuletzt gerendert wurde, umfasst, und bei dem Vergleich der Momentbilder danach gesucht wird, ob diese absolute Framekennnummer id in den verglichenen Momentbildern enthalten ist. Im Falle der Überlappung der Momentbilder (egal ob für ein beliebiges oder das neueste Videoframe) gibt es zwei Möglichkeiten. Entweder liegt die letzte absolute Framekennnummer id des Master-Netzwerk-Grafikprozessors Master-NGP in dem Momentbild der Videoframe-Warteschlange 2 des Slave-Netzwerk-Grafikprozessors Slave-NGP oder die letzte absolute Framekennnummer id des Slave-Netz- werk-Grafikprozessors Slave-NGP liegt in dem Momentbild der Videoframe-Warteschlange 2 des Master-Netzwerk-Grafikprozessors Master- NGP.

Gibt es keine Überlappung der beiden verglichenen Momentbilder, d.h. kein Videoframe mit gleicher absoluter Framekennnummer id, das beiden Momentbildern gemeinsam ist, dann ist der Versatz in der Videoframedarstellung zwischen Slave-Netzwerk-Grafikprozessor Slave-NGP Slave und Master-Netzwerk-Grafikprozessor Master-NGP so groß, dass bei der gewählten maximalen Anzahl von Einträgen in die Videoframe-Warte- schlänge 2 eine Synchronisation in der Darstellung der Videoframes zwischen diesen Netzwerk-Grafikprozessoren NGP nicht erreicht werden kann. Man kann dann versuchen, durch eine Vergrößerung der Videoframe-Warteschlangen 2 eine Synchronisation zu ermöglichen. Dadurch verzögert sich allerdings die Anzahl gepufferter Videoframes und somit die Verzögerung, mit der das Video dargestellt wird, sodass dem Grenzen gesetzt sind, wenn eine Darstellung mit geringer Verzögerung erfolgen soll.

Wenn nach dem zweiten Framesynchronisationszeitpunkt TS die Darstel- lung von Videoframes auf dem Slave-Netzwerk-Grafikprozessor Slave-NGP bereits mit dem Master-Netzwerk-Grafikprozessor Master-NGP synchronisiert wäre, würde der Slave-Netzwerk-Grafikprozessor Slave-NGP feststellen, dass der Inhalt seiner Videoframe-Warteschlange 2, d.h. seines Momentbildes, genauso aussieht wie das vom Master-Netzwerk-Grafikpro- zessor Master-NGP per Synchronisationsnachricht gesendete Momentbild der Videoframe-Warteschlange 2 des Master-Netzwerk-Grafikprozessors Master-NGP und die Contentsynchronisation müsste nicht regelnd eingrei- fen. Im allgemeinen wird aber nach der abgeschlossenen Initialisierung nach dem zweiten Framesynchronisationszeitpunkt TS anhand der absoluten Framekennnummern id festgestellt werden, dass eine gegenseitige Verschiebung der dargestellten Inhalte, d.h. ein Frameversatz vorliegt, und es ist die Aufgabe der Contentsynchronisation, diese zu beseitigen bzw. zu korrigieren. Dazu muss zunächst bestimmt werden, um wie viele Videoframes die Videoframeinhalte der Videoframe-Warteschlangen 2 gegeneinander "versetzt" sind. Die absoluten Framekennnummern id können jedoch dafür nicht direkt verwendet werden, da über ihre Werte nichts anderes vorausgesetzt werden kann, als dass sie Videoframes eindeutig identifizieren. Ein Abstand zwischen zwei Videoframes, d.h. die Anzahl der zwischen zwei Videoframes liegenden Videoframes, wäre mit den Werten der absoluten Framekennnummern id allein nur sehr unzuverlässig zu bestimmen.

Die lokalen Videoframezähler NF sind aber dazu geeignet, den Abstand zweier Videoframes (auf demselben Netzwerk-Grafikprozessor NGP) durch eine einfache Differenzbildung zu bestimmen, immer vorausgesetzt, dass auf dem Weg vom Kodierer über das Netzwerk und den Dekodierer mit seinem (Software-)Decoding kein Videoframe verlorengegangen ist, da die lokalen Videoframezähler NF erst nach dem Decoding auf jedem Netzwerk-Grafikprozessor NGP erzeugt werden; sie stammen also im Gegensatz zur absoluten Framekennnummer id nicht aus dem Videostream. Letzteres ist aber genau der Grund, warum ein Abstand zwischen zwei Videoframes über Netzwerk-Grafikprozessor-Grenzen hinweg nicht auch einfach als Differenz ihrer lokalen Videoframezähler NF berechnet werden kann; bei identischen Videoframes müsste sich für Differenz Null ergeben, was aber im allgemeinen nicht stimmen wird, da die lokalen Videoframezähler NF unabhängig voneinander auf jedem Netzwerk-Grafikprozessor NGP erzeugt werden. Diese im allgemeinen von Null verschiedene Videoframezählerdifferenz DNF der lokalen Videoframezähler NF zwischen zwei Netzwerk-Grafikprozessoren NGP für ein Videoframe ist allerdings unab- hängig vom gewäh lten Videoframe, für das die Differenz betrachtet wird . Diese Videoframezählerdifferenz DNF ist gerade die Konstante, um die sich die lokalen Videoframezähler NF auf den beiden zum Vergleich betrachteten Netzwerk-Grafikprozessoren NGP aufgrund ihrer verschiede- nen Startpunkte oder Startzeitpunkte u nterscheiden (immer unter der genannten Voraussetzung, dass kein Videoframe verlorengegangen ist). Mit dieser (konstanten) Videoframezählerdifferenz DNF kann also zu einem vorgegebenen lokalen Videoframezähler NFS auf einem Slave-Netz- werk-Grafikprozessor Slave-NGP der entsprechende lokale Videoframe- Zähler NFM desselben Videoframes (identifiziert anhand seiner absoluten Framekennnummer id) auf dem Master-Netzwerk-Grafikprozessor Master- NGP bzw. umgekehrt angegeben werden.

Diese Videoframezählerdifferenz DNF des lokalen Videoframezählers NFS eines Slave-Netzwerk-Grafikprozessors Slave-NGP gegenüber dem lokalen Videoframezähler NFM des Master-Netzwerk-Grafikprozessors Master-NGP ist unabhängig von der Arbeitsweise des Synchronisationsverfahrens und wird bestimmt, indem mit irgendeinem Videoframe, das sowohl im aktuellen Momentbild des Slave-Netzwerk-Grafikprozessors Slave-NGP als auch im vom Master-Netzwerk-Grafikprozessor Master-NGP per Synchronisationsnachricht SN zuletzt empfangenen Momentbild des Master-Netzwerk- Grafikprozessors Master-NGP, das zum gleichen Zeitpunkt aufgenommen wurde, enthalten ist, die Differenz DNF der lokalen Videoframezähler NF zwischen Slave-Netzwerk-Grafikprozessors Slave-NGP . und Master-Netz- werk-Grafikprozessor Master-NGP berechnet wird.

Damit wird bei der Synchronisation bestimmt, um wie viele Videoframes der Slave-Netzwerk-Grafikprozessor Slave-NGP sein aktuelles Entnehmen von Videoframes aus seiner Videoframe-Warteschlange 2 für die weitere Verarbeitung, also zum Rendern für die Darstellung auf dem Display der Displaywand, nach vorne oder nach hinten (bezogen auf den Pointer, der das jeweilige Videoframe ausliest) korrigieren muss, damit seine Darstel- lung synchron zu der des Master-Netzwerk-Grafikprozessors Master-NGP ist. Dazu berechnet der Slave-Netzwerk-Grafikprozessor Slave-NGP beim oder bis zum nächsten Framesynchronisationszeitpunkt TS (hier dem dritten Framesynchronisationszeitpunkt TS in Figur 19) die Videoframezähler- differenz DNF der Videoframes, die der Master-Netzwerk-Grafikprozessor Master-NGP und der Slave-Netzwerk-Grafikprozessor Slave-NGP zum Zeitpunkt des Abschickens der letzten Synchronisationsnachricht SN (hier der Synchronisationsnachricht SN vor dem Framesynchronisationszeitpunkt TS in Figur 19) aus ihrer Videoframe-Warteschlange entnommen haben. Damit der Slave-Netzwerk-Grafikprozessor Slave-NGP diese Videoframezählerdifferenz DNF bestimmen kann, sendet der Master-Netzwerk-Grafikprozessor Master-NGP mit der Synchronisationsnachricht SN auch seinen lokalen Videoframezähler NFM für das aktuelle, d.h. neueste Videoframe, das er zum zuletzt vorausgehenden Zeitpunkt der Framesynchronisations- nachricht SN (hier der Framesynchronisationsnachricht SN unmittelbar vor dem dritten Framesynchronisationszeitpunkt TS in Figur 19) verarbeitet hat. Mit der Bestimmung dieses Frameversatzes kann dann auf die oben erläuterte Weise dann die "Renormierung" des lokalen Videoframezähler NFS des Slave-Netzwerk-Grafikprozessors Slave-NGP auf den lokalen Videoframezähler NFM des Master-Netzwerk-Grafikprozessors Master-NGP erfolgen, sodass eine Differenz von Null bedeutet, dass dasselbe Videoframe vorliegt. Um die auf diese Weise bestimmte Anzahl von Videoframes des jeweiligen Versatzes zwischen Slave-Netzwerk-Grafikprozessor Slave-NGP und Master-Netzwerk-Grafikprozessors Master-NGP wird nun das Entnehmen von Videoframes aus den Videoframe-Warteschlangen auf Slave-Netzwerk-Grafikprozessoren Slave-NGP durch Verzögern oder Vorziehen korrigiert, womit die Synchronisation der Darstellung der Videoframes erreicht ist. Der eigentliche Abgleich (die Contentsynchronisation) der Videoframes, die auf den Netzwerk-Grafikprozessoren NGP gerendert werden, womit dafür gesorgt wird, dass zu allen synchronisierten Vsynczählern NS von den Displays D dieselben Videoframes dargestellt werden, erfolgt also mittels Tabellenwerten/Protokollen in Form von Momentbildern, die von dem Master-Netzwerk-Grafikprozessor Master-NGP mit den Synchronisationsnachrichten SN an die Slave-Netzwerk-Grafikprozessoren Slave-NGP gesendet werden. Das Momentbild des Master-Netzwerk-Grafikprozessors Master-NGP mit den Daten, welche absolute Framekennnummer id auf dem Master-Netzwerk-Grafikprozessor Master-NGP zu welchem lokalem Videoframezähler NFM gehört, wird jeweils mit einer Synchronisationsnachricht SN von dem Master-Netzwerk-Grafikprozessor Master an die Slave-Netzwerk-Grafikprozessoren Slave-NGP gesendet. Auf den Slave- Netzwerk-Grafikprozessoren Slave-NGP läuft dann jeweils ein lokaler Ver- gleichsprozess ab, in dem dieses Momentbild des Master-Netzwerk-Grafikprozessors Master-NGP mit dem entsprechenden lokalen Momentbild des jeweiligen Slave-Netzwerk-Grafikprozessors Slave-NGP verglichen wird. Dabei wird überprüft, ob für eine bestimmte absolute Framekennnummer id, beispielsweise die neueste absolute Framekennnummer des Master- Netzwerk-Grafikprozessors Master-NGP, ein Überlapp vorliegt. Wenn dabei absolute Framekennnummern id mehrfach in einem Momentbild (des Mas- ter-Netzwerk-Grafikprozessors Master-NGP oder des Slave-Netzwerk- Grafikprozessors Slave-NGP) enthalten sind, d.h. mehrfach dargestellt wurden, wird der erste auftretende Wert genommen. Anhand der Netz- werk-Grafikprozessor-übergreifenden absoluten Framekennnummern id werden jeweils die lokalen Videoframezähler NFM des Master-Netzwerk- Grafikprozessors Master-NGP den lokalen Videoframezählern NFS des Slave-Netzwerk-Grafikprozessors Slave-NGP zugeordnet. Durch diesen Vergleich der Momentbilder erhält man auf jedem Slave-Netzwerk-Grafik- prozessor Slave-NGP die Information über die Anzahl der Videoframes, um die die Darstellung der Videoframes auf dem jeweiligen Slave-Netz- werk-Grafikprozessor Slave-NGP gegenüber dem Master-Netzwerk-Grafik- Prozessor Master-NGP versetzt war, d.h. vorausgeeilt ist oder hinterherhinkte. Diesen jeweiligen Versatz kann man dann bei dem nächsten Start der Mediationsfunktion, d.h. ab dem nächsten Framesynchronisationszeit- punkt TS als Korrekturwert zu dem jeweiligen lokalen relativen Videoframezähler NFSR der Slave-Netzwerk-Grafikprozessoren Slave-NGP hinzuaddieren oder subtrahieren, sodass im Ergebnis ab dann alle Slave- Netzwerk-Grafikprozessoren Slave-NGP synchron zu dem Master-Netz- werk-Grafikprozessor Master-NGP dieselben Videoframes darstellen.

Ab dem dritten, in Figur 19 dargestellten Framesynchronisationszeitpunkt TS ist somit eine vollständige Synchronisation der Darstellung der Videoeinblendung auf den Displays erreicht. Ab dann läuft die Synchronisation in gleicher Weise wie nach dem zweiten Framesynchronisationszeitpunkt TS weiter. Zu den Framesynchronisationszeitpunkten TS überprüfen die Slave-Netzwerk-Grafikprozessoren Slave-NGP, ob die Contentsynchronisation noch erfüllt oder zwischenzeitlich eingetreten und damit wieder korrigiert werden muss. Hierzu überprüfen die Slave-Netzwerk-Grafikprozesso- ren Slave-NGP wiederum, welches Videoframe zum Sendezeitpunkt der unmittelbar vorausgehenden Synchronisationsnachricht von dem Master- Netzwerk-Grafikprozessor Master-NGP verarbeitet (gerendert) wurde und bestimmen aus dem Vergleich des mit der Synchronisationsnachricht SN von dem Master-Netzwerk-Grafikprozessor Master-NGP empfangenen Momentbildes mit ihren gespeicherten Momentbildern jeweils, welches Videoframe mit welcher absoluten Framekennnummer id der jeweilige Slave-Netzwerk-Grafikprozessor Slave-NGP zu einem selben Zeitpunkt wie der Master-Netzwerk-Grafikprozessor Master-NGP verarbeitet hat. Von diesen wird eine absolute Framekennnummer id genommen, die jeweils in beiden Momentbildern enthalten ist, und die Slave-Netzwerk-Grafikpro- zessoren Slave-NGP überprüfen mit deren Hilfe lokal den Frameversatz (die Differenz der lokalen Videoframezähler NF zwischen den Slave-Netz- werk-Grafikprozessoren Slave-NGP und dem Master-Netzwerk-Grafikprozessor Master-NGP) darauf, ob er gegenüber der letzten Mediationsdauer gleich geblieben ist. In der Regel wird die Contentsynchronisation noch erfüllt sein. Wenn sich der Frameversatz verändert hat, wird dies ab dem Framesynchronisationszeitpunkt durch Anpassung des Korrekturwertes entsprechend korrigiert.

Zum Fortführen der Mediationsfunktion ab einem Framesynchronisationszeitpunkt TS nach der Synchronisationsnachricht SN (in diesem Beispiel zwei Bildrückläufe nach der Synchronisationsnachricht SN) bestimmen die Slave-Netzwerk-Grafikprozessoren Slave-NGP also, um wie viele Videoframes sie jeweils zeitlich gegen den Master-Netzwerk-Grafikprozessor Mas- ter-NGP versetzt liegen, und renormieren ihre lokalen relativen Videoframezähler NFRS entsprechend auf den lokalen relativen Videoframezähler NFRM des Master-Netzwerk-Grafikprozessors Master-NGP mittels der ermittelten Videoframezählerdifferenz der lokalen Videoframezähler zwischen dem Master-Netzwerk-Grafikprozessor Master-NGP und dem Slave-Netzwerk-Grafikprozessor Slave-NGP. Wenn der Slave-Netzwerk- Grafikprozessor Slave-NGP beispielsweise feststellt, dass er mit seiner Darstellung zwei Videoframes der Darstellung der Videoeinblendung auf dem Master-Netzwerk-Grafikprozessor Master-NGP vorauseilt oder diesem hinterherhinkt, wird diese Abweichung bzw. der zeitliche Versatz korrigiert bzw. kompensiert, indem der Slave-Netzwerk-Grafikprozessor Slave-NGP beim Berechnen des selektierten Videoframes diesen Versatz mit Gegenvorzeichen im Funktionswert der Mediationsfunktion addiert.

Die vertikale Frequenz f d der Displays D und für jeden Videostream seine Framerate f s bestimmen die Funktionswerte der Mediationsfunktion MF für diesen Videostream. Da sich die Frequenzen f s und f d im Laufe der Zeit geringfügig verändern können, werden sie (oder deren Quotient) gemäß einer vorteilhaften Ausführungsform nicht nur einmal bestimmt, sondern die Messung einer oder beider Größen wird hin und wieder, regelmäßig, oder intervallartig wiederholt, beispielsweise in periodischen, d.h. regelmäßigen zeitlichen Abständen und bevorzugt im Takt der vertikalen Displayfrequenz f d . Die Bestimmung dieser Frequenzen f s und f d (durch den Master-Netzwerk-Grafikprozessor Master-NGP) bzw. deren Quotient erfolgt ferner vorzugsweise durch Mittelung über eine Vielzahl von Perioden, sodass die in dem erfindungsgemäßen Synchronisationsprozess verwendeten Werte für die Frequenzen f s und f d bzw. der Wert für deren Quotient gemittelte Frequenzwerte sind. Die Mittelung kann gemäß einer bevorzugten Ausführungsform über ein zeitlich gleitendes Messfenster der zeitlichen Länge t m erfolgen, beispielsweise im Takt der vertikalen Displayfrequenz f d . Dabei wird über mehrere Perioden gemittelt, die zwischen einem Start- und einem Endwert liegen, wobei t m die Messdauer bezeichnet, über die gemittelt wird, d.h. die zeitliche Länge des Messfensters. Gemäß einem vorteilhaften Merkmal wird somit vorgeschlagen, dass die Bestimmung entweder der Videostreamfrequenz f s oder der hierzu äquivalenten Periode T s der Videostreamfrequenz f s und der vertikalen Displayfrequenz f d oder der hierzu äquivalenten Periode T d der vertikalen Displayfrequenz f d , oder des Quotienten f s / f d der Videostreamfrequenz f s mit der vertikalen Displayfrequenz f d oder dessen hierzu äquivalenten Kehrwerts f d / f s , oder des Quotienten T d / T s der Periode T d der vertikalen Displayfrequenz f d mit der Periode T s der Videostreamfrequenz f s oder dessen hierzu äquivalenten Kehrwerts T s / T d hin und wieder, regelmäßig, intervallartig oder bevorzugt mit einem gleitenden Messfenster M im Takt der vertikalen Displayfrequenz f d wiederholt wird.

Die Figur 20 veranschaulicht die Messung der vertikalen Displayfrequenz f d und der Videostreamfrequenz f s durch den Netzwerk-Grafikprozessor NGP, der als Master dient. Dargestellt sind als Funktion der Zeit t der relative Vsynczähler NSR zu den Enden VRE der Bildrückläufe VR und der lokale relative Videoframezähler NFRM für zu rendernden Videoframes FW, die in der Videoframe-Warteschlange 2 zur Verfügung stehen. Dabei sind NSR start und NFRM start: Anfangswerte und NSR end und NFRM end Endwerte in dem aktuellen Messfenster M der zeitlichen Länge t m . Dargestellt ist auch ein nächstes Messfenster M next . Die aktuellen Werte der Frequenzen f d und f s ergeben sich dann aus der Mittelung über das aktuelle Messfenster M wie folgt: NSR end - NSR start

d ~ t

NFRM end - NFRM start

s " t

Entsprechend kann der Master-Netzwerk-Grafikprozessor für die Bestimmung der Displayfrequenz f d statt des relativen Vsynczählers NSR auch den synchronisierten Vsynczähler NS oder für die Bestimmung der Video- streamfrequenz f s statt des lokalen relativen Videoframezählers NFRM den lokalen Videoframezähler NFM verwenden. Die Zahl an Perioden, über die gemittelt wird, d.h. die Anzahl der in die Mittelung einbezogenen Bildrückläufe VR, sollte größer als in der Veranschaulichung gemäß Figur 20 sein, um eine gute Mittelung zu erzielen. Die Zahl der Bildrückläufe VR, über die gemittelt wird, liegt vorteilhafterweise zwischen 50 und 200, bevorzugt um 100. Sie kann fest vorgegeben sein oder auch dynamisch angepasst werden. So kann es beispielsweise vorteilhaft sein, zunächst mit einem kleineren Messfenster M zu beginnen, um während der Initialisierung des Displays oder einer Synchronisation zunächst schnell grobe Werte für die Frequenzen f s und f d zur Verfügung zu haben, und im Laufe des Betriebs dann die Länge t m des Messfensters M zu vergrößern, beispielsweise indem die Fenstergröße von Messung zu Messung erhöht wird, bis der gewählte Endwert erreicht wird.

Gemäß einer anderen vorteilhaften Ausführungsform kann vorgesehen sein, dass der Master-Netzwerk-Grafikprozessor NGP unabhängig von der Grundrate, mir der die Framesynchronisation durchgeführt wird, eine vorgezogene Framesynchronisation auslöst, sobald die intervallartige oder kontinuierliche Messung der Frequenzen f s und f d ergibt, dass sich das Verhältnis f s / f d bzw. T d / T s um mehr als einen Grenzwert von beispielsweise 0,01 gegenüber einem Anfangswert verändert hat.

Bezugszeichenliste

1 Displaywand

2 Videoframe-Warteschlange

3 Dekodierer

4 dekodiertes Videoframe

5 Renderer

6 Backpuffer

D Display

Dl Display 1

Dn Display n

DNF Videoframezählerdifferenz NFS-NFM

DVI Digital Visual Interface

E Ethernet

EC Kodierer

EC1 Kodierer 1

ECm Kodierer m

FR in Backpuffer gerendertes Videoframe

FV sichtbar werdendes Videoframe

FW Videoframe in der Videoframe-Warteschlange

vertikale Displayfrequenz

Videostreamfrequenz

GbE Gigabit Ethernet

IS Videoeinblendung

id absolute Framekennnummer

i d corr absolute Framekennnummer eines Bezugsvideoframes

LAN Netzwerk M Messfenster

M next nächstes Messfenster

m Anzahl der Videobildquellen

MF Mediationsfunktion

n Anzahl der Displays der Displaywand

NF lokaler Videoframezähler

NFM lokaler Videoframezähler Master-NGP

NFS lokaler Videoframezähler Slave-NGP

NFR lokaler relativer Videoframezähler (Zähler für zu renderndes

Videoframe)

NFRM lokaler relativer Videoframezähler Master-NGP

NFRS lokaler relativer Videoframezähler Slave-NGP

NFR end Endwert von NFR

NFR start Startwert von NFR

NGP Netzwerk-Grafikprozessor

NGP 1 Netzwerk-Grafikprozessor 1

NGP n Netzwerk-Grafikprozessor n

NS synchronisierter Vsynczähler

NSR relativer Vsynczähler

NSR end Endwert von NSR

NSR start Startwert von NSR

S Videobildquelle

Sl Videobildquelle 1

Sm Videobildquelle m

SN Synchronisationsnachricht

SW Switches

SS Synchronisations-Signalgeber

T d Periode der vertikalen Displayfrequenz

TS Framesynchronisationszeitpunkt

TSN Synchronisationsnachrichtzeitpunkt

TSV Framesynchronisationszeitpunktvorlauf

T s Periode der Videostreamfrequenz t Zeit

TM Mediationsdauer t m Länge Messfenster

VR Bildrücklauf

VRE Ende Bildrücklauf

Vsync Bildrücklaufsignal