-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft Anzeige-Systeme und insbesondere eine Variable-Wiederauffrischungs-Rate-Anzeige.
-
Verfahren zur Bestimmung von Wiederauffrischungsfrequenz sind beispielsweise aus den Druckschriften
US 2013 / 0 328 894 A1 ,
US 2010 / 0 164 966 A1 ,
WO 2013 7 105 913 A2 ,
DE 10 2013 218 622 A1 ,
US 2007 / 0 091 204 A1 ,
US 2014 / 0 002 739 A1 bekannt.
-
HINTERGRUND
-
Herkömmliche Anzeigegeräte (z.B. Kathodenstrahlröhre (CRT), Flüssigkristall-Anzeige (LCD), Licht-emittierende Diode (LED), organische LED (OLED), Aktiv-Matrix-OLED (AMOLED), etc.) operieren bei fixen Wiederauffrischungs-Raten, wie 60 Hz, 85 Hz oder 120 Hz. Mit anderen Worten ist das Anzeigegerät konfiguriert, jedes der Pixel auf dem Schirm bei einer spezifischen Frequenz wiederaufzufrischen. In herkömmlichen Systemen muss das Videosignal, welches an das Anzeigegerät übermittelt ist, mit der fixen Frequenz der Wiederauffrischungs-Rate des Anzeigegeräts übereinstimmen. Einige Anzeigegeräte ermöglichen, dass die fixe-Frequenz-Wiederauffrischungs-Rate basierend auf einer Konfigurationseinstellung des Anzeigegeräts geändert wird, aber sobald diese Einstellung geändert ist, wird jeder mittels des Anzeigegeräts empfangene Frame auf den Schirm bei dieser fixen Frequenz gezogen. Eine Grafikverarbeitungs-Einheit (GPU) kann jedoch Frames von Pixeldaten bei einer variablen Render-Rate erzeugen, welche asynchron ist mit der fixen Wiederauffrischungs-Rate des Anzeigegerätes.
-
Wenn z.B. ein Anzeigegerät bei 60 Hz operiert, werden die Pixel der Anzeige alle 16,6 ms wiederaufgefrischt. Jeder Frame kann jedoch eine variable Zeitdauer brauchen, um mittels der GPU gerendert zu werden, während so ein Frame 12 ms zum Rendern braucht, kann ein anderer Frame mit einer komplizierteren Geometrie 30 ms zum Rendern benötigen. Somit brauchen vollständig gerenderte Frames nicht in dem Framepuffer bereit sein, wenn der nächste Frame an das Anzeigegerät über eine Videoschnittstelle ausgegeben werden muss. Diese Situation kann Bild-Artefakte verursachen, welche ein Betrachter als abgehacktes (choppy) Video wahrnehmen kann. Zum Beispiel kann ein Bildreißen (tearing) auftreten, wenn das Bild, welches an das Anzeigegerät ausgegeben wird, auf halbem Wege durch den Frame geschaltet wird (V-SYNC Aus). Umgekehrt kann Bildstottern auftreten, wenn das Bild, welches an das Anzeigegerät ausgegeben ist, nur zwischen Frames geschaltet ist, was dadurch verursacht, dass einige Frames wiederholt werden und/oder was dazu führt, dass einige Frames ausgelassen werden (V-SYNC An).
-
Neuere Anzeigegeräte können konfiguriert sein, synchron mit der GPU unter Benutzung einer dynamischen Wiederauffrischungs-Frequenz zu operieren. Zum Beispiel können einige Monitore mit NVIDIA G-SYNC™ Technologie kompatibel sein, welche dem Anzeigegerät ermöglicht, die Wiederauffrischung von Pixelelementen zum Anzeigen eines Frames mit der variablen Render-Rate der GPU zu synchronisieren. Die GPU ist konfiguriert, Frames von Pixeldaten an das Anzeigegerät über die Videoschnittstelle zu übermitteln, wenn die Frames gerendert werden, und das Anzeigegerät ist konfiguriert, die Pixel des Anzeigegeräts in Antwort auf Empfangen der Frames von Pixeldaten anstatt bei einer fixen Frequenz-Wiederauffrischungs-Rate wiederaufzufrischen. Mit anderen Worten ist die Wiederauffrischungs-Rate des Anzeigegeräts nicht bei einer bestimmten Frequenz fixiert, sondern stellt sich stattdessen dynamisch auf die Rate ein, mit welcher Bilddaten von der GPU empfangen sind.
-
Solange wie die GPU Frames von Bilddaten bei einer sinnvollen Render-Rate rendert, können die Typen von Bild-Artefakten, welche mit herkömmlichen Systemen assoziiert sind, vermindert werden. In einigen Fällen kann die GPU jedoch Schwierigkeiten dabei haben, bestimmte Frames in einer sinnvollen Zeitmenge aufgrund der Komplexität einer Szene zu rendern. Zum Beispiel kann ein bestimmter Frame von Pixeldaten zum Rendern z.B. 100 ms benötigen, was einer dynamischen Wiederauffrischungs-Frequenz von 10 Hz für diesen bestimmten Frame entspricht. Die effektive Wiederauffrischungs-Rate des Monitors kann Probleme verursachen, wenn es große Verzögerungen zwischen aufeinanderfolgenden Frames gibt.
-
Zum Beispiel haben die meisten Bildanzeige-Technologien (z.B. LCD-Tafeln) eine untere und eine obere Schranke von Wiederauffrischungs-Frequenz, bei welcher die Anzeige ein Bild mit maximaler Qualität reproduzieren kann. Als die Anzeigen bei einer fixe-Frequenz-Wiederauffrischungs-Rate getrieben waren, war diese Betriebsbeschränkung leicht zu erfüllen, weil die fixe Wiederauffrischungs-Frequenz innerhalb der unteren und der oberen Schranke der Anzeige ausgewählt werden konnte. Wenn jedoch eine Variable-Wiederauffrischungs-Rate-Technologie verwendet wird, wie etwa NVIDIA's G-SYNC™ -Technologie, kann die GPU eine variable und unvorhersagbare Zeitmenge benötigen, um die nächsten Bilddaten zur Anzeige zu erzeugen. Die Zeitmenge, welche erforderlich ist, den nächsten Frame von Bilddaten zur Anzeige zu erzeugen, kann größer sein als die Zeitmenge, welche verfügbar ist, während oberhalb der minimalen Wiederauffrischungs-Frequenz-Anforderungen der Anzeige geblieben wird. Somit gibt es einen Bedarf zum Adressieren dieser Probleme und/oder anderer Probleme, welche mit dem Stand der Technik assoziiert sind.
-
ZUSAMMENFASSUNG
-
Offenbart werden Verfahren, Computer-lesbare Speichermedien und ein System zum Einstellen einer dynamischen Wiederauffrischungs-Frequenz eines Anzeigegeräts gemäß Haupt- und Nebenansprüchen. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen angegeben.
-
Figurenliste
-
- 1 illustriert ein Flussdiagramm eines Verfahrens zum Wiederholen einer Präsentation eines Bildes auf einem Anzeigegerät in Übereinstimmung mit einer Ausführungsform;
- 2 illustriert ein System, welches eine dynamische-Wiederauffrischungs-Frequenz-fähige Anzeige umfasst, in Übereinstimmung mit einer Ausführungsform;
- 3A und 3B illustrieren ein Beispiel einer Frame-Wiederholung mit einer minimalen Wiederholungs-Frequenz von 30 Hz in Übereinstimmung mit einer Ausführungsform;
- 4 illustriert den Betrieb der GPU von 2 in Übereinstimmung mit einer Ausführungsform;
- 5 illustriert den Betrieb der Skalierungseinheit von 2 in Übereinstimmung mit einer anderen Ausführungsform;
- 6 illustriert den Betrieb des TCON von 2 in Übereinstimmung mit einer anderen Ausführungsform; und
- 7 illustriert ein beispielhaftes System, in welchem die verschiedene Architektur und/oder Funktionalität der verschiedenen vorherigen Ausführungsformen implementiert werden können.
-
DETAILLIERTE BESCHREIBUNG
-
In den meisten Variable-Wiederauffrischungs-Rate-Anzeigen ist die Ankunftszeit von jedem neuen Frame von Bilddaten unbekannt und eine Heuristik basierend auf vergangenen Ereignissen kann benutzt werden, um die Ankunftszeit von dem nächsten Frame von Bilddaten abzuschätzen. Die abgeschätzte Ankunftszeit wird benutzt, um eine Anzahl von Malen zu finden, für die der vorangehende Frame von Bilddaten auf dem Anzeigegerät wiederaufgefrischt werden sollte, um sicherzustellen, dass das Anzeigegerät innerhalb der Spezifikationen operiert, welche mittels des Anzeigegerätes bereitgestellt sind, wie einer minimalen und maximalen Wiederauffrischungs-Frequenz des Anzeigegerätes.
-
1 illustriert ein Flussdiagramm eines Verfahrens 100 zum Wiederholen einer Präsentation eines Bildes auf einem Anzeigegerät in Übereinstimmung mit einer Ausführungsform. Bei Schritt 110 wird eine momentane Frame-Dauer, welche mit einem Frame von Bilddaten assoziiert ist, erhalten. Die momentane Frame-Dauer repräsentiert die Zeit, welche erforderlich ist, den momentanen Frame von Bilddaten in einem Frame-Puffer zu rendern und folglich die Zeit, für die der vorangehende Frame von Bilddaten mittels des Anzeigegerätes angezeigt wird, während darauf gewartet wird, dass der momentane Frame von Bilddaten empfangen wird. Die momentane Frame-Dauer kann für einen oder mehrere Frames von Bilddaten in einer Folge von Bildern variieren. In einer Ausführungsform berechnet eine Zeitgebungs-Steuerung in dem Anzeigegerät eine Schätzung für die momentane Frame-Dauer. In einer anderen Ausführungsform berechnet eine Skalierungseinheit in dem Anzeigegerät eine Schätzung für die momentane Frame-Dauer. In noch einer anderen Ausführungsform berechnet ein Prozessor, welcher außerhalb des Anzeigegeräts ist, wie etwa eine Grafikverarbeitungs-Einheit, eine Schätzung für die momentane Frame-Dauer.
-
In den meisten Variable-Wiederauffrischungs-Rate-Anzeigegeräten wird die Ankunftszeit jedes neuen Bildes unbekannt sein, da die Render-Rate der Bilder basierend auf der Komplexität der Szene, welche gerendert wird, variieren wird. Der einzige Weg, wie die Ankunftszeit jedes neuen Bildes bekannt sein wird, ist, wenn es eine Frame-Verzögerung gibt, bevor der vorangehende Frame an das Anzeigegerät übermittelt wird, derart, dass die Render-Zeit für den momentanen Frame bekannt ist, wenn der vorangehende Frame an das Anzeigegerät gesendet wird. Solch eine Verzögerung kann jedoch einen Rückstand (lag) einführen, welcher für einige Benutzer in interaktiven Anwendungen, wie etwa Computerspielen, bemerkbar sein könnte.
-
In einer Ausführungsform kann die Verzögerung eines Frames dadurch vermieden werden, dass die momentane Frame-Dauer unter Benutzung einer Heuristik basierend auf vergangenen Ereignissen abgeschätzt wird, wie etwa die bekannten Frame-Dauerzeiten von einem oder mehreren vorangehenden Frames von Bilddaten. Zum Beispiel kann die Frame-Dauer, welche mit dem vorherigen Frame von Bilddaten assoziiert ist, benutzt werden, um die Frame-Dauer abzuschätzen, welche mit dem momentanen Frame von Bilddaten assoziiert ist. In einem anderen Beispiel kann die mittlere Frame-Dauer, welche mit N vorherigen Frames von Bilddaten assoziiert ist, benutzt werden, um die Frame-Dauerzeit für den momentanen Frame von Bilddaten abzuschätzen.
-
Bei Schritt 120 wird ein Wiederholungs-Wert für ein vorangehendes Bild basierend auf der momentanen Frame-Dauer ausgewählt. Es wird geschätzt werden, dass bei gegebener spezifischer unterer Schranke für die Wiederholungs-Frequenz eines Anzeigegeräts, welche einer maximalen erlaubten Frame-Dauer entspricht, und bei einer gegebenen spezifischen oberen Schranke für die Wiederholungs-Frequenz des Anzeigegerätes, welche einer minimalen erlaubten Frame-Dauer entspricht, es immer möglich ist, eine ganze Zahl von Wiederholungen für einen Frame von Bilddaten derart zu bestimmen, dass die dynamische Wiederauffrischungs-Frequenz, welche mit dem Frame von Bilddaten assoziiert ist, innerhalb der unteren und der oberen Schranke für die Wiederauffrischungs-Frequenz des Anzeigegeräts fällt, solange die folgende Gleichung erfüllt ist:
-
In Gleichung 1 repräsentiert frame_durationmax die maximale erlaubte Frame-Dauer des Anzeigegeräts und frame_durationmin repräsentiert die minimale erlaubte Frame-Dauer des Anzeigegeräts. Mit anderen Worten sollte die Größe der maximal erlaubten Frame-Dauer größer sein als oder gleich sein wie zweimal die Größe der minimal erlaubten Frame-Dauer. Wenn z.B. ein Anzeigegerät eine untere Schranke für die Wiederauffrischungs-Frequenz von 50 Hz hat und eine obere Schranke für die Wiederauffrischungs-Frequenz von 135 Hz hat, dann ist das Ergebnis von Gleichung 1 ungefähr 2,7 (d.h. 20 ms/7,4ms - 2,7), was größer ist als 2. Wenn der Frame von Bilddaten zu schnell erzeugt wird, dann kann eine Verzögerung hinzugefügt werden, bevor der Frame von Bilddaten an das Anzeigegerät übermittelt wird, so dass die Wiederauffrischungs-Rate des Anzeigegerätes innerhalb der unteren und der oberen Schranke für die Wiederauffrischungs-Frequenz des Anzeigegeräts fällt. Wenn jedoch der Frame von Bilddaten zu langsam erzeugt wird, dann kann der Frame von Bilddaten wiederum bzw. erneut an das Anzeigegerät ein oder mehrere Male übermittelt werden, so dass die dynamische Wiederauffrischungs-Frequenz des Anzeigegerätes innerhalb der unteren und oberen Schranke für die Wiederauffrischungs-Frequenz des Anzeigegeräts fällt. Es wird geschätzt werden, dass die Zeit zwischen jeder nacheinanderfolgenden Übermittlung des Frames von Bilddaten ungefähr gleich sein sollte, so dass die dazwischenliegende Verzögerung zwischen irgendwelchen zwei aufeinanderfolgenden Wiederauffrischungen des Anzeigegerätes (d.h. die instantane dynamische Wiederauffrischungs-Frequenz) innerhalb der unteren und oberen Schranke für die Wiederauffrischungs-Frequenz des Anzeigegeräts fällt.
-
Die tatsächliche Anzahl von Malen, für die ein Frame von Bilddaten wiederholt auf dem Anzeigegerät präsentiert ist, wird von der Render-Rate der Bilder sowie von anderen Betrachtungen abhängen. Für eine gegebene Schätzung der momentanen Frame-Dauer kann der maximale Wiederholungs-Wert eines vorherigen Frames von Bilddaten berechnet werden als:
-
In Gleichung 2 ist Rmax der maximale Wiederholungs-Wert für den vorherigen Frame von Bilddaten, frame_durationcurr repräsentiert die momentane Frame-Dauer und frame-durationmin repräsentiert die minimale erlaubte Frame-Dauer des Anzeigegeräts. Der Operator rounded_down rundet einfach das Zwischenresultat der Divisionsoperation auf dem nächsten ganzzahligen Wert herunter. Mittels eines Abrundens repräsentiert der maximale Wiederholungs-Wert eine ganze Zahl von Malen, für welche ein Bildframe innerhalb einer gegebenen Frame-Dauer wiederholt werden kann, welche einer dynamischen Wiederauffrischungs-Frequenz unterhalb der oberen Schranke für die Wiederauffrischungs-Frequenz des Anzeigegeräts entspricht.
-
Ähnlich kann für eine gegebene Schätzung der momentanen Frame-Dauer der minimale Wiederholungs-Wert eines vorherigen Frames von Bilddaten berechnet werden als:
-
In Gleichung 3 ist Rmin der minimale Wiederholungs-Wert für den vorangehenden Frame von Bilddaten, frame_durationcurr repräsentiert die momentane Frame-Dauer und frame_durationmax repräsentiert die maximale erlaubte Frame-Dauer des Anzeigegerätes. Der Operator rounded up rundet einfach das Resultat der Divisionsoperation auf den nächsten ganzzahligen Wert hoch. Mittels eines Hochrundens repräsentiert der minimale Wiederholungs-Wert eine ganze Zahl von Malen, für die ein Bildframe innerhalb einer gegebenen Frame-Dauer wiederholt werden kann, welche einer dynamischen Wiederauffrischungs-Frequenz oberhalb der unteren Schranke für die Wiederauffrischungs-Frequenz des Anzeigegeräts entspricht.
-
Es wird geschätzt werden, dass der maximale Wiederholungs-Wert, welcher basierend auf Gleichung 2 berechnet ist, und der minimale Wiederholungs-Wert, welcher basierend auf Gleichung 3 berechnet ist, nicht die anfängliche Präsentation des vorhergehenden Frames von Bilddaten auf dem Anzeigegerät umfassen und nur die Anzahl von Malen repräsentieren, für welche der vorangehende Frame von Bilddaten wiederholt auf dem Anzeigegerät wiederaufgefrischt werden sollte. In einer anderen Ausführungsform kann der „minus eins“-Teil von Gleichungen 2 und 3 entfernt werden, derart dass der maximale Wiederholungs-Wert und der minimale Wiederholungs-Wert eine totale Anzahl von Malen repräsentiert, für welche der vorangehende Frame von Bilddaten auf dem Anzeigegerät wiederaufgefrischt wird, einschließlich der anfänglichen Präsentation des vorangehenden Frames von Bilddaten, sowie alle nachfolgenden Präsentationen von dem vorangehenden Frame von Bilddaten.
-
Der Wiederholungs-Wert kann als eine ganze Zahl innerhalb des Bereiches von [Rmin, Rmax], einschließlich, gewählt werden. In einer Ausführungsform ist der Wiederholungs-Wert als der maximale Wiederholungs-Wert gewählt. Der maximale Wiederholungs-Wert wird der größten dynamischen Wiederauffrischungs-Frequenz des Anzeigegeräts entsprechen, wenn die Wiederauffrischung des Anzeigegerätes mit einem bestimmten Frame von Bilddaten eine ganzzahlige Anzahl von Malen innerhalb einer gegebenen Frame-Dauer wiederholt wird, wobei die Dauer zwischen irgendwelchen zwei aufeinanderfolgenden Wiederauffrischungen gleich verteilt ist. In einer anderen Ausführungsform ist der Wiederholungs-Wert als der minimale Wiederholungs-Wert ausgewählt, um die Chance von Kollisionen mit neuen Bilddaten zu minimieren.
-
In noch einer anderen Ausführungsform ist der Wiederholungs-Wert als irgendein Wert zwischen dem minimalen Wiederholungs-Wert und dem maximalen Wiederholungs-Wert ausgewählt. Der berechnete maximale Wiederholungs-Wert oder minimale Wiederholungs-Wert muss nicht notwendigerweise die tatsächliche Anzahl von Malen sein, für welche der vorangehende Frame von Bilddaten auf dem Anzeigegerät wiederaufgefrischt wird. In einigen Fällen, wo es eine große Disparität bzw. Ungleichheit zwischen der maximal erlaubten Frame-Dauer des Anzeigegeräts und der minimal erlaubten Frame-Dauer des Anzeigegeräts gibt, kann es mehrere ganzzahlige Werte geben, welche die Anzahl von Malen repräsentieren, für welche ein Frame von Bilddaten innerhalb einer gegebenen Dauer wiederholt werden könnte, wobei die resultierende dynamische Wiederauffrischungs-Frequenz des Anzeigegerätes innerhalb der unteren und oberen Schranke für die Wiederholungs-Frequenz des Anzeigegerätes fallen würde. Die tatsächliche Anzahl von Wiederholungen, welche für einen Frame von Bilddaten gewählt ist, kann von anderen Betrachtungen abhängen.
-
Eine solche Betrachtung ist ein Abwägen von Bildqualität und der Chance einer Kollision zwischen Wiederholen des vorangehenden Frames von Bilddaten, während simultan der momentane Frame von Bilddaten empfangen wird. Die meisten Anzeigegeräte haben keine Möglichkeit, eine laufende Präsentation eines Bildes abzubrechen. Wenn ein neues Bild empfangen wird, während ein vorangehendes Bild wiederaufgefrischt wird, muss somit dann das vorangehende Bild vollständig präsentiert werden, bevor das neue Bild auf dem Anzeigegerät präsentiert werden kann. Die Verzögerung zwischen Empfangen des momentanen Frames von Bilddaten und Beenden der Präsentation des vorangehenden Frames von Bilddaten kann zu einer gewissen Menge von bemerkbarem Stottern in dem resultierenden Videostrom führen. Höhere dynamische Wiederauffrischungs-Frequenzen, welche mit höheren Wiederholungs-Werten assoziiert sind, werden die Chance von Kollisionen erhöhen, aber höhere dynamische Wiederauffrischungs-Frequenzen sind typischerweise mit höhere-Qualität-Video assoziiert. Somit gibt es eine Abwägung zwischen einem Auswählen der höchsten möglichen dynamischen Wiederauffrischungs-Frequenz und der Chance eines Einführens einer gewissen Menge von Stottern (stutter).
-
In einer Ausführungsform können andere Betrachtungen ein Überwachen der Frequenz von Kollisionen umfassen, welche mit vorangehenden Bild-Frames assoziiert sind, und ein Vermindern des Wiederholungs-Wertes unterhalb des maximalen Wiederholungs-Wertes umfassen, sobald die Frequenz von Kollisionen über einen Schwellwert ansteigt. In einer anderen Ausführungsform können andere Betrachtungen ein Überwachen einer Varianz in den Frame-Dauern umfassen, welche mit einer Mehrzahl von Bild-Frames assoziiert sind, und ein Vermindern des Wiederholungs-Wertes unterhalb des maximalen Wiederholungs-Wertes umfassen, wenn die Varianz oberhalb eines Schwellwertes ist. Zum Beispiel kann für Computerspiele, welche Bild-Frames mit einer konstanten Frame-Dauer erzeugen, der maximale Wiederholungs-Wert optimal sein, aber für Computerspiele, welche Bild-Frames mit unrelgelmäßiger (erratic) Frame-Dauer erzeugen, kann weniger als der maximale Wiederholungs-Wert besser sein.
-
Bei Schritt 130 wird die Präsentation des vorangehenden Bildes basierend auf dem Wiederholungs-Wert wiederholt. In einer Ausführungsform wiederholt Logik, welche die Anzeige des Frames von Bilddaten treibt, die Präsentation des vorangehenden Bildes eine Anzahl von Malen derart, dass die dynamische Wiederauffrischungs-Frequenz des Anzeigegeräts innerhalb der unteren und der oberen Schranke für die Wiederholungs-Frequenz des Anzeigegeräts fällt. In einer Ausführungsform kann die Anzeigesteuerung innerhalb der GPU den vorangehenden Frame von Bilddaten an das Anzeigegerät dadurch erneut übermitteln, indem die Pixeldaten für den vorangehenden Frame von Bilddaten in dem Videosignal erneut kodiert (reencoding) werden. In einer anderen Ausführungsform kann das Anzeigegerät den vorangehenden Frame von Bilddaten lokal speichern und das Anzeigegerät, entweder durch die Skalierungseinheit oder die Zeitgebungs-Steuerung, kann den Schirm des Anzeigegerätes veranlassen, die Pixel mit dem vorangehenden Frame von Bilddaten eine Anzahl von Malen wiederaufzufrischen.
-
Illustrativere Information wird nun bezüglich verschiedener optionaler Architekturen und Merkmale ausgeführt, mit denen das vorangehende Rahmenwerk implementiert werden kann oder nicht implementiert zu werden braucht, je nach den Wünschen des Benutzers. Es sollte streng bemerkt werden, dass die folgende Information für illustrative Zwecke ausgeführt ist und nicht interpretiert werden sollte, in irgendeiner Weise zu begrenzen. Irgendwelche der folgenden Merkmale können optional mit oder ohne den Ausschluss von anderen beschriebenen Merkmalen inkorporiert werden.
-
2 illustriert ein System 200, welches eine dynamische-Wiederauffrischungs-Frequenz-fähige Anzeige umfasst, in Übereinstimmung mit einer Ausführungsform. In einer Ausführungsform umfasst die Anzeige 210 eine LCD-Tafel 216, welche eine Mehrzahl von Pixelelementen umfasst, wobei jedes Pixelelement eine Mehrzahl von Flüssigkristall-Elementen aufweist, welche einer Mehrzahl von Farbkomponenten entsprechen, (z.B. eine Rot-Komponente, eine Grün-Komponente und eine Blau-Komponente). Die Anzeige 210 kann auch Zeilen-Treiber 212 und Spalten-Treiber 214 zum Steuern jedes der Pixelelemente in der LCD-Tafel 216 umfassen. Die Zeilen-Treiber 212 und die Spalten-Treiber 214 ermöglichen, dass jedes individuelle Pixelelement in der LCD-Tafel 216 adressiert wird und dass jedes Flüssigkristall-Element des Pixelelements eine Spannung daran angelegt hat, um einen Pegel bzw. Level der entsprechenden Farbkomponente, welche mittels des Pixelelements angezeigt ist, zu variieren.
-
Die Anzeige 210 umfasst auch eine Hintergrund-Beleuchtung 218, welche ein oder mehrere kompakte Fluoreszenz-Lichter (CFLs), welche um die Kante oder Kanten der LCD-Tafel 216 angeordnet sind, eine oder mehrere LEDs, die um die Kante oder Kanten der LCD-Tafel 216 angeordnet sind, oder ein Feld von LEDs, das hinter den Pixelelementen der LCD-Tafel 216 angeordnet ist, aufweisen kann. Es wird geschätzt werden, dass in einigen Ausführungsformen die Anzeige 210 eine OLED-Tafel oder AMOLED-Tafel sein kann, welche die Hintergrund-Beleuchtung 218 nicht umfasst.
-
Die Anzeige 210 kann auch eine Zeitgebungs-Steuerung (TCON) 220 und eine Skalierungseinheit 230 umfassen. Die TCON 220 steuert die Zeilen-Treiber 212 und die Spalten-Treiber 214, um die Frames von Bilddaten auf der LCD-Tafel 216 anzuzeigen. Die Skalierungseinheit 230 empfängt ein Videosignal von einer GPU 250 über eine Videoschnittstelle 240. Das Videosignal kann einem bestimmten Videosignalformat entsprechen, wie etwa ein digitales Videosignalformat oder ein analoges Videosignalformat. Beispielhafte digitale Videosignalformate umfassen DVI (Digital Visual Interface), HDMI (High-Definition Multimedia Interface), und dergleichen. Exemplarische Analog-Videosignalformate umfassen NTSC (National Television System Committee), PAL (Phase Alternating Line), VGA (Video Graphics Array), und dergleichen.
-
Das bestimmte Videosignal, welches über die Videoschnittstelle 240 empfangen ist, kann eine Auflösung haben, welche nicht mit einer nativen Auflösung der LCD-Tafel 216 übereinstimmt. Somit ist die Skalierungseinheit 230 konfiguriert, die Bild-Frames, welche innerhalb des Videosignals kodiert sind, zu skalieren, um mit der nativen Auflösung der LCD-Tafel 216 übereinzustimmen. Die Skalierungseinheit 230 kann konfiguriert sein, die Bilddaten in der horizontalen Richtung und/oder der vertikalen Richtung zu skalieren. In einer Ausführungsform kann die Skalierungseinheit 230 die Bild-Frames filtern. In noch einer anderen Ausführungsform, wo die Anzeige 210 einen Direkt-Treiber-Monitor oder eine LCD-Tafel 216 in einem Laptop-Computer aufweist, braucht die Anzeige 210 nicht eine Skalierungseinheit 230 umfassen.
-
Die Skalierungseinheit 230 kann auch die Hintergrund-Beleuchtung 218 steuern. Zum Beispiel kann die Skalierungseinheit 230 einen bestimmten Pegel von Beleuchtung bestimmen, welchen die Hintergrund-Beleuchtung 218 für einen gegebenen Frame von Bilddaten bereitstellen sollte und kann die Hintergrund-Beleuchtung 218 steuern, den bestimmten Pegel von Beleuchtung bereitzustellen. In einer alternativen Ausführungsform kann die Anzeige 210 einen separaten Schaltkreis umfassen, welcher die Hintergrund-Beleuchtung 218 derart steuert, dass die Skalierungseinheit 230 nicht die Hintergrund-Beleuchtung 218 steuert.
-
Die GPU 250 kann Frames von Bilddaten basierend auf 3D-Grundformen (primitives) rendern, welche mittels einer Anwendung definiert sind, welche auf einer CPU (nicht explizit gezeigt) ausführt. Die Frames von Bilddaten können Pixeldaten umfassen, welche in einem Frame-Puffer gespeichert sind, welcher ein Teil von Speicher ist, welcher alloziert ist, um Pixeldaten zu speichern, welche benutzt werden, um das Videosignal zu erzeugen, welches über die Videoschnittstelle 240 übermittelt wird. In einer Ausführungsform kann die GPU 250 mit einem Dual-Frame-Puffer (oder Ping-Pong-Puffer) assoziiert sein, welcher einen ersten Teil von Frame-Puffer umfasst, welcher Pixeldaten für einen vorangehend gerenderten Frame speichert, welcher aus dem Speicher gelesen ist, und innerhalb des Videosignals kodiert ist, welches über die Videoschnittstelle 240 übermittelt ist, und einen zweiten Teil von Frame-Puffer, welcher Pixeldaten für den momentanen Frame-Speicher speichert, welcher mittels der GPU 250 gerendert ist. Sobald die GPU 250 das Rendern des momentanen Frames beendet hat, können die Rollen des ersten Teils des Frame-Puffers und des zweiten Teils des Frame-Puffers derart getauscht werden, dass der zweite Teil des Frame-Puffers Pixeldaten für den kürzlich gerenderten Frame speichert, welcher aus Speicher gelesen ist und innerhalb des Videosignals kodiert ist, welches über die Videoschnittstelle 240 übermittelt ist, und derart dass der erste Teil des Frame-Puffers Pixeldaten für den nächsten Frame speichert, welcher mittels der GPU 250 gerendert wird. Die Rollen des ersten und des zweiten Teils von dem Frame-Puffer können alternieren, nachdem jeder Frame gerendert ist.
-
3A und 3B illustrieren ein Beispiel von Frame-Wiederholung mit einer minimalen Wiederauffrischungs-Frequenz von 30 Hz in Übereinstimmung mit einer Ausführungsform. Ein Anzeigegerät, wie etwa eine Anzeige 210, kann eine minimale Wiederauffrischungs-Frequenz von 30 Hz und eine maximale Wiederauffrischungs-Frequenz von 125 Hz haben. Wie in einem ersten Satz von Zeitdiagramm 301 in 3A gezeigt ist, kann eine Folge von Frames von Bilddaten mittels der GPU 250 erzeugt werden und an die Anzeige 210 über die Schnittstelle 240 übermittelt werden. Ein erster Frame wird an die Anzeige 210 während eines ersten Teils der ersten Frame-Dauer (d.h. eine Zeit zwischen einem Empfangen des Startes des ersten Frames von Bilddaten und einem Start eines Empfangens des zweiten Frames von Bilddaten) übermittelt. Das „EOF“-Kennzeichen repräsentiert einen Ende-von-Frame-Indikator in dem Videosignal. Der Ende-von-Frame-Indikator macht deutlich, dass der gesamte Frame von Bilddaten bei einer bestimmten fixen Frequenz, welche mit der Schnittstelle 240 assoziiert ist, übermittelt werden kann und daher kann der Frame von Bilddaten Übermittlung vor dem Ende der ersten Frame-Dauer beenden. Die Zeit zwischen einem Empfangen des Ende-von-Frame-Indikators für den momentanen Frame von Bilddaten und dem Start des nächsten Frames von Bilddaten innerhalb des Videosignals kann als eine Untätigkeitszeit bezeichnet werden, wo Bilddaten über die Schnittstelle 240 nicht empfangen werden.
-
Wie in 3A gezeigt ist, umfasst der erste Satz von Zeitdiagrammen 301 ein Eingabesignal. Das Eingabesignal umfasst kodierte Daten für drei Bild-Frames, welche mittels der Anzeige 210 empfangen sind, wobei jeder Frame von Bilddaten ungefähr alle 25 ms ankommt, was einer dynamischen Wiederauffrischungs-Frequenz von 40 Hz entspricht. Weil die minimale Wiederauffrischungs-Frequenz der Anzeige 30 Hz ist, entsprechen die Frames von Bilddaten, welche bei der Anzeige 210 empfangen sind, einer dynamischen Wiederauffrischungs-Frequenz, welche größer ist als die untere Schranke für die Wiederauffrischungs-Frequenz der Anzeige 210 (d.h. 30 Hz) und kleiner als die obere Schranke für die Wiederauffrischungs-Frequenz der Anzeige 210 (d.h. 125 Hz). Daher können die Frames von Bilddaten, welche innerhalb des Eingabesignals kodiert sind, auf der LCD-Tafel 216 präsentiert werden, wie bzw. wenn die Frames von Bilddaten empfangen sind, wie mittels des Ausgabesignals illustriert, welches in dem ersten Satz von Zeitdiagrammen 301 umfasst ist. Mit anderen Worten muss keiner der Frames von Bilddaten auf der LCD-Tafel 216 mehrere Male präsentiert werden (d.h. wiederaufgefrischt werden), um das Erfordernis zu erfüllen, bei einer dynamischen Wiederauffrischungs-Frequenz innerhalb der unteren und oberen Schranke für die Wiederauffrischungs-Frequenz der Anzeige 210 präsentiert zu werden.
-
Im Gegensatz dazu kann eine zweite Folge von Frames von Bilddaten mittels der GPU 250 bei einer niedrigeren Rate erzeugt sein. Ein zweiter Satz von Zeitdiagrammen 302 in 3A umfasst ein Eingabesignal, welches kodierte Daten für zwei Bild-Frames, welche mittels der Anzeige 210 empfangen sind, umfasst, wobei jeder Frame von Bilddaten ungefähr alle 50 ms ankommt, was einer dynamischen Wiederauffrischungs-Frequenz von 20 Hz entspricht. Weil die untere Schranke für die Wiederauffrischungs-Frequenz der Anzeige 30 Hz ist, entsprechen die Frames von Bilddaten, welche in dem Eingabesignal empfangen sind, einer dynamischen Wiederauffrischungs-Frequenz, welche geringer ist als die untere Schranke für die Wiederauffrischungs-Frequenz der Anzeige 210 (d.h. 30 Hz). Daher muss jeder Frame von Bilddaten, welcher in dem Eingabesignal kodiert ist, auf der LCD-Tafel 216 mehrere Male präsentiert werden, wie mittels des Ausgabesignals illustriert ist, welches in dem zweiten Satz von Zeitdiagramm 302 umfasst ist. In diesem Beispiel kann jeder Frame von Bilddaten an die LCD-Tafel 216 ein zusätzliches Mal (d.h. eine Wiederholung) wiederaufgefrischt werden, um zu einer effektiven dynamischen Wiederauffrischungs-Frequenz der Anzeige 210 von 40 Hz zu führen, wenn verglichen mit der Eingabe-Frame-Rate von 20 Hz. Es wird geschätzt werden, dass der Wiederholungs-Wert, welcher mittels des zweiten Satzes von Zeitdiagrammen illustriert ist, 1 ist, was innerhalb des Bereiches von [1, 5] fällt, wobei Rmin 1 ist (d.h. (50 ms/33.3 ms).aufgrundet - 1 = 1) und Rmax ist 5 (d.h. (50 ms/8 ms).abgerundet - 1 = 5). Wie gezeigt ist, ist 33,3 ms ein approximativer Wert, welcher sich auf 1/30-tel einer Sekunde bezieht, entsprechend der minimalen Wiederauffrischungs-Frequenz von 30 Hz.
-
Wie in 3B gezeigt ist, kann in einigen Fällen die Dauer zwischen nachfolgenden Frames in dem Eingabesignal so groß sein, dass die Frames von Bilddaten auf der LCD-Tafel 216 mehr als einmal wiederholt wiederaufgefrischt werden müssen, um die Erfordernisse zu erfüllen, innerhalb der unteren und oberen Schranke für die Wiederauffrischungs-Frequenz der Anzeige 210 zu bleiben. Wie z.B. in dem Eingabesignal, welches in dem dritten Satz von Zeitdiagrammen 303 umfasst ist, gezeigt ist, kann eine erste Frame-Dauer 100 ms sein, was einer dynamischen Wiederauffrischungs-Frequenz von 10 Hz entspricht - gut unterhalb der minimalen Wiederauffrischungs-Frequenz der Anzeige 210. Um die Erfordernisse zu erfüllen, innerhalb der unteren und oberen Schranke für die Wiederauffrischungs-Frequenz der Anzeige 210 zu bleiben, kann der erste Frame von Bilddaten eine Anzahl von Malen innerhalb des Bereiches [2, 11] wiederholt werden, wobei Rmin 2 ist (d.h. (100 ms/33.3 ms).aufgerundet - 1 = 2) und wobei Rmax 11 ist (d.h. (100 ms/8 ms).abgerundet - 1 = 11). Ein erstes Ausgabesignal, welches in dem dritten Satz von Zeitdiagrammen 303 umfasst ist, zeigt, dass der erste Frame von Bilddaten drei Male wiederholt wird, was einer effektiven dynamischen Wiederauffrischungs-Frequenz von 40 Hz entspricht. Ein zweites Ausgabesignal, welches in dem dritten Satz von Zeitdiagrammen 303 umfasst ist, zeigt den ersten Frame von Bilddaten, wie er zwei Male wiederholt ist, was einer effektiven dynamischen Wiederauffrischungs-Frequenz von 30 Hz entspricht. Beide Ausgabesignale, welche in dem dritten Satz von Zeitdiagrammen 303 umfasst sind, erfüllen die Erfordernisse der Anzeigen 210.
-
Obwohl es nicht explizit gezeigt ist, können andere Frames den Frames folgen, welche in den Eingabesignalen in jedem der drei Sätze von Zeitdiagrammen gezeigt sind. Obwohl jeder Frame gezeigt ist, in einer Weise wiederholt zu werden, welche mit einer konstanten dynamischen Wiederauffrischungs-Frequenz assoziiert ist, ist es ferner geschätzt, dass die Zeitverzögerung zwischen Frames variabel sein kann und dass die Frames für ein bestimmtes Eingabesignal in einer verschiedenen Anzahl von Malen wiederholt werden können, um variierende dynamische Wiederauffrischungs-Frequenzen aufzunehmen.
-
4 illustriert den Betrieb der GPU 250 von 2 in Übereinstimmung mit einer Ausführungsform. In einer Ausführungsform überwacht die GPU 250 die Render-Rate von Frames von Bilddaten, welche mittels der GPU 250 erzeugt sind, und stellt die effektive dynamische Wiederauffrischungs-Frequenz der Anzeige 210 dadurch ein, dass sie wiederholt jeden Frame von Bilddaten an die Anzeige ein oder mehrere Male übermittelt. In solch einer Ausführungsform ist die Logik zum Einstellen der dynamischen Wiederauffrischungs-Frequenz der Anzeige 210 in der GPU 215 implementiert, entweder innerhalb einer dedizierten Hardware-Einheit, einer programmierbaren Logik-Einheit, welche Anweisungen ausführt, welche in einem Software-Programm umfasst sind, oder einer Kombination von Hardware und Software.
-
Wie in 4 gezeigt ist, kann die GPU 250 mit einem Speicher 410 verbunden sein. Der Speicher 410 kann ein synchroner dynamischer willkürlicher Zugriffsspeicher (SDRAM) sein, welcher konfiguriert ist, Daten verfügbar für die GPU 250 zu speichern. In einer Ausführungsform ist der Speicher 410 ein dedizierter Videospeicher, welcher nur mittels der GPU 250 zugreifbar ist. In einer anderen Ausführungsform ist der Speicher 410 ein Systemspeicher, welcher zwischen einer CPU und einer GPU 250 gemeinsam benutzt wird bzw. geteilt wird.
-
Die GPU 250 kann Befehle und Daten von einer CPU über die Schnittstelle 401 empfangen. Die Schnittstelle 401 kann eine z.B. PCIe (Peripheral Component Interconnect Express)-Schnittstelle sein, welche der GPU 250 ermöglicht, mit der CPU und/oder einem Systemspeicher über einen Bus (nicht explizit gezeigt) zu kommunizieren. Die GPU 250 kann auch ein oder mehrere Kerne 402 umfassen, welche die Daten basierend auf den Befehlen verarbeiten. Jeder Kern 402 kann Multi-Threaded sein, um mehrere Daten in paralleler Weise zu verarbeiten. In einer Ausführungsform haben die Kerne 402 eine SIMD (Single-Instruction, Multiple Data)-Architektur. In SIMD-Architekturen prozessiert eine Mehrzahl von Verarbeitungseinheiten verschiedene Daten basierend auf derselben Anweisung. In einer anderen Ausführungsform haben die Kerne 402 eine MIMD-(Multiple-Instruction, Multiple Data)-Architektur. In MIMD-Architekturen verarbeitet eine Mehrzahl von Verarbeitungseinheiten verschiedene Daten basierend auf verschiedenen Anweisungen, welche auf jeder Verarbeitungseinheit geplant sind. In noch einer anderen Ausführungsform haben die Kerne 402 eine SIMT-(Single-Instruction, Multiple-Thread)-Architektur. In SIMT-Architekturen prozessiert eine Mehrzahl von Verarbeitungseinheiten eine Mehrzahl von betreffenden Threads, wobei jeder Thread dieselben Anweisungen konfiguriert hat, um verschiedene Daten zu verarbeiten, aber jeder Thread ist befähigt, unabhängig zu verzweigen. Mit anderen Worten können individuelle Threads maskiert werden, um eine Ausführung von gewissen Anweisungen in SIMT-Architekturen zu verhindern. Dies ermöglicht bedingte Ausführung der Anweisungen, welche mit der Mehrzahl von Threads assoziiert sind. Die GPU 250 kann auch eine Anzeigesteuerung 404 umfassen, welche konfiguriert ist, das Videosignal über die Schnittstelle 240 gemäß der Spezifikation einer bestimmten Videosignal-Schnittstelle zu erzeugen. Die Anzeigesteuerung 404 kann die Bilddaten von einem Frame-Puffer in dem Speicher 410 lesen und die Werte, welche in dem Frame-Puffer gespeichert sind, in Signale konvertieren, welche über die Schnittstelle 240 übermittelt sind.
-
In einer Ausführungsform kann die GPU 250 konfiguriert sein, das Verfahren 100 von 1 zu implementieren. Insbesondere kann die GPU 250 Frames von Bilddaten basierend auf Befehlen und Daten rendern, welche von einer CPU über die Schnittstelle 401 empfangen sind. Die GPU 250 kann die gerenderten Frames von Bilddaten in dem Frame-Puffer in dem Speicher 410 speichern. Nachdem jeder Frame von Bilddaten gerendert ist, kann die GPU 250 ein Videosignal erzeugen, welches über die Schnittstelle 240 übermittelt ist, um zu veranlassen, dass der Frame von Bilddaten auf der Anzeige 210 präsentiert wird. Jeder Frame von Bilddaten, welcher an den Frame-Puffer gerendert ist, kann in das Videosignal ein oder mehrere Male kodiert werden, um die dynamische Wiederauffrischungs-Frequenz der Anzeige 210 einzustellen.
-
Die GPU 250 kann den vorangehenden Frame von Bilddaten in das Videosignal kodieren, um eine anfängliche Präsentation des vorangehenden Bild-Frames auf der LCD-Tafel 216 der Anzeige 210 zu bewirken. Anstatt darauf zu warten, dass der momentane Frame von Bilddaten vollständig in den Frame-Puffer gerendert wird, um den nächsten Bild-Frame in das Videosignal zu kodieren, kann die GPU 250 bestimmen, ob der vorangehende Frame von Bilddaten wiederholt werden sollte. Mit anderen Worten kann die GPU 250 konfiguriert sein, die momentane Frame-Dauer, welche mit einem momentanen Bild-Frame assoziiert ist, welcher in den Frame-Puffer mittels der GPU 250 gerendert ist, abzuschätzen bzw. zu schätzen, und kann dann das Kodieren des vorangehenden Frames von Bilddaten in das Videosignal basierend auf der abgeschätzten momentanen Frame-Dauer wiederholen. Die GPU 250 kann eine Heuristik benutzen, um die momentane Frame-Dauer zu schätzen. Zum Beispiel kann die Heuristik auf Information basieren, welche die bekannten Frame-Dauern für eine oder mehrere vorangehende Frames von Videodaten betreffen. Wie es hierin benutzt wird, kann sich der Ausdruck „Frame-Dauer“ auf die Zeit beziehen, für welche ein bestimmter Frame von Bilddaten auf der LCD-Tafel 216 der Anzeige 210 präsentiert ist, was mit der Zeit korreliert, welche für die GPU 250 erfordert ist, um den nächsten Frame von Bilddaten zu rendern. Die GPU 250 kann die momentane Frame-Dauer unter Benutzung irgendeiner verfügbaren Technik abschätzen.
-
In einer Ausführungsform speichert die GPU 250 einen Zeitstempel, welcher mit jedem Frame von Bilddaten assoziiert ist, welche an dem Frame-Puffer gerendert sind. Zum Beispiel kann ein letzter Befehl, welcher mit dem Rendern jedes Frames assoziiert ist, auf eine Systemuhr bzw. einem Systemtakt zugreifen und kann eine Zeit, welche mittels des Systemtaktes repräsentiert ist, in einem Register, einem lokalen gemeinsam benutzten Speicher (z.B. statischer RAM oder SRAM umfasst auf dem Siliziumsubstrat der GPU 250), oder in einem externen Speicher speichern, wie etwa Speicher 410. Die Zeitstempel können genutzt werden, um eine Zeit zwischen dem Rendern von irgend zwei Frames von Bilddaten zu berechnen.
-
In einer Ausführungsform kann die GPU 250 eine Schätzung für die momentane Frame-Dauer dadurch bestimmen, dass eine Render-Zeit berechnet wird, welche mit dem vorangehenden Frame von Bilddaten assoziiert ist. In einer Ausführungsform wird die Render-Zeit dadurch berechnet, dass ein Zeitstempel, welcher mit dem vorangehenden Frame von Bilddaten assoziiert ist, von einem Zeitstempel abgezogen wird, welcher mit Frame von Bilddaten assoziiert ist, welcher unmittelbar dem vorangehenden Frame von Bilddaten voranging. Die Render-Zeit, welche erforderlich ist, um zwei angrenzende Frames von Bilddaten in einem Videostrom zu rendern, ist ähnlich, wenn der Inhalt der zwei Bild-Frames ähnlich ist und die Verarbeitung des Inhalts ähnlich ist - was sehr oft der Fall ist. Daher kann die Render-Zeit für den vorangehenden Frame von Bilddaten eine gute Schätzung für die Render-Zeit für den momentanen Frame von Bilddaten bereitstellen, was repräsentativ für die momentane Frame-Dauer ist.
-
In einer anderen Ausführungsform kann die GPU 250 eine Schätzung für die momentane Frame-Dauer dadurch schätzen, dass eine mittlere Render-Zeit berechnet wird, welche mit N Frames von Bilddaten assoziiert ist. Die mittlere Render-Zeit repräsentiert ein sich bewegendes Mittel basierend auf den Render-Zeiten, welche mit den letzten N Frames von Bilddaten assoziiert sind. Die mittlere Render-Zeit kann in dieser Ausführungsform dadurch berechnet werden, dass eine Differenz zwischen einem Zeitstempel, welcher mit einem N-ten Frame von Bilddaten in der Mehrzahl von Frames von Bilddaten assoziiert ist, von einem Zeitstempel, welcher mit dem vorangehenden Frame von Bilddaten in der Mehrzahl von Frames von Bilddaten assoziiert ist, gefunden wird und die Differenz durch den Wert von N geteilt wird. Es wird geschätzt werden, dass die N Frames N angrenzende Frames von Bilddaten sind und dass der vorangehende Frame von Bilddaten auf der Anzeige 210 N-1 Frames nach dem N-ten Frame von Bilddaten präsentiert wird. Die mittlere Render-Zeit kann als eine Schätzung für die momentane Frame-Dauer ausgewählt werden.
-
Andere Heuristiken können benutzt werden, um eine Schätzung für die momentane Frame-Dauer zu berechnen. Zum Beispiel kann die Frame-Dauer, welche mit dem vorangehenden Frame assoziiert ist, mit einem Faktor multipliziert werden (z.B. 90%, 105%, etc.), um die Schätzung der momentane Frame-Dauer einzustellen, um leichte Variationen in der Render-Zeit zwischen verschiedenen Frames von Bilddaten zu erlauben. Andere Verfahren zum Abschätzen der momentanen Frame-Dauer sind innerhalb des Geltungsbereichs der vorliegenden Offenbarung betrachtet.
-
Sobald die GPU 250 eine Schätzung für die momentane Frame-Dauer berechnet hat, kann die GPU 250 einen Wiederholungs-Wert auswählen, welcher innerhalb des minimalen und maximalen Wiederholungs-Wertes gemäß Gleichungen 2 und 3 fällt, wie sie oben ausgeführt sind. In einer Ausführungsform kann die GPU 250 die minimale und maximale erlaubte Frame-Dauer der Anzeige 210 von EDID (Extended Display Identification Data)-Information abrufen, welches mittels der Anzeige 210 an die GPU 250 über die Schnittstelle 240 übermittelt ist. In anderen Ausführungsformen kann die GPU 250 mit einem Treiber assoziiert sein, welcher konfiguriert ist, die minimale und maximale erlaubte Frame-Dauer für die Anzeige 210 von einem Speicher abzurufen. Die minimale und maximale erlaubte Frame-Dauer kann manuell von einem Benutzer eingegeben werden, wenn der Treiber konfiguriert wird, kann automatisch über eine Netzwerkverbindung, wie etwa das Internet abgerufen werden oder kann in einer Datenbank umfasst sein, welche mit dem Treiber assoziiert ist, welche verschiedene Anzeigen mit verschiedenen minimalen und maximalen erlaubten Frame-Dauern gemäß den Hersteller-Spezifikationen assoziiert.
-
Nachdem die GPU 250 den minimalen und maximalen Wiederholungs-Wert berechnet hat und einen Wiederholungs-Wert innerhalb des Bereiches ausgewählt hat, kann die GPU 250, über die Anzeigesteuerung 404, den vorangehenden Frame von Bilddaten an die Anzeige 210 dadurch übermitteln, dass der vorangehende Frame von Bilddaten in das Videosignal über die Schnittstelle 240 kodiert wird. Die GPU 250 kann wiederholt den vorangehenden Frame von Bilddaten an die Anzeige 210 basierend auf dem Wiederholungs-Wert vermitteln. In einer Ausführungsform übermittelt die GPU 250 den vorangehenden Frame von Bilddaten erneut über die Schnittstelle 240 eine Anzahl von Malen gleich dem maximalen Wiederholungs-Wert.
-
Es wird geschätzt werden, dass die Anzahl von Malen, für die der vorangehende Frame von Bilddaten auf der Anzeige 210 zu präsentieren ist, unbekannt ist, wenn der momentane Frame von Bilddaten gerendert ist, weil die finale Render-Zeit für den momentanen Frame von Bilddaten unbekannt ist. Die Schätzung für die momentane Frame-Dauer ist einfach eine Schätzung bzw. Mutmaßung, wie lange der vorangehende Frame von Bilddaten mittels der Anzeige 210 präsentiert wird. Wenn die momentane Frame-Dauer fehlerhaft abgeschätzt ist und der momentane Frame von Bilddaten an dem Frame-Puffer schneller als erwartet gerendert worden ist, braucht der vorangehende Frame von Bilddaten nicht so viele Male wie anfänglich geplant wiederholt werden und der momentane Frame von Bilddaten wird mittels der Anzeige 210 sobald wie möglich präsentiert werden. Wenn ähnlich die momentane Frame-Dauer fehlerhaft abgeschätzt ist und der momentane Frame von Bilddaten nicht zu der erwarteten Zeit an den Frame-Puffer gerendert worden ist, kann der vorangehende Frame von Bilddaten mehrere Male als ursprünglich geplant (d.h. mehr als die Anzahl von Malen, welche durch den Wiederholungs-Wert gegeben ist) wiederholt werden.
-
5 illustriert den Betrieb der Skalierungseinheit 230 von 2 in Übereinstimmung mit einer anderen Ausführungsform. In einer anderen Ausführungsform ist die Logik zum Sicherstellen, dass das Anzeigegerät die LCD-Tafel 216 innerhalb der unteren und oberen Schranke für die Wiederholungs-Frequenz des Anzeigegeräts wiederauffrischt, innerhalb des Anzeigegeräts implementiert. Zum Beispiel kann die Anzeige 210 konfiguriert sein, die dynamische Wiederauffrischungs-Frequenz der Anzeige 210 dadurch einzustellen, dass die LCD-Tafel 216 veranlasst wird, mit den Bilddaten für den vorangehenden Bild-Frame wiederholt aufgefrischt zu werden, um die dynamische Wiederauffrischungs-Frequenz innerhalb der unteren und oberen Schranke für die Wiederauffrischungs-Frequenz der Anzeige 210 zu halten. In solch einer Ausführungsform kann die GPU 250 einfach jeden Bild-Frame an die Anzeige 210 einmal über die Schnittstelle 240 übermitteln und dann handhabt die Anzeige 210 die Logik zum Wiederholen der Präsentation der Bild-Frames. In einer Ausführungsform ist die Logik in der Skalierungseinheit 230 implementiert.
-
Wieder ist die Skalierungseinheit 230 konfiguriert, die Frames von Bilddaten, welche in den Videosignalen kodiert sind, welche über die Schnittstelle 240 empfangen sind, zu skalieren, um mit einer nativen Auflösung der Anzeige 210 übereinzustimmen. Wie in 5 gezeigt ist, kann die Skalierungseinheit 230 einen Skalierer 510 und einen lokalen Speicher 520 umfassen. Die Skalierungseinheit 230 kann eine fixierte-Funktion-Hardware-Einheit sein, welche auf einem ASIC (Anwendungs-spezifischen integrierten Schaltkreis) verkörpert ist, welcher in der Anzeige 210 umfasst ist. In einer anderen Ausführungsform kann die Skalierungseinheit 230 auf einem größeren ASIC umfasst sein, welcher die TCON 220 umfasst. In einer Ausführungsform umfasst der lokale Speicher 520 Auf-Chip-DRAM, welcher benutzt wird, um Bilddaten zu speichern. In einer anderen Ausführungsform umfasst der lokale Speicher 520 einen Zwischenspeicher, welcher mit Off-Chip-DRAM assoziiert ist, zugreifbar mittels der Skalierungseinheit 230 über eine Schnittstelle. Bilddaten können in dem Off-Chip-DRAM gespeichert sein und in den Zwischenspeicher wie benötigt geholt werden.
-
Der Skalierer 510 kann jeden Frame von Bilddaten bei einer Auflösung erhalten, welche mittels der GPU 250 erzeugt ist. Der Skalierer 510 kann die Auflösung der Frames von Bilddaten dadurch bestimmen, dass er das Videosignal analysiert (d.h. Zählen der Anzahl von Pixeln zwischen horizontalen Synchronisations-Signalen und/oder vertikalen Synchronisations-Signalen), oder der Skalierer 510 kann ein Konfigurations-Signal von der GPU 250 über die Schnittstelle 240 empfangen, welche eine Auflösung der Frames von Bilddaten spezifiziert, welche über die Schnittstelle 240 übermittelt sind. Der Skalierer 510 kann dann die Frames von Bilddaten von der ursprünglichen Auflösung, welche mittels der GPU 250 bereitgestellt ist, auf die native Auflösung der Anzeige 210 skalieren. Wenn die ursprüngliche Auflösung mit der nativen Auflösung übereinstimmt, dann braucht kein Skalieren der Bilddaten erforderlich sein. Die skalierten Bilddaten können über, z.B. Interpolieren von einem oder mehreren Werten in den ursprünglichen Bilddaten, um Werte für jede Pixelstelle in dem skalierten Bilddaten bei der nativen Auflösung zu erzeugen, generiert werden. Die Frames von Bilddaten können in dem lokalen Speicher 520 gespeichert werden und gefiltert werden (z.B. interpoliert, etc.), um skalierte Bilddaten für die TCON 220 zu erzeugen, um auf der LCD-Tafel 216 angezeigt zu werden.
-
In einer Ausführungsform ist die Skalierungseinheit 230 konfiguriert, dynamische Frame-Wiederholung basierend auf der minimal und maximal erlaubten Frame-Dauer der Anzeige 210 handzuhaben. Die Anzeige 210 kann konfiguriert sein, um sicherzustellen, dass die LCD-Tafel 216 bei einer Rate wiederaufgefrischt ist, welche zwischen die untere und obere Schranke für die Wiederauffrischungs-Frequenz der Anzeige fällt, obwohl das hereinkommende Videosignal nicht diesen Erfordernissen entsprechen muss. In solch einer Ausführungsform kann die GPU 250 konfiguriert sein, einfach die Frames von Bilddaten an die Anzeige 210 zu übermitteln, wenn die Frames von Bilddaten vollständig in den Frame-Puffer gerendert worden sind. Jeder Frame von Bilddaten kann nur bzw. braucht nur einmal an die Anzeige 210 übermittelt werden. Sobald die Skalierungseinheit 230 veranlasst hat, dass ein vorangehender Frame von Bilddaten auf der LCD-Tafel 216 präsentiert ist, kann die Skalierungseinheit 230 eine Schätzung für die momentane Frame-Dauer berechnen.
-
In einer Ausführungsform bestimmt die Skalierungseinheit 230 die Frame-Dauern, welche mit jedem Frame von Bilddaten assoziiert sind, welche in dem Videosignal umfasst sind, indem eine Verzögerung zwischen dem Start jedes Frames von Bilddaten, welche mittels der Skalierungseinheit 230 über die Schnittstelle 240 empfangen sind, unter Benutzung, z.B. eines Systemtaktes, welcher in der Anzeige 210 umfasst ist und Zeitstempel, welche mit den Frames von Bilddaten assoziiert sind, welche in dem Speicher 420 gespeichert sind, berechnet wird. Der Start von jedem Frame von Bilddaten kann mittels eines vertikalen Synchronisations-Signals, welches in dem Videosignal umfasst ist, charakterisiert werden, welches die Anzeige 210 veranlasst, einen Zeitstempel in dem Speicher 420 zu speichern, welcher eine Zeit anzeigt, welche mit dem Start dieses Frames von Bilddaten assoziiert ist.
-
In einer anderen Ausführungsform übermittelt die GPU 250 Metadaten, welche mit jedem Frame assoziiert sind, welche die Frame-Dauer für den vorangehenden Frame von Bilddaten in dem Videosignal, welches über die Schnittstelle 240 übermittelt ist, umfasst. Die Skalierungseinheit 230 liest die Frame-Dauern von dem Videosignal und bestimmt eine Schätzung für die momentane Frame-Dauer basierend auf einer oder mehreren Frame-Dauern, welche in dem Videosignal empfangen sind. Sobald die Skalierungseinheit 230 eine Schätzung für die momentane Frame-Dauer bestimmt hat, kann die Skalierungseinheit 230 einen minimalen und einen maximalen Wiederholungs-Wert für den vorangehenden Frame von Bilddaten berechnen sowie einen Wiederholungs-Wert auswählen, welcher innerhalb des berechneten Bereiches fällt.
-
Dann kann die Skalierungs-Einheit 230 veranlassen, dass die skalierten Bilddaten für den vorangehenden Bild-Frame wiederholt an die TCON 220 übermittelt werden, um zu veranlassen, dass die skalierten Bilddaten für den vorangehenden Bild-Frame wiederholt auf der LCD-Tafel 216 präsentiert werden. Die Anzahl von Malen, für die die Skalierungseinheit 230 die skalierten Bilddaten für den vorangehenden Frame an die TCON 220 übermittelt, hängt von dem Wiederholungs-Wert ab. Wiederum, wenn die Schätzung für die momentane Frame-Dauer, welche mittels der Skalierungseinheit 230 berechnet ist, fehlerhaft ist (d.h. der nächste Frame von Bilddaten ist über die Schnittstelle 240 entweder vor oder nach der abgeschätzten Ankunftszeit empfangen worden), dann kann die Skalierungseinheit 230 die skalierten Bilddaten für den vorangehenden Bild-Frame an die TCON 220 entweder eine geringere oder eine größere Anzahl von Malen als ursprünglich geplant basierend auf dem Wiederholungs-Wert übermitteln.
-
6 illustriert den Betrieb der TCON 220 von 2 in Übereinstimmung mit einer anderen Ausführungsform. In noch einer anderen Ausführungsform ist die Logik zum Sicherstellen, dass das Anzeigegerät die LCD-Tafel 216 innerhalb der unteren und oberen Schranke für die Wiederauffrischungs-Frequenz des Anzeigegeräts wieder auffrischt, innerhalb der TCON 220 anstatt der Skalierungseinheit 230 implementiert.
-
Die TCON 220 umfasst eine Steuereinheit 610 und Speicher 620. Der Speicher 620 kann DRAM und/oder Register umfassen. Die TCON 220 kann eine fixe-Funktion-Hardware-Einheit sein, welche auf einem ASIC (Anwendungs-spezifische integrierte Schaltung) verkörpert ist, welcher in der Anzeige 210 umfasst ist. In einer anderen Ausführungsform kann die TCON 220 auf einem größeren ASIC umfasst sein, welcher die Skalierungseinheit 230 umfasst. Die Steuereinheit 610 ist konfiguriert, Videosignale zu Zeilen-Treibern 212 und Spalten-Treibern 214 basierend auf den skalierten Bilddaten zu übermitteln, welche von der Skalierungseinheit 230 empfangen sind. Die TCON 220 empfängt einen Frame von skalierten Bilddaten von der Skalierungseinheit 230, wo der Frame von skalierten Bilddaten empfangen ist, z.B. in nach Größe geordneter Zeile, einen Komponenten-Wert zu einer Zeit. Die Steuereinheit 610 adressiert dann spezifische Pixel unter Benutzung der Zeilen-Treiber 212 und der Spalten-Treiber 214, um den Wert jedes Pixels in der LCD-Tafel 216 basierend auf den skalierten Bilddaten zu ändern.
-
Sobald die TCON 220 veranlasst hat, dass der Frame von skalierten Bilddaten für den vorangehenden Bild-Frame auf der LCD-Tafel 216 präsentiert ist, kann die TCON 220 eine Schätzung für die momentane Frame-Dauer in einer ähnlichen Weise berechnen, zu der Weise, welche mittels der Skalierungseinheit implementiert ist, oben beschrieben. Mit anderen Worten kann die TCON 220 Verzögerungszeiten zwischen einem Empfangen jedes Frames von skalierten Bilddaten von der Skalierungseinheit 230 berechnen und dann die momentane Frame-Dauer basierend auf den Verzögerungszeiten abschätzen, welche mit einem oder mehreren vorangehenden Frames von skalierten Bilddaten assoziiert sind. Die TCON 220 kann dann diese Schätzung der momentanen Frame-Dauer benutzen, um einen minimalen und einen maximalen Wiederholungs-Wert für den vorangehenden Frame von Bilddaten zu berechnen sowie einen Wiederholungs-Wert auszuwählen, welcher innerhalb des berechneten Bereiches fällt. Schließlich kann die TCON 220 veranlassen, dass der vorangehende Frame von skalierten Bilddaten wiederholt auf der LCD-Tafel 216 basierend auf dem maximalen Wiederholungs-Wert präsentiert wird.
-
In einer Ausführungsform kann die TCON 220 mit einem Wiederauffrischungs-Puffer assoziiert sein, welcher die skalierten Bilddaten für den vorangehenden Bild-Frame speichert, wenn die skalierten Bilddaten von der Skalierungseinheit 230 empfangen werden. Der Wiederauffrischungs-Puffer kann auf einem ASIC in Speicher 620 implementiert sein. In einer anderen Ausführungsform kann der Wiederauffrischungs-Puffer in einem Off-Chip-Speicher implementiert sein, welcher mittels der TCON 220 über einen Zwischenspeicher in Speicher 620 und eine Speicher-Schnittstelle zugreifbar ist. Zum Beispiel kann der Wiederauffrischungs-Puffer innerhalb eines externen DRAM implementiert sein und Teile des Wiederauffrischungs-Puffers können in einen Zwischenspeicher in Speicher 620 wie benötigt geholt werden. Die gespeicherten skalierten Bilddaten können dann mittels der TCON 220 gelesen werden, um den vorangehenden Bild-Frame auf der LCD-Tafel 216 ein oder mehrere zusätzliche Male zu präsentieren.
-
Alternativ kann der Wiederauffrischungs-Puffer mittels der Skalierungseinheit 230 gemanaged werden. Anstatt die skalierten Bilddaten von einem Speicher zu lesen, welcher mittels der TCON 220 zugreifbar ist, kann die TCON 220 konfiguriert sein, ein Signal an die Skalierungseinheit 230 zu übermitteln, welches die Skalierungseinheit 230 veranlasst, die skalierten Bilddaten für den vorangehenden Bild-Frame an die TCON 220 erneute zu übermitteln, derart dass der vorangehende Bild-Frame an die LCD-Tafel 216 wieder aufgefrischt wird. Mit anderen Worten kann der Speicher 520, welcher mit der Skalierungseinheit 230 assoziiert ist, benutzt werden, um den Wiederauffrischungs-Puffer zu implementieren, anstatt die skalierten Bilddaten redundant zu speichern.
-
Es wird geschätzt sein, dass, wie oben beschrieben, ein Einstellen der dynamischen Wiederauffrischungs-Frequenz des Anzeigegeräts basierend auf einer Schätzung der momentanen Frame-Dauer mittels irgendeiner der GPU 250, der Skalierungseinheit 230, der Anzeige 210, oder der TCON 220 der Anzeige 210 implementiert werden kann. Ferner können die verschiedenen oben beschriebenen Ausführungsformen in einem Grafikprozessor 706 und Anzeige 708 von System 700, unten beschrieben, implementiert sein.
-
7 illustriert ein exemplarisches System 700, in welchem die verschiedene Architektur und/oder Funktionalität der verschiedenen vorangehenden Ausführungsformen implementiert werden kann. Wie es gezeigt ist, ist ein System 700 bereitgestellt einschließlich zumindest eines Zentralprozessors 701, welcher mit einem Kommunikations-Bus 702 verbunden ist. Der Kommunikations-Bus 702 kann unter Benutzung irgendeines geeigneten Protokolls, wie etwa PCI (Peripheral Component Interconnect), PCI-Express, AGP (Accelerated Graphics Port), HyperTransport, oder irgendeinen anderen Bus oder Punkt-zu-Punkt-Kommunikationsprotokoll(e) implementiert sein. Das System 700 umfasst einen Hauptspeicher 704. Steuerlogik (Software) und Daten sind in dem Hauptspeicher 704 gespeichert, welcher die Form eines Speichers mit willkürlichem Zugriff (RAM) annehmen kann.
-
Das System 700 umfasst auch Eingabegeräte 712, einen Grafikprozessor 706 und eine Anzeige 708, d.h. eine konventionelle CRT (Kathodenstrahlröhre), LCD (Flüssigkristall-Anzeige), LED (Licht-emittierende Diode), Plasma-Anzeige oder dergleichen. Benutzereingabe kann von den Eingabegeräten 712, z.B. Tastatur, Maus, Berührfeld, Mikrofon und dergleichen empfangen werden. In einer Ausführungsform kann der Grafikprozessor 706 eine Mehrzahl von Schattierungsmodulen, ein Rasterierungs-Modul, etc. umfassen. Jedes der vorangehenden Module kann sogar auf einer einzelnen Halbleiter-Plattform angeordnet sein, um eine Grafikverarbeitungs-Einheit (GPU) zu bilden.
-
In der vorliegenden Beschreibung kann sich eine einzelne Halbleiter-Plattform auf einen einzelnen unitären Halbleiter-basierten integrierten Schaltkreis oder Chip beziehen. Es sollte bemerkt sein, dass sich der Ausdruck „einzelne Halbleiter-Plattform“ auch auf Multi-Chip-Module mit einer erhöhten Kollektivität beziehen kann, welche eine Auf-Chip-Operation simulieren, und wesentliche Verbesserungen über ein Benutzen einer herkömmlichen zentralen Verarbeitungseinheit (CPU) und Bus-Implementierung machen. Natürlich können die verschiedenen Module auch separat situiert sein oder in verschiedenen Kombinationen von Halbleiter-Plattformen nach den Wünschen des Benutzers.
-
Das System 700 kann auch einen sekundären Speicher 710 umfassen. Der sekundäre Speicher 710 umfasst z.B. ein Festplatten-Laufwerk und/oder ein entfernbares Speicher-Laufwerk, welches ein Floppy-Disk-Laufwerk, ein Magnetband-Laufwerk, ein Kompakt-Disk-Laufwerk, digitale versatile Disk-(DVD)-Laufwerk, Aufnahme-Gerät, universaler serialer Bus (USB)-Flashspeicher repräsentiert. Das entfernbare Speicher-Laufwerk liest von und/oder schreibt auf eine entfernbare Speichereinheit in einer wohl bekannten Weise.
-
Computerprogramme, Computer-Kontroll- und Steuerlogik-Algorithmen können in dem Hauptspeicher 704 und/oder dem sekundären Speicher 710 gespeichert sein. Solche Computerprogramme, wenn ausgeführt, ermöglichen dem System 700, verschiedene Funktionen durchzuführen. Der Speicher 704, Speicher 710 und/oder irgendein anderer Speicher sind mögliche Beispiele von Computer-lesbaren Medien.
-
In einer Ausführungsform kann die Architektur und/oder Funktionalität der verschiedenen vorangehenden Figuren in dem Zusammenhang des Zentralprozessors 701, des Grafikprozessors 706, einer integrierten Schaltung (nicht gezeigt), welche in der Lage ist zumindest eines Teils der Fähigkeiten von sowohl dem Zentralprozessor 701 und dem Grafikprozessor 706, eines Chip-Satzes (d.h. eine Gruppe von integrierten Schaltungen, welche ausgelegt sind, als eine Einheit zum Durchführen betreffender Funktionen zu arbeiten und verkauft zu werden, etc.), und/oder irgendeiner anderen integrierten Schaltung für diese Aufgabe implementiert werden.
-
Noch weiter kann die Architektur und/oder Funktionalität der verschiedenen vorangehenden Figuren in dem Zusammenhang eines Allgemein-Computersystems, eines Schaltungsplatte-Systems, eines Spielkonsole-Systems, welches für Unterhaltungszwecke dediziert ist, eines Anwendungs-spezifischen Systems, und/oder irgendeines anderen gewünschten Systems implementiert sein. Zum Beispiel kann das System 700 die Form eines Schreibtisch-Computers, Laptop-Computers, Servers, Arbeitsstation, Spielkonsole, eingebettetes System, und/oder irgendeines anderen Typs von Logik annehmen. Noch weiter kann das System 700 die Form von verschiedenen anderen Geräten annehmen einschließlich aber nicht darauf begrenzt, ein persönliches digitales Assistent-(PDA)-Gerät, ein mobiles Telefongerät, ein Fernseher, etc.
-
Während es nicht gezeigt ist, kann ferner das System 700 mit einem Netzwerk (z.B. ein Telekommunikations-Netzwerk, Lokalbereichs-Netzwerk (LAN), drahtloses Netzwerk, Fernbereichs-Netzwerk (WAN), wie etwa das Internet, Peer-to-Peer-Netzwerk, Kabel-Netzwerk, oder dergleichen) für Kommunikations-Zwecke gekoppelt sein.
-
Während verschiedene Ausführungsformen beschrieben worden sind, sollte es verstanden werden, dass sie nur als Beispiel und nicht als Begrenzung präsentiert worden sind. Somit sollte die Breite und der Geltungsbereich einer bevorzugten Ausführungsform nicht durch irgendeine der oben beschriebenen beispielhaften Ausführungsformen beschränkt sein, sondern sollte nur in Übereinstimmung mit den folgenden Ansprüchen und ihrer Äquivalente definiert sein.