DE102013218622A1 - System, Verfahren und Computerprogrammprodukt zum Modifizieren eines Pixelwertes als eine Funktion von einer geschätzten Anzeigedauer - Google Patents

System, Verfahren und Computerprogrammprodukt zum Modifizieren eines Pixelwertes als eine Funktion von einer geschätzten Anzeigedauer Download PDF

Info

Publication number
DE102013218622A1
DE102013218622A1 DE201310218622 DE102013218622A DE102013218622A1 DE 102013218622 A1 DE102013218622 A1 DE 102013218622A1 DE 201310218622 DE201310218622 DE 201310218622 DE 102013218622 A DE102013218622 A DE 102013218622A DE 102013218622 A1 DE102013218622 A1 DE 102013218622A1
Authority
DE
Germany
Prior art keywords
pixel
display device
displayed
frame
screen
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE201310218622
Other languages
English (en)
Other versions
DE102013218622B4 (de
Inventor
Gerrit A. Slavenburg
Tom Verbeure
Robert Jan Schutten
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/830,847 external-priority patent/US8797340B2/en
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102013218622A1 publication Critical patent/DE102013218622A1/de
Application granted granted Critical
Publication of DE102013218622B4 publication Critical patent/DE102013218622B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/001Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background
    • G09G3/003Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background to produce spatial visual effects
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0252Improving the response speed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0261Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • G09G2320/106Determination of movement vectors or equivalent parameters within the image

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

Ein System, ein Verfahren und ein Computerprogrammprogrammprodukt zum Modifizieren eines Pixelwertes als Funktion von einer geschätzten Anzeigedauer werden bereitgestellt. Im Betrieb wird ein Wert eines Pixels von einem Bildframe identifiziert, der auf einem Bildschirm einer Anzeigevorrichtung angezeigt werden soll, wobei die Anzeigevorrichtung dazu fähig ist, Aktualisierungen zu unvorhersagbaren Zeiten zu hantieren. Zusätzlich wird der Wert des Pixels modifiziert als eine Funktion von einer geschätzten Zeitdauer bis eine nächste Aktualisierung, die den Pixel enthält, auf dem Bildschirm angezeigt werden soll. Ferner wird der modifizierte Wert des Pixels an den Bildschirm transmittiert, um angezeigt zu werden.

Description

  • VERWANDTE ANMELDUNG(EN)
  • Die vorliegende Anmeldung beansprucht die Priorität der provisorischen US-Patentanmeldung mit dem Aktenzeichen 61/709,085, die am 2. Oktober 2012 eingereicht wurde, die „GPU- und Displayarchitektur zur Minimierung von Gaming-Latenz” benannt ist und die hiermit in ihrer Gesamtheit durch Bezugnahme hierin aufgenommen ist.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf Pixel und spezifischer auf das Anzeigen von Pixeln.
  • HINTERGRUND
  • Konventionell werden Bildframes gerendert, um ein Anzeigen davon durch eine Anzeigevorrichtung zu erlauben. Zum Beispiel mag eine 3-dimensionale (3D) virtuelle Welt eines Spiels zu 2-dimensionalen (2D) Bildframes mit korrekter Perspektive gerendert werden. In jedem Fall ist die Zeitdauer für das Rendern jedes Bildframes (das heißt, die Rendering-Rate jedes Frames) als Folge davon variabel, dass eine solche Rendering-Zeitdauer von der Anzahl von Objekten in der Szene, die von dem Bildframe dargestellt wird, der Anzahl von Lichtquellen, dem Standpunkt oder der Richtung der Kamera, etc. abhängig ist. Leider ist die Aktualisierung einer Anzeigevorrichtung generell unabhängig von der Rendering-Rate gewesen, was dazu geführt hat, dass limitierte Systeme eingeführt worden sind, die es versuchen, für jegliche Diskrepanzen zwischen den voneinander unterschiedlichen Rendering- und Anzeigeaktualisierungsraten zu kompensieren.
  • Nur als Beispiel sind ein VSync-An-Modus und ein VSync-Aus-Modus Techniken, die eingeführt worden sind, um für jegliche Diskrepanzen zwischen den voneinander unterschiedlichen Rendering- und Anzeigeaktualisierungsraten zu kompensieren. In der Praxis sind diese Techniken ausschließlich für eine bestimmte Anwendung verwendet worden, ebenso wie in Kombination, wo der ausgewählte bestimmte Modus dynamisch darauf basiert werden, ob die GPU-Render-Rate über oder unter der Anzeigeaktualisierungsrate ist. In jedem Fall haben VSync-Ein und VSync-Aus aber verschiedene Begrenzungen gezeigt.
  • Die 1A zeigt ein Beispiel vom Betrieb, wenn der VSync-An-Modus aktiviert ist. Eine Anwendung (zum Beispiel ein Spiel) verwendet, wie gezeigt, ein Doppelpufferungsmethode, in welchem es zwei Puffer im Speicher gibt, um Frames zu empfangen, Puffer „A” und „B”. In dem vorliegenden Beispiel läuft die Anzeigevorrichtung bei 60 Hz (16,6 ms). Die GPU sendet einen Frame durch das Kabel nach dem „vertikalen Sync” (VSync) der Anzeigevorrichtung. Zum Zeitpunkt „t2” ist das Rendering von Frame „i” noch nicht abgeschlossen, weshalb die Anzeigevorrichtung noch nicht den Frame „i” anzeigen kann. Stattdessen sendet die GPU den Frame „i – 1” nochmals an die Anzeigevorrichtung. Kurz nach „t2” ist die GPU mit dem Rendering von Frame „i” fertig. Die GPU geht in einen Wartezustand hinein, da es keinen freien Puffer gibt, in dem ein Bild gerendert werden kann, der Puffer B wird nämlich von der Anzeigevorrichtung zum Auslesen von Pixeln verwendet und der Puffer A ist gefüllt und wartet darauf, angezeigt zu werden. Kurz vor „t3” ist die Anzeigevorrichtung mit dem Auslesen aller Pixel fertig, und der Puffer B ist frei, und die GPU kann mit dem Rendering von Frame „i + 1” in den Puffer B hinein beginnen. Bei „t3” kann die GPU beginnen, den Frame „i” an die Anzeigevorrichtung zu senden.
  • Beachte, dass wenn das Rendering eines Frames kurz nach VSync abgeschlossen wird, kann dies bewirken, dass zusätzliche 15 ms addiert werden, bevor der Frame das erste Mal angezeigt wird. Dies trägt zu der „Latenz” der Anwendung bei, insbesondere die Zeit zwischen einer Benutzerhandlung, wie beispielsweise einem Mausklick, und der sichtbaren Reaktion auf dem Bildschirm, wie beispielsweise einem Mündungsfeuer von der Schusswaffe. Ein weiterer Nachteil von „VSync-An” ist, dass, falls das GPU-Rendering geringfügig langsamer als 60 Hz ist, wird die effektive Aktualisierungsrate auf 30 Hz herunterfallen, weil jedes Bild zweimal angezeigt wird. Einige Anwendungen erlauben die Verwendung von „Tripelpufferung” mit „VSync-An”, um zu vermeiden, dass dieses 30-Hz-Problem vorkommt. Da die GPU in diesem bestimmten Fall nie darauf warten muss, dass ein Puffer verfügbar wird, wird das 30-Hz-Aktualisierungsproblem vermieden. Das Anzeigemuster von „neu”, „wiederholt”, „neu”, „neu”, „wiederholt” kann aber dazu führen, dass Bewegung irregulär vorkommt. Wenn die GPU viel schneller rendert als die Anzeigevorrichtung, wird Tripelpufferung des Weiteren tatsächlich zu erhöhter Latenz der GPU führen.
  • Die 1B zeigt ein Beispiel vom Betrieb, wenn der VSync-Aus-Modus aktiviert ist. Wie gezeigt, läuft die Anzeigevorrichtung in dem vorliegenden Beispiel wieder bei 60 Hz. In dem VSync-Aus-Fall beginnt die GPU mit dem Senden der Pixel eines Frames an die Anzeigevorrichtung, sofort nachdem das Rendering des Frames abgeschlossen ist, und bricht das Senden der Pixel aus dem früheren Frame ab. Dies gibt sofort den von der Anzeigevorrichtung verwendeten Puffer frei, und die GPU muss nicht mit dem Beginnen des Renderings des nächsten Frames warten. Der Vorteil von VSync-Aus ist geringere Latenz und schnelleres Rendering (kein GPU-Warten). Ein Nachteil von VSync-Aus ist sogenanntes „Ziehen” (engl. „tearing”), wobei der dem Benutzer angezeigten Bildschirm eine horizontale „Zieh”-Linie dort aufweist, wo das frisch verfügbare gerenderte Frame anfängt, auf der Anzeigevorrichtung geschrieben zu werden, wegen Objektbewegung, die Objekte des früheren Frames in einer anderen Position in dem neuen Frame setzt. In diesem Kontext ist „Ziehen” ähnlich dem Wort „Reißen” (engl. „ripping”) und nicht ähnlich dem Wort „Weinen” (engl. „weeping”).
  • Es besteht folglich ein Bedürfnis, diese und/oder andere mit dem Stand der Technik assoziierten Probleme anzugehen.
  • ZUSAMMENFASSUNG
  • Es werden ein System, ein Verfahren und ein Computerprogrammprogrammprodukt zum Modifizieren eines Pixelwertes als Funktion von einer geschätzten Anzeigedauer bereitgestellt. Im Betrieb wird ein Wert eines Pixels von einem Bildframe identifiziert, der auf einem Bildschirm einer Anzeigevorrichtung angezeigt werden soll, wobei die Anzeigevorrichtung dazu fähig ist, Aktualisierungen zu unvorhersagbaren Zeiten zu hantieren. Der Wert des Pixels wird zusätzlich modifiziert als eine Funktion von einer geschätzten Zeitdauer bis eine nächste Aktualisierung, die das Pixel enthält, auf dem Bildschirm angezeigt werden soll. Der modifizierte Wert des Pixels wird ferner an den Bildschirm transmittiert, um angezeigt zu werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die 1A zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, wenn ein VSync-An-Modus aktiviert ist, gemäß dem Stand der Technik.
  • Die 1B zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, wenn ein VSync-Aus-Modus aktiviert ist, gemäß dem Stand der Technik.
  • Die 2 zeigt ein Verfahren, das eine dynamische Anzeigeaktualisierung bereitstellt, gemäß einer Ausführungsform.
  • Die 3A zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, gemäß einer weiteren Ausführungsform.
  • Die 3B zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, in welchem eine Rendering-Zeit kürzer als die Aktualisierungsperiode für eine Anzeigevorrichtung ist, gemäß einer weiteren Ausführungsform.
  • Die 4 zeigt ein Verfahren, das Bildwiederholung innerhalb eines Systems mit dynamischer Anzeigeaktualisierung bereitstellt, gemäß noch einer weiteren Ausführungsform.
  • Die 5A zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer Grafikverarbeitungseinheit (GPU) gesteuert wird, gemäß einer weiteren Ausführungsform.
  • Die 5B zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer Anzeigevorrichtung gesteuert wird, gemäß einer weiteren Ausführungsform.
  • Die 6A zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer GPU gesteuert wird, um einen nächsten Bildframe anzuzeigen nachdem eine Gesamtheit eines Wiederholungsbildframes angezeigt worden ist, gemäß noch einer weiteren Ausführungsform.
  • Die 6B zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer Anzeigevorrichtung gesteuert wird, um einen nächsten Bildframe anzuzeigen nachdem eine Gesamtheit eines Wiederholungsbildframes angezeigt worden ist, gemäß noch einer weiteren Ausführungsform.
  • Die 7A zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer GPU gesteuert wird, um ein Anzeigen eines Wiederholungsbildframes zu unterbrechen und einen nächsten Bildframe an einem Punkt der Unterbrechung auf einem Bildschirm der Anzeigevorrichtung anzuzeigen, gemäß noch einer weiteren Ausführungsform.
  • Die 7B zeigt ein Timing-Diagramm gemäß dem Timing-Diagramm der 7A, das zusätzlich ein automatisches Wiederholen des Anzeigens des nächsten Bildframes durch Malen des wiederholten nächsten Bildframes an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung aufweist, gemäß noch einer weiteren Ausführungsform.
  • Die 7C zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer Anzeigevorrichtung gesteuert wird, um ein Anzeigen eines Wiederholungsbildframes zu unterbrechen und einen nächsten Bildframe an einem Punkt der Unterbrechung auf einem Bildschirm der Anzeigevorrichtung anzuzeigen, gemäß noch einer weiteren Ausführungsform.
  • Die 8A zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer GPU gesteuert wird, um ein Anzeigen eines Wiederholungsbildframes zu unterbrechen und einen nächsten Bildframe an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung anzuzeigen, gemäß einer weiteren Ausführungsform.
  • Die 8B zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer Anzeigevorrichtung gesteuert wird, um ein Anzeigen eines Wiederholungsbildframes zu unterbrechen und einen nächsten Bildframe an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung anzuzeigen, gemäß einer weiteren Ausführungsform.
  • Die 9 zeigt ein Verfahren zum Modifizieren eines Pixelwertes als eine Funktion von einer geschätzten Anzeigedauer, gemäß einer weiteren Ausführungsform.
  • Die 10 zeigt einen Grafen einer resultierenden Luminanz, wenn ein Pixelwert als eine Funktion von einer geschätzten Anzeigedauer modifiziert und während dieser geschätzten Anzeigedauer angezeigt wird, gemäß noch einer weiteren Ausführungsform.
  • Die 11 zeigt einen Grafen einer resultierenden Luminanz, wenn ein Pixelwert als eine Funktion von einer geschätzten Anzeigedauer modifiziert und länger als diese geschätzte Anzeigedauer angezeigt wird, gemäß noch einer weiteren Ausführungsform.
  • Die 12 zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung durch eine Anzeigevorrichtung automatisiert ist, die dazu fähig ist, ein Anzeigen eines Wiederholungsbildframes zu unterbrechen, um einen nächsten Bildframe beginnend an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung anzuzeigen, gemäß einer weiteren Ausführungsform.
  • Die 13 zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung durch eine GPU automatisiert ist, die dazu fähig ist, ein Anzeigen eines Wiederholungsbildframes durch eine Anzeigevorrichtung zu unterbrechen, um einen nächsten Bildframe beginnend an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung anzuzeigen, gemäß einer weiteren Ausführungsform.
  • Die 14 stellt ein beispielhaftes System dar, in welchem die verschiedenen Architektur und/oder Funktionalität der verschiedenen vorhergehenden Ausführungsformen implementiert werden mögen.
  • DETAILLIERTE BESCHREIBUNG
  • Die 2 zeigt ein Verfahren 200, das eine dynamische Anzeigeaktualisierung bereitstellt, gemäß einer Ausführungsform. In der Operation 202 wird ein Zustand einer Anzeigevorrichtung identifiziert, in welchem eine Gesamtheit eines Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird. Im Kontext der vorliegenden Beschreibung mag die Anzeigevorrichtung jegliche Vorrichtung sein, die dazu fähig ist, die Anzeige von Bildframes anzuzeigen und zu halten. Die Anzeigevorrichtung mag zum Beispiel eine Flüssigkristallanzeige-(LCD)-Vorrichtung, eine Lichtemittertransistor-(LET)-Anzeigevorrichtung, eine Lichtemitterdiode-(LED)-Anzeigevorrichtung, eine organische LED-(OLED)-Anzeigevorrichtung, eine Aktivmatrix-OLED-(AMOLED)-Anzeigevorrichtung etc. sein. Als eine weitere Option mag die Anzeigevorrichtung eine Stereoanzeigevorrichtung sein, die Bildframes anzeigt, die sowohl linke Inhalte, die zum Betrachten mit einem linken Auge eines Betrachters vorgesehen sind, als auch Rechte Inhalte haben, die zum Betrachten mit einem rechten Auge des Betrachters vorgesehen sind (zum Beispiel, wenn die linke und rechte Inhalte zeilen-interleaved, säulen-interleaved, pixel-interleaved etc. innerhalb jedes Bildframes sind).
  • In verschiedenen Implementierungen mag die Anzeigevorrichtung ein integriertes Bauteil eines Computersystems sein. Die Anzeigevorrichtung mag zum Beispiel ein Display einer mobilen Vorrichtung (zum Beispiel eines Laptops, eines Tablets, eines Mobiltelefons, einer tragbaren Spielvorrichtung etc.), ein Fernseherdisplay, Projektordisplay etc. sein. In anderen Implementierungen mag die Anzeigevorrichtung von einem Computersystem entfernt aber dazu fähig sein, mit diesem verbunden zu werden. Die Anzeigevorrichtung mag zum Beispiel ein Bildschirm oder ein Fernseher sein, der dazu fähig ist, mit einem Desktop Computer verbunden zu werden.
  • Des Weiteren mögen die Bildframes jeweils jegliche gerenderte Inhalte oder Inhalte, die gerendert werden sollen, sein, die für ein Bild repräsentativ sind, das über die Anzeigevorrichtung wunschgemäß angezeigt werden soll. Die Bildframes mögen zum Beispiel von einer Anwendung (zum Beispiel einem Spiel, einem Videoplayer etc.), die eine Benutzerschnittstelle hat, erzeugt werden, so dass die Bildframes Bilder repräsentieren mögen, die als die Benutzerschnittstelle angezeigt werden sollen. Es sollte beachtet werden, dass die Bildframes in der vorliegenden Beschreibung, zumindest zum Teil, in einer geordneten Weise angezeigt werden sollen, um die Benutzerschnittstelle der Anwendung korrekt für einen Benutzer darzustellen. Insbesondere mögen die Bildframes von der Anwendung sequenziell erzeugt werden, von einer oder mehreren Grafikverarbeitungseinheiten (GPUs) sequenziell gerendert werden und ferner optional zumindest zum Teil (zum Beispiel, wenn sie nicht gestrichen werden) sequenziell von der Anzeigevorrichtung angezeigt werden.
  • Wie oben erwähnt wird ein Zustand der Anzeigevorrichtung identifiziert, in welchem eine Gesamtheit (das heißt alle Abschnitte) eines Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird. Für eine Anzeigevorrichtung, die einen Bildschirm (zum Beispiel ein Anzeigefeld) hat, der den Bildframe (zum Beispiel von oben nach unten) auf einer Zeile-für-Zeile-Basis malt, mag der Zustand der Anzeigevorrichtung, indem die Gesamtheit des Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird, zum Beispiel als Reaktion darauf identifiziert werden, dass eine letzte Abtastzeile der Anzeigevorrichtung, die gemalt wird, abgeschlossen wird. In jedem Fall mag der Zustand in jeder Art und Weise identifiziert werden, die indiziert, dass die Anzeigevorrichtung zum Akzeptieren eines neuen Bildes bereit ist.
  • Als Reaktion auf die Identifikation des Zustandes der Anzeigevorrichtung wird es bestimmt, ob eine Gesamtheit eines nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist. Beachte die Entscheidung 204. Wie oben beschrieben, sollen die Bildframes, zumindest zum Teil, in einer geordneten Weise angezeigt werden. Folglich mag der nächste Bildframe ein jeglicher Bildframe sein, der von der Anwendung erzeugt ist, um in unmittelbaren Anschluss an den Bildframe, der gegenwärtig angezeigt wird, wie in der Operation 202 identifiziert, gerendert zu werden.
  • Ein solches Rendering mag jegliche Verarbeitung des Bildframes aus einem ersten Format, das von der Anwendung ausgegeben wird, in ein zweites Format zur Transmission an die Anzeigevorrichtung sein. Das Rendering mag zum Beispiel auf einem Bildframe durchgeführt werden, der von der Anwendung (zum Beispiel in 2D oder in 3D) erzeugt ist, um verschiedene Eigenschaften zu haben, wie zum Beispiel Objekte, eine oder mehrere Lichtquellen, einen bestimmten Kamerastandpunkt etc. Das Rendering mag den Bildframe in einem 2D-Format erzeugen, wobei jedes Pixel gemäß den Eigenschaften gefärbt ist, die für den Bildframe von der Anwendung definiert sind.
  • Folglich mag das Bestimmen, ob die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, ein Bestimmen enthalten, ob jedes Pixel des nächsten Bildframes gerendert worden ist, ob die Verarbeitung des Bildframes aus einem ersten Format, das von der Anwendung ausgegeben wird, in ein zweites Format zur Transmission an die Anzeigevorrichtung abgeschlossen ist, etc.
  • In einer Ausführungsform mag jeder Bildframe von einer GPU oder einem anderen Prozessor zum Speicher gerendert werden. Der Speicher mag sich entfernt von der Anzeigevorrichtung oder von einem Bauteil der Anzeigevorrichtung befinden. Als eine Option mag der Speicher einen oder mehrere Puffer aufweisen, zu denen die von der Anwendung erzeugten Bildframes gerendert werden können. Im Falle von zwei Puffern mögen die von der Anwendung erzeugten Bildframes wechselweise zu den zwei Puffern gerendert werden. Im Falle von mehr als zwei Puffern mögen die von der Anwendung erzeugten Bildframes zu den Puffern in einer zyklischen (engl. „round robin”) Art und Weise gerendert werden. Dazu mag das Bestimmen, ob die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, ein Bestimmen enthalten, ob die Gesamtheit des von der Anwendung erzeugten nächsten Bildframes zu einem der Puffer gerendert worden ist.
  • Wie es in der Operation 206 gezeigt ist, wird der nächste Bildframe an die Anzeigevorrichtung transmittiert, um angezeigt zu werden, wenn es in der Entscheidung 204 bestimmt wurde, dass die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist. In einer Ausführungsform mag der nächste Bildframe nach der Bestimmung, dass die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, an die Anzeigevorrichtung transmittiert werden. In dieser Art und Weise mag der nächste Bildframe so schnell wie möglich an die Anzeigevorrichtung transmittiert werden, wenn 1) die Anzeigevorrichtung gegenwärtig eine Gesamtheit eines Bildframes anzeigt (Operation 202) und wenn 2) es bestimmt wird (Operation 204), dass die Gesamtheit des nächsten Bildframes, der von der Anzeigevorrichtung angezeigt werden soll, zum Speicher gerendert worden ist.
  • Eine Ausführungsform des vorliegenden Verfahrens 200 ist in der 3A gezeigt, wobei spezifisch der nächste Bildframe an die Anzeigevorrichtung transmittiert wird sobald das Rendering abgeschlossen ist, angenommen, dass die Gesamtheit des vorher gerenderten Bildframes von der Anzeigevorrichtung angezeigt worden ist (Operation 202), so dass Latenz reduziert wird. Insbesondere wird die resultierende Latenz der Ausführungsform in 3A nur von zwei Faktoren festgelegt, einschließlich 1) der Zeit, die benötigt wird zum „Malen” des Bildschirms der Anzeigevorrichtung, wobei von oben (oder von unten etc.) begonnen wird, und 2) der Zeit für ein gegebenes Pixel des Bildschirms, um tatsächlich seinen Zustand zu verändern und Fotonen neuer Intensität zu emittieren. Nur beispielhaft erwähnt, mag die Latenz, die wie oben beschrieben reduziert ist, die Zeit zwischen einem Erhalt eines Eingabeereignisses und einem Anzeigen eines Ergebnisses dieses Eingabeereignisses sein. Hinsichtlich Touchscreen-Vorrichtungen oder Zeigegeräte mit ähnlicher Funktionalität mag die Latenz zwischen Fingerberührung oder Zeigen und einem auf dem Bildschirm angezeigten Ergebnis und/oder die Latenz, wenn der Benutzer angezeigte Objekte mit seinem Finger oder durch Zeigen herum zieht, reduziert werden, wobei die Qualität der Ansprechempfindlichkeit (engl. „responsiveness”) verbessert wird. Da der nächste Bildframe nur an die Anzeigevorrichtung gesendet wird, wenn es bestimmt wurde, dass die Gesamtheit eines solchen nächsten Bildframes zum Speicher gerendert worden ist, wird es des Weiteren sichergestellt, dass jeder Bildframe, der vom Speicher an den Bildschirm gesendet wird, ein ganzes Bild ist.
  • Ferner, wie es in der Operation 208 in der 2 gezeigt ist, wird eine Aktualisierung der Anzeigevorrichtung verzögert, wenn es bestimmt wird, dass die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, nicht zum Speicher gerendert worden ist. Folglich mag die Aktualisierung der Anzeigevorrichtung automatisch verzögert werden, wenn 1) die Anzeigevorrichtung gegenwärtig einen Bildframe in seiner Gesamtheit anzeigt (Operation 202) und 2) es bestimmt wird (Operation 204), dass der nächste Bildframe, der angezeigt werden soll, nicht in seiner Gesamtheit zum Speicher gerendert worden ist. In der vorliegenden Beschreibung bezieht sich die Aktualisierung auf jegliche Operation, die den Bildschirm der Anzeigevorrichtung mit einem Bildframe malt.
  • Es sollte beachtet werden, dass die Aktualisierung der Anzeigevorrichtung, wie oben beschrieben, in jeglicher gewünschten Art und Weise verzögert werden mag. In einer Ausführungsform mag die Aktualisierung der Anzeigevorrichtung verzögert werden durch Halten der Anzeige des Bildframes aus der Operation 202 auf der Anzeigevorrichtung. Zum Beispiel mag die Aktualisierung der Anzeigevorrichtung verzögert werden durch Verzögern einer Aktualisierungsoperation auf der Anzeigevorrichtung. In einer anderen Ausführungsform mag die Aktualisierung der Anzeigevorrichtung verzögert werden durch Erweitern eines vertikalen Austastintervalls der Anzeigevorrichtung, was wiederum den Bildframe auf der Anzeigevorrichtung hält.
  • In einigen Situationen mag das Ausmaß begrenzt sein, zu dem die Aktualisierung der Anzeigevorrichtung verzögert werden kann. Es mag zum Beispiel physikalische Begrenzungen in der Anzeigevorrichtung geben, wie zum Beispiel, dass der Bildschirm der Anzeigevorrichtung nicht dazu fähig ist, seinen Zustand auf unbestimmte Zeit zu halten. Hinsichtlich eines solchen Beispiels mögen die Pixel nach einer bestimmten Zeitdauer, die vom Modell der Anzeigevorrichtung abhängig sein mag, von dem letzten gespeicherten Wert „wegdriften” und ihre Helligkeit oder Farbe ändern (das heißt reduzieren oder erhöhen). Sobald die Helligkeit von jedem Pixel sich zu ändern beginnt, mag die Pixelhelligkeit sich des Weiteren fortfahrend ändern bis das Pixel schwarz oder weiß wird.
  • Folglich mag die Aktualisierung der Anzeigevorrichtung bei einigen Displays nur bis zu einem Zeitdauerschwellenwert verzögert werden. Der Zeitdauerschwellenwert mag aus den oben erwähnten Gründen spezifisch für ein Modell der Anzeigevorrichtung sein. Insbesondere mag der Zeitdauerschwellenwert die Zeit inkludieren, vor welcher die Pixel der Anzeigevorrichtung beginnen, sich zu ändern, oder zumindest vor welcher die Pixel der Anzeigevorrichtung sich mit einem vorbestimmten Betrag ändern.
  • Die Aktualisierung der Anzeigevorrichtung mag des Weiteren mit einer Zeitperiode verzögert werden, während deren der nächste Bildframe dabei ist, zum Speicher gerendert zu werden. Folglich mag die Aktualisierung der Anzeigevorrichtung verzögert werden bis 1) die Aktualisierung der Anzeigevorrichtung mit einem Zeitdauerschwellenwertbetrag verzögert ist oder 2) es bestimmt wird, dass die Gesamtheit eines nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, was auch immer zuerst stattfindet.
  • Wenn die Aktualisierung der Anzeigevorrichtung mit dem Zeitdauerschwellenwertbetrag verzögert ist (das heißt, ohne die Bestimmung, dass die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist), mag das Anzeigen des Bildframes, der gegenwärtig von der Anzeigevorrichtung angezeigt wird, wiederholt werden, um zu sichern, dass das Anzeigen nicht driftet, und um zusätzliche Zeit für das Abschließen des Renderings des nächsten Bildframes zum Speicher zu gewähren, wie es unten detaillierter beschrieben wird. Verschiedene Beispiele von dem Wiederholen des Anzeigens des Bildframes sind in den 5A–B gezeigt, wie unten detaillierter beschrieben. Durch Verzögern der Aktualisierung der Anzeigevorrichtung (zum Beispiel bis zu einem Zeitdauerschwellenbetrag), wenn der ganze nächste Bildframe, der angezeigt werden soll, noch nicht zum Speicher gerendert worden ist, wird zusätzliche Zeit für das Abschließen des Renderings des nächsten Bildframes gewährt. Dies sichert, dass jeder Bildframe, der vom Speicher an den Bildschirm gesendet wird, ein ganzer Bildframe ist.
  • Die Fähigkeit, die Aktualisierung der Anzeigevorrichtung in der oben beschriebenen Art und Weise zu verzögern, verbessert die Sanftheit der Bewegung, die eine Folge des sequenziellen Anzeigens der Bildframes ist, im Gegensatz zu dem Level der Sanftheit, das sonst vorkommt, wenn der traditionelle VSync-An-Modus aktiviert ist. Sanftheit wird insbesondere dadurch bereitgestellt, dass zusätzliche Zeit für das Rendern des nächsten Bildframes, der angezeigt werden soll, gewährt wird, statt notwendigerweise das Anzeigen des schon angezeigten Bildframes zu wiederholen, was länger dauern mag, wie es von dem traditionellen VSync-An-Modus erfordert wird. Nur beispielhaft erwähnt, mag der Hauptgrund für verbesserte Bewegung für sich bewegende Objekte eine Folge der konstanten Verzögerung zwischen dem Abschluss des Renderings eines Bildes und dem Malen des Bildes zu dem Display sein. Zusätzlich mag ein Spiel, zum Beispiel, Kenntnis davon haben, wann das Rendering eines Bildes abgeschlossen wird. Wenn das Spiel dieses Kenntnis verwendet, um die „vergangene Zeit” zu berechnen und die Position aller sich bewegenden Objekte zu aktualisieren, wird die konstante Verzögerung dafür sorgen, dass Sachen, die sich sanft bewegen, als sich sanft bewegende aussehen. Dies stellt eine potenzielle Verbesserung gegenüber VSync-An bereit, der eine konstante (zum Beispiel 16 ms) Aktualisierung hat, da es zum Beispiel nur bei jeder regulären Aktualisierung (zum Beispiel alle 16 ms) bestimmt werden kann, ob ein Bildframe wiederholt oder der nächste angezeigt werden soll, wobei unnatürliche Bewegung verursacht wird, weil das Spiel kein Kenntnis davon hat, wann Objekte angezeigt werden, was einigen Jitter zu sich bewegenden Objekten hinzufügt. Ein Beispiel, in dem die oben beschriebene verzögerte Aktualisierung zusätzliche Zeit für das Rendern eines nächsten Bildframes, der angezeigt werden soll, gewährt, ist in der 3A gezeigt, wie unten detaillierter beschrieben.
  • Des Weiteren mag die benutzte Menge von Systemleistung reduziert werden, wenn die Aktualisierung verzögert wird. Zum Beispiel mag die Leistung, die an die Anzeigevorrichtung gesendet wird, um die Anzeige zu aktualisieren, durch seltenere (das heißt dynamische, wie oben beschrieben) Aktualisierung der Anzeigevorrichtung reduziert werden. Als ein zweites Beispiel mag Leistung, die von der GPU zum Transmittieren eines Bildes an die Anzeigevorrichtung verwendet wird, durch selteneres Transmittieren von Bildern an die Anzeigevorrichtung reduziert werden. Als ein drittes Beispiel mag Leistung, die vom Speicher verwendet wird, durch selteneres Transmittieren von Bildern an die Anzeigevorrichtung reduziert werden.
  • Dazu mag das Verfahren 200 von 2 implementiert werden, um eine dynamische Aktualisierung einer Anzeigevorrichtung bereitzustellen. Eine solche dynamische Aktualisierung mag auf zwei Faktoren basieren, inklusive dass die Anzeigevorrichtung in einem Zustand ist, in dem eine Gesamtheit eines Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird (Operation 202), und eine Bestimmung, ob der ganze nächste Bildframe, der von der Anzeigevorrichtung angezeigt werden soll, zum Speicher gerendert worden und folglich bereit ist, von der Anzeigevorrichtung angezeigt zu werden. Wenn eine Gesamtheit eines Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird und ein nächster Bildframe, der angezeigt werden soll, (das heißt im unmittelbaren Anschluss an den gegenwärtig angezeigten Bildframe) in seiner Gesamtheit zum Speicher gerendert worden ist, mag ein solcher nächster Bildframe an die Anzeigevorrichtung transmittiert werden, um angezeigt zu werden. Die Transmission mag stattfinden, ohne dass eine zusätzliche Verzögerung über die inhärente Zeit hinaus introduziert wird, die von dem Anzeigesystem benötigt wird, um den Bildschirm der Anzeigevorrichtung (zum Beispiel von oben beginnend) zu „malen”, und die für ein gegebenes Pixel des Bildschirms benötigt wird, um Zustand tatsächlich zu ändern und die Photonen neuer Intensität zu emittieren. Folglich mag der nächste Bildframe, wenn er in seiner Gesamtheit gerendert worden ist, so schnell wie möglich angezeigt werden, angenommen die Gesamtheit des vorhergehenden Bildframes gegenwärtig angezeigt wird.
  • Wenn es identifiziert wird, dass die Gesamtheit eines Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird aber ein nächster Bildframe, der angezeigt werden soll, (das heißt im unmittelbaren Anschluss an den gegenwärtig angezeigten Bildframe) noch nicht in seiner Gesamtheit zum Speicher gerendert worden ist, mag die Aktualisierung der Anzeigevorrichtung verzögert werden. Verzögern der Aktualisierung mag zusätzliche Zeit gewähren, für die Gesamtheit des nächsten Bildframes zum Speicher gerendert zu werden, so dass, wenn das Rendering während der Verzögerung abgeschlossen wird, die Gesamtheit des gerenderten nächsten Bildframes so schnell wie möglich in der oben beschriebenen Art und Weise angezeigt werden mag.
  • Illustrativere Informationen bezüglich verschiedener optionalen Architekturen und Merkmale, mit denen das vorhergehende Framework gemäß den Wünschen des Benutzers implementiert oder nicht implementiert werden mag, werden jetzt dargelegt. Es sollte dringend beachtet werden, dass die folgenden Informationen zu illustrativen Zwecken dargelegt werden und nicht als in irgendeiner Weise einschränkend ausgelegt werden sollen. Alle folgenden Merkmale mögen optional eingearbeitet werden, wobei andere beschriebenen Merkmale ausgeschlossen oder nicht ausgeschlossen werden mögen.
  • Die 3A zeigt ein Timing-Diagramm 300, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, gemäß einer weiteren Ausführungsform. Das Timing-Diagramm 300 mag, als eine Option, im Kontext des Verfahrens von 2 implementiert sein. Das Timing-Diagramm 300 mag aber selbstverständlich in jeglicher gewünschter Umgebung implementiert werden. Es sollte auch beachtet werden, dass die oben erwähnten Definitionen im Laufe der folgenden Beschreibung Anwendung finden mögen.
  • Wie in dem vorliegenden Timing-Diagramm 300 gezeigt, ist die von der GPU zum Rendern jedes Bildframes zum Speicher benötigte Zeit (in dem Timing-Diagramm 300 als GPU-Rendering gezeigt) länger als die gesamte Zeit, die für einen gerenderten Bildframe benötigt wird, um in seiner Gesamtheit zu einem Bildschirm einer Anzeigevorrichtung (in dem Timing-Diagramm 300 als GPU-Dsplay gezeigt) ausgelesen zu werden, und die dafür benötigt wird, dass der Bildschirm der Anzeigevorrichtung seinen Zustand ändert und die Photonen neuer Intensität emittiert (in dem Timing-Diagramm 300 als Monitor gezeigt und im Folgenden als die Aktualisierungsperiode bezeichnet). Mit anderen Worten ist die GPU-Rendern-Framerate in der vorliegenden Ausführungsform langsamer als die maximale Monitor-Aktualisierungsrate. In diesem Falle sollte die Anzeigeaktualisierung der GPU-Render-Framerate folgen, so dass jeder Bildframe an die Anzeigevorrichtung so schnell wie möglich, nachdem der Bildframe in seiner Gesamtheit zum Speicher gerendert ist, transmittiert wird, um angezeigt zu werden.
  • In dem gezeigten spezifischen Beispiel weist der Speicher zwei Puffer auf: Puffer „A” und Puffer „B”. Wenn ein Zustand der Anzeigevorrichtung identifiziert wird, in dem eine Gesamtheit eines Bildframes gegenwärtig von der Anzeigevorrichtung (zum Beispiel Bildframe „i – 1”) angezeigt wird, dann wird, nachdem der nächste Bildframe „i” in seiner Gesamtheit zum Puffer „A” gerendert wurde, dieser nächste Bildframe „i” an die Anzeigevorrichtung transmittiert, um angezeigt zu werden. Während dieses nächsten Bildframes „i” an die Anzeigevorrichtung transmittiert und auf dem Bildschirm der Anzeigevorrichtung gemalt wird, wird ein nächster Bildframe „i + 1” in seiner Gesamtheit zum Puffer „B” gerendert, und dann, nachdem dieser nächste Bildframe „i + 1” in seiner Gesamtheit zum Puffer „B” gerendert wurde, wird dieser nächste Bildframe „i + 1” an die Anzeigevorrichtung transmittiert, um angezeigt zu werden, und so weiter.
  • Da die Renderframerate der GPU langsamer als die maximale Monitoraktualisierungsrate ist, wird die Aktualisierung der Anzeigevorrichtung verzögert, um zusätzliche Zeit zu gewähren für das Rendering von jedem Bildframe, der angezeigt werden soll. In dieser Art und Weise mag das Rendering von jedem Bildframe während der Zeitperiode, in der die Aktualisierung verzögert worden ist, abgeschlossen werden, so dass der Bildframe, nachdem der Bildframe in seiner Gesamtheit zum Speicher gerendert ist, so schnell wie möglich an die Anzeigevorrichtung transmittiert werden mag, um angezeigt zu werden.
  • Die 3B zeigt ein Timing-Diagramm 350, das sich auf Betrieb eines Systems bezieht, in welchem eine Rendering-Zeit kürzer als die Aktualisierungsperiode für eine Anzeigevorrichtung ist, gemäß einer weiteren Ausführungsform. Das Timing-Diagramm 350 mag, als eine Option, im Kontext des Verfahrens von 2 implementiert sein. Das Timing-Diagramm 350 mag aber selbstverständlich in jeglicher gewünschter Umgebung implementiert werden. Es sollte auch beachtet werden, dass die oben erwähnten Definitionen im Laufe der folgenden Beschreibung Anwendung finden mögen.
  • Wie in dem vorliegenden Timing-Diagramm 350 gezeigt, ist die von der GPU zum Rendern jedes Bildframes zum Speicher benötigte Zeit kürzer als die gesamte Zeit, die für einen gerenderten Bildframe benötigt wird, um in seiner Gesamtheit zu einem Bildschirm einer Anzeigevorrichtung (als Monitor gezeigt) ausgelesen zu werden, und die dafür benötigt wird, dass der Bildschirm der Anzeigevorrichtung seinen Zustand ändert und die Photonen neuer Intensität emittiert (im Folgenden als die Aktualisierungsperiode bezeichnet). Mit anderen Worten ist die Renderframerate der GPU in der vorliegenden Ausführungsform schneller als die maximale Monitoraktualisierungsrate. In diesem Falle sollte die Monitoraktualisierungsrate gleich der höchsten Aktualisierungsrate oder der minimalen Monitoraktualisierungsperiode sein, so dass minimale Latenz für die GPU verursacht wird, wenn diese darauf wartet, dass ein Puffer frei wird für das Rendering eines nächsten Bildframes zu diesem.
  • In dem gezeigten spezifischen Beispiel weist der Speicher zwei Puffer auf: Puffer „A” und Puffer „B”. Wenn ein Zustand der Anzeigevorrichtung identifiziert wird, in dem eine Gesamtheit eines Bildframes von der Anzeigevorrichtung (zum Beispiel Bildframe „i – 1”) angezeigt wird, dann wird der nächste Bildframe „i” an die Anzeigevorrichtung transmittiert, um angezeigt zu werden, da er schon in seiner Gesamtheit zum Puffer „A” gerendert worden ist. Während dieses nächsten Bildframe „i” an die Anzeigevorrichtung transmittiert und auf dem Bildschirm der Anzeigevorrichtung gemalt wird, wird ein nächster Bildframe „i + 1” in seiner Gesamtheit zum Puffer „B” gerendert, und dann, nachdem einer Gesamtheit des Bildframes „i” auf dem Bildschirm der Anzeigevorrichtung gemalt wurde, wird der nächste Bildframe „i + 1” an die Anzeigevorrichtung transmittiert, um angezeigt zu werden, da er schon in seiner Gesamtheit zum Puffer „B” gerendert worden ist, und so weiter.
  • Da die Renderframerate der GPU schneller als die maximale Monitoraktualisierungsrate ist, erreicht die Aktualisierungsrate der Anzeigevorrichtung höchste Frequenz und sie aktualisiert weiterhin sich selbst mit neuen Bildframes so schnell, wie es für die Anzeigevorrichtung möglich ist. In dieser Art und Weise mögen die Bildframes von den Puffern an die Anzeigevorrichtung bei der schnellsten Rate transmittiert werden, mit der die Anzeigevorrichtung solche Bilder anzeigen kann, so dass die Puffer für weiteres Rendering zu denen so schnell wie möglich freigemacht werden mögen.
  • Die 4 zeigt ein Verfahren 400, das Bildwiederholung innerhalb eines Systems mit dynamischer Anzeigeaktualisierung bereitstellt, gemäß einer weiteren Ausführungsform. Als eine Option mag das Verfahren 400 im Kontext der 23B durchgeführt werden. Das Verfahren 400 mag aber selbstverständlich in jedem gewünschten Kontext durchgeführt werden. Es sollte wieder beachtet werden, dass die oben erwähnten Definitionen während der vorliegenden Beschreibung Anwendung finden mögen.
  • Wie gezeigt, wird es in der Entscheidung 402 bestimmt, ob eine Gesamtheit eines Bildframes gegenwärtig von einer Anzeigevorrichtung angezeigt wird. Es mag zum Beispiel bestimmt werden, ob ein Bildframe zu einer letzten Abtastzeile von einem Bildschirm einer Anzeigevorrichtung gemalt worden ist. Wenn es bestimmt wird, dass eine Gesamtheit eines Bildframes nicht von der Anzeigevorrichtung angezeigt wird (das heißt, dass ein Bildframe immer noch zu der Anzeigevorrichtung geschrieben wird), dann wartet das Verfahren 400 weiterhin darauf, dass es bestimmt wird, dass eine Gesamtheit eines Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird.
  • Nachdem es bestimmt ist, dass eine Gesamtheit eines Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird, wird es in Entscheidung 404 ferner bestimmt, ob eine Gesamtheit eines nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist. Wenn es bestimmt wird, dass eine Gesamtheit eines nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist (die Renderrate der GPU ist zum Beispiel schneller als die Anzeigeaktualisierungsrate), dann wird der nächste Bildframe an die Anzeigevorrichtung transmittiert, um angezeigt zu werden. Beachte die Operation 406. Folglich mag der nächste Bildframe an die Anzeigevorrichtung transmittiert werden, um angezeigt zu werden, sobald sowohl eine Gesamtheit eines Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird als auch eine Gesamtheit eines nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist.
  • Wenn es aber in der Entscheidung 404 bestimmt wird, dass eine Gesamtheit eines nächsten Bildframes, der angezeigt werden soll, nicht zum Speicher gerendert worden ist (zum Beispiel, dass der nächste Bildframe immer noch dabei ist, zum Speicher gerendert zu werden, insbesondere in dem Falle, wo die Renderrate der GPU langsamer als die Anzeigeaktualisierungsrate ist), dann wird eine Aktualisierung der Anzeigevorrichtung verzögert. Beachte die Operation 408. Es sollte beachtet werden, dass die Aktualisierung der Anzeigevorrichtung entweder dadurch verzögert werden mag, dass 1) die GPU bis zu einer vorbestimmten Zeitdauer wartet, bevor sie weitere Bildframes an die Anzeigevorrichtung transmittiert, oder dass 2) die Anzeigevorrichtung dazu instruiert wird, ein unerwünschter Bildframe zu ignorieren, der an die Anzeigevorrichtung transmittiert wird, wenn Hardware von einer GPU bis zu der vorbestimmten Zeitdauer nicht warten will (zum Beispiel unfähig ist, zu warten etc.), bevor sie weitere Bildframes an die Anzeigevorrichtung transmittiert.
  • Insbesondere hinsichtlich des oben erwähnten Falles 2) der Operation 408, sollte es beachtet werden, dass einige GPUs unfähig sind, die im Falle 1) der Operation 408 beschriebenen Verzögerung zu implementieren. Insbesondere können einige GPUs nur ein limitiertes vertikales Austastintervall implementieren, so dass jeder Versuch, dieses vertikale Austastintervall zu erhöhen, zu einer Hardwarezählerüberlauf führen mag, wo die GPU eine Auslesung (engl. „scanout”) vom Speicher unabhängig von den Inhalten des Speichers beginnt (das heißt unabhängig davon, ob eine Gesamtheit eines Bildframes zum Speicher gerendert worden ist). Die Auslesung mag folglich als eine schlechte Auslesung erachtet werden, da die mittels der Auslesung transmittierten Speicherinhalte keine Gesamtheit eines einzigen Bildframes sein mag und folglich unerwünscht sein mag.
  • Die GPU-Software mag wissen, dass eine schlechte Auslesung bevorstehend ist. Aufgrund der Natur der GPU mag die Hardware-Auslesung aber nicht von Software gestoppt werden können, so dass die schlechte Auslesung stattfinden wird. Um zu verhindern, dass die Anzeigevorrichtung den unerwünschten Inhalt zeigt, mag die GPU-Software eine Mittelung an die Anzeigevorrichtung senden, die nächste Auslesung zu ignorieren. Diese Mitteilung kann über i2c im Falle eines Digital Video Interface (DVI) Kabels gesendet werden, oder als ein i2c-over-Aux- oder Aux-Befehl im Falle eines Display Port (DP) Kabels. Die Mitteilung kann als ein Monitor Command Control Set (MCCS) Befehl oder ein anderer ähnlicher Befehl formatiert sein. Alternativ mag die GPU dies an die Anzeigevorrichtung unter Verwendung einer jeden anderen Technik signalisieren, wie zum Beispiel DP InfoFrame, De-Asserting Data Enable (DE) oder andere bandinterne oder bandexterne Signalgebungstechniken.
  • Als eine andere Option mag der GPU-Zählerüberlauf völlig innerhalb der Anzeigevorrichtung hantiert werden. Die GPU mag der Anzeigevorrichtung beim Hochfahren der assoziierten Computervorrichtung berichten, was der Timeoutwert ist, den die Anzeigevorrichtung benutzen sollte. Die Anzeigevorrichtung appliziert dann dieses Timeout und wird der erste Bildframe ignorieren, der nach dem Stattfinden des Timeouts empfangen wird. Wenn das GPU-Timeout und das Vorrichtungstimeout simultan stattfinden, mag die Anzeigevorrichtung den Bildschirm selbst-aktualisieren und den nächsten ankommenden Bildframe verwerfen.
  • Als noch eine weitere Option mag die GPU-Software erkennen, dass die Auslesung bevorstehend ist, aber „im letzten Moment” den Bildframe, der ausgelesen wird, ändern, um den vorhergehenden Frame zu sein. In diesem Falle mag es nicht notwendigerweise eine Maßnahme in der Anzeigevorrichtung geben, um mit der schlechten Auslesung umzugehen. In Fällen, wo diese Technik verwendet wird, wo der GPU-Zählerüberlauf immer vor dem Anzeigevorrichtungstimeout stattfindet, mag kein Anzeigevorrichtungstimeout notwendig sein, da eine Aktualisierung wegen Zählerüberlaufs immer rechtzeitig stattfinden mag.
  • Ferner, in dem Falle, wo die Anzeigelogik der GPU schon ein paar Abtastzeilen aus dem Puffer „B” vor -abgerufen haben mag, wenn die Umprogrammierung nach Puffer „A” stattfindet, mögen diese (inkorrekten) Zeilen an die Anzeigevorrichtung gesendet werden. Dieser Fall kann dadurch hantiert werden, dass die Anzeigevorrichtung immer zum Beispiel die obersten drei Zeilen von dem, was gesendet wird, verwirft und das Bild, das von der GPU gerendert/abgetastet ist, drei Zeilen höher macht.
  • Während der Aktualisierung der Anzeigevorrichtung verzögert wird, mag es kontinuierlich, periodisch etc. bestimmt werden, ob eine Gesamtheit eines nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, wie es in der Entscheidung 410 gezeigt ist, bis die Aktualisierung der Anzeigevorrichtung mit einem Zeitdauerschwelienwertbetrag verzögert ist (das heißt Entscheidung 412) oder es bestimmt wird, dass die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist (das heißt Entscheidung 410), was auch immer zuerst stattfindet.
  • Wenn es in der Entscheidung 410 bestimmt wird, dass die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, bevor es bestimmt wird, dass die Aktualisierung der Anzeigevorrichtung mit einem Zeitdauerschwelienwertbetrag („3A” in Entscheidung 410) verzögert worden ist, dann wird der nächste Bildframe an die Anzeigevorrichtung transmittiert, um angezeigt zu werden. Beachte die Operation 406. Auf der anderen Seite, wenn es in der Entscheidung 412 bestimmt wird, dass die Aktualisierung der Anzeigevorrichtung mit dem Zeitdauerschwellenwertbetrag verzögert worden ist, bevor es bestimmt wird, dass die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist („JA” in Entscheidung 412), dann wird das Anzeigen eines vorher angezeigten Bildframes wiederholt. Beachte die Operation 414. Ein solcher vorher angezeigter Bildframe mag derjenige sein, der gegenwärtig von der Anzeigevorrichtung angezeigt wird.
  • In einer Ausführungsform mag die Wiederholung des Anzeigens des Bildframes von einer GPU durchgeführt werden, die den Bildframe an die Anzeigevorrichtung erneut transmittiert (zum Beispiel aus dem Speicher). Das erneute Transmittieren des Bildframes an die Anzeigevorrichtung mag zum Beispiel stattfinden, wenn die Anzeigevorrichtung keinen internen Speicher hat, in welchem eine Kopie des Bildframes gespeichert ist während er angezeigt wird. In einer weiteren Ausführungsform, in der die Anzeigevorrichtung einen internen Speicher aufweist, mag die Wiederholung des Anzeigens des Bildframes von der Anzeigevorrichtung durchgeführt werden, die den Bildframe aus dem internen Speicher (zum Beispiel einem DRAM-Puffer, der intern in der Anzeigevorrichtung ist) anzeigt.
  • Folglich mag entweder die GPU oder die Anzeigevorrichtung die Wiederholung des Anzeigens eines vorher angezeigten Bildframes steuern, wie oben beschrieben. In dem Falle, wo die Anzeigevorrichtung das wiederholte Anzeigen des Bildframes steuert, mag die Anzeigevorrichtung einen eingebauten Timeoutwert haben, der spezifisch für den Bildschirm der Anzeigevorrichtung sein mag. Ein Scaler oder eine Timing-Steuerung (TCON) der Anzeigevorrichtung mag detektieren, wenn er bzw. sie innerhalb der Timeoutperiode noch nicht den nächsten Bildframe von der GPU erhalten hat, und mag automatisch den Bildschirm erneut mit dem vorher angezeigten Bildframe (zum Beispiel aus seinem bzw. ihrem Speicher) malen. Als eine andere Option mag die Anzeigevorrichtung eine Timing-Steuerung haben, die dazu fähig ist, das wiederholte Anzeigen des Bildframes nach Abschluss der Timeoutperiode zu initiieren.
  • In dem Falle, wo die GPU das wiederholte Anzeigen von Bildframes steuert, mag die Ausleselogik der GPU die Anzeigevorrichtung direkt ansteuern, ohne einen Scaler dazwischen. Folglich mag die GPU hinsichtlich des Scaler der Anzeigevorrichtung das Timeout in einer der oben beschriebenen Weise ähnlichen Weise durchführen. Die GPU mag dann ein (zum Beispiel bildschirmspezifisches) Timeout detektieren und eine erneute Auslesung des vorher angezeigten Bildframes initiieren.
  • Die 5A5B zeigen ein Beispiel vom Betrieb, wo ein vorher angezeigter Bildframe wiederholt wird, um zusätzliche Zeit für das Rendern eines nächsten Bildframes zum Speicher zu gewähren, gemäß verschiedenen Ausführungsformen. Insbesondere zeigt die 5A ein beispielhaftes Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung wie oben beschrieben von einer Grafikverarbeitungseinheit (GPU) gesteuert wird. Die 5B zeigt ein beispielhaftes Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung wie oben beschrieben von der Anzeigevorrichtung gesteuert wird.
  • Mehrere unterschiedliche Techniken mögen implementiert werden, wenn Anzeigen eines vorher angezeigten Bildframes wiederholt wird. In einer Ausführungsform mag das Verfahren 400 wahlweise nach Entscheidung 402 zurückkehren, so dass der nächste Bildframe erst dann an die Anzeigevorrichtung transmittiert werden mag, um angezeigt zu werden, wenn eine Gesamtheit des wiederholten Bildframes angezeigt wird („JA” in Entscheidung 402) und eine Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert ist („JA” in Entscheidung 404). Zum Beispiel, wenn die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, bevor eine Gesamtheit des wiederholten Bildframes von der Anzeigevorrichtung angezeigt wird, mag das Verfahren 400 darauf warten, dass die Gesamtheit des wiederholten Bildframes von der Anzeigevorrichtung angezeigt wird. In diesem Falle mag der nächste Bildframe an die Anzeigevorrichtung transmittiert werden, um angezeigt zu werden, als Reaktion darauf, dass ein Zustand der Anzeigevorrichtung identifiziert wird, in welchem die Gesamtheit des wiederholten Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird.
  • Die 6A6B zeigen Beispiele vom Betrieb, wo der nächste Bildframe, in seiner Gesamtheit gerendert, an die Anzeigevorrichtung transmittiert wird, um angezeigt zu werden, als Reaktion darauf, dass ein Zustand der Anzeigevorrichtung identifiziert wird, in welchem die Gesamtheit des wiederholten Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird. Insbesondere zeigt die 6A ein beispielhaftes Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer GPU gesteuert wird, um einen nächsten Bildframe anzuzeigen, nachdem eine Gesamtheit eines Wiederholungsbildframes angezeigt worden ist. Die 6B zeigt ein beispielhaftes Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer Anzeigevorrichtung gesteuert wird, um einen nächsten Bildframe anzuzeigen, nachdem eine Gesamtheit eines Wiederholungsbildframes angezeigt worden ist. Im Kontext der 6B mag die GPU optional den nächsten Bildframe, der in seiner Gesamtheit gerendert worden ist, an die Anzeigevorrichtung transmittieren und die Anzeigevorrichtung mag dann den empfangenen nächsten Bildframe puffern, um ihn anzuzeigen, sobald der Anzeigevorrichtungszustand identifiziert ist, in welchem die Gesamtheit des wiederholten Bildframes gegenwärtig angezeigt wird.
  • Als eine weitere Option für die oben beschriebene Ausführungsform (zum Beispiel die 6A6B), wo das Rendering eines zweiten Bildframes während des wiederholten Malens des vorher gerenderten ersten Bildframe auf dem Bildschirm abgeschlossen wird, mag die Timeoutperiode, die von der GPU oder von der Anzeigevorrichtung in Bezug auf die Anzeige des zweiten Bildframes implementiert wird, automatisch justiert werden. Zum Beispiel mag eine Renderingzeit für einen Bildframe mit der Renderingzeit für einen vorher gerenderten Bildframe korrelieren (das heißt, dass Bildframes in einer Sequenz ähnliche Inhalte und folglich ähnliche Renderingzeiten haben mögen). In der obigen Ausführungsform mag es folglich geschätzt werden, dass ein dritter Bildframe, der nach dem zweiten Bildframe folgt, die gleiche oder eine ähnliche Renderingzeit benötigen mag, als die Zeit, die zum Rendern des zweiten Bildframes verwendet wurde. Da der zweite Bildframe während des Malens des ersten Bildframes auf dem Bildschirm abgeschlossen wurde, mag die Timeoutperiode reduziert werden, um zu erlauben, dass eine geschätzte Abschlusszeit des Malens des zweiten Bildframes auf dem Bildschirm mit der geschätzten Abschlusszeit des Renderings des dritten Bildframes zusammenfällt. Mit dem justierten Timeout mag die tatsächliche Abschlusszeit des Malens des zweiten Bildframes auf dem Bildschirm folglich eng mit dem tatsächlichen Abschluss des Renderings des dritten Bildframes zusammenfallen. Durch Justieren der Timeoutperiode mag sichtbares Ruckeln durch Vermeiden der alternierenden Verwendung/Nichtverwendung einer nicht geschätzten Verzögerung zwischen Bildframes reduziert werden.
  • Ferner, wenn eine Gesamtheit des wiederholten Bildframes angezeigt wird aber eine Gesamtheit des nächsten Bildframes, der angezeigt werden soll, noch nicht zum Speicher gerendert worden ist, mag das Verfahren 400 zu Operation 408 zurückkehren, wobei die Aktualisierung der Anzeigevorrichtung wieder verzögert wird. Folglich mag das Verfahren 400 optional die Operationen 408414 wiederholen, wenn der wiederholte Bildframe angezeigt wird, so dass die Anzeige eines gleichen Bildes mehrmals wiederholte werden mag (zum Beispiel wenn es benötigt wird, ausreichende Zeit für den nächsten Bildframe zu gewähren, um zum Speicher gerendert zu werden).
  • In einer weiteren optionale Ausführungsform, wo Anzeige eines vorher angezeigten Bildframes wiederholt wird, mag der nächste Bildframe ausschließlich als Reaktion auf ein Bestimmen, dass die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, an die Anzeigevorrichtung transmittiert werden, um angezeigt zu werden, und somit ohne dass ein Anzeigevorrichtungszustand notwendigerweise identifiziert wird, in welchem die Gesamtheit des wiederholten Bildframes gegenwärtig von der Anzeigevorrichtung angezeigt wird. Mit anderen Worten, wenn die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, bevor eine Gesamtheit des wiederholten Bildframes von der Anzeigevorrichtung angezeigt worden ist, mag der nächste Bildframe an die Anzeigevorrichtung transmittiert werden, um angezeigt zu werden, ohne dass der Zustand der Anzeigevorrichtung notwendigerweise berücksichtigt wird.
  • In einer Implementierung der oben beschriebenen Ausführungsform mag die Anzeigevorrichtung, nach Erhalt des nächsten Bildframes bei der Anzeigevorrichtung, das Malen des wiederholten Bildframes auf einem Bildschirm der Anzeigevorrichtung unterbrechen und mit dem Malen des nächsten Bildframes auf dem Bildschirm der Anzeigevorrichtung an einem Punkt des Unterbrechens beginnen. Dies mag zum Ziehen führen, nämlich simultanes Anzeigen eines Abschnittes des wiederholten Bildframes und eines Abschnittes des nächsten Bildframes durch die Anzeigevorrichtung. Dieses Ziehen wird aber im Kontext des vorliegenden Verfahrens 400 minimal sein, da es nur in der spezifischen Situation toleriert werden wird, wo die Gesamtheit des nächsten Bildframes, der angezeigt werden soll, zum Speicher gerendert worden ist, bevor eine Gesamtheit des wiederholten Bildframes von der Anzeigevorrichtung angezeigt wird.
  • Die 7A7C zeigen Beispiele vom Betrieb, wo die Anzeigevorrichtung das Malen des wiederholten Bildframes auf einem Bildschirm der Anzeigevorrichtung unterbricht und mit dem Malen des nächsten Bildframes auf dem Bildschirm der Anzeigevorrichtung an einem Punkt des Unterbrechens beginnt, wie oben beschrieben. Insbesondere zeigt die 7A ein beispielhaftes Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer GPU gesteuert wird, um ein Anzeigen eines Wiederholungsbildframes zu unterbrechen und einen nächsten Bildframe an einem Punkt der Unterbrechung auf einem Bildschirm der Anzeigevorrichtung anzuzeigen. Die 7B zeigt ein Timing-Diagramm gemäß dem Timing-Diagramm der 7A, das aber zusätzlich ein automatisches Wiederholen des Anzeigens des nächsten Bildframes durch Malen des wiederholten nächsten Bildframes an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung aufweist. Da die in den 7A und 7B gezeigte Unterbrechung Ziehen verursacht (das heißt an dem Punkt, wo der Bildframe auf dem Bildschirm endet und der nächste Bildframe auf dem Bildschirm beginnt), mag der angezeigte nächste Bildframe zum Beispiel schnell von einer anderen Instanz des nächsten Bildframes überschrieben werden, um das sichtbare Ziehen von dem Bildschirm so schnell wie möglich zu entfernen.
  • Die 7C zeigt ein beispielhaftes Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer Anzeigevorrichtung gesteuert wird, um ein Anzeigen eines Wiederholungsbildframes zu unterbrechen und einen nächsten Bildframe an einem Punkt der Unterbrechung auf einem Bildschirm der Anzeigevorrichtung anzuzeigen. Es sollte beachtet werden, dass im Kontext von der 7C die Anzeigevorrichtung operierbar sein mag, um den schon gemalten Abschnitt des Wiederholungsbildframes auf dem Bildschirm zu halten, während sie mit dem Malen des nächsten Bildframes am Punkt der Unterbrechung weitermacht.
  • In einer weiteren Implementierung der oben beschriebenen Ausführungsform mag die Anzeigevorrichtung, nach Erhalt des nächsten Bildframes bei der Anzeigevorrichtung, das Malen des wiederholten Bildframes auf dem Bildschirm der Anzeigevorrichtung unterbrechen und mag beginnen, der nächste Bildframe auf dem Bildschirm der Anzeigevorrichtung an einer ersten Abtastzeile des Bildschirms der Anzeigevorrichtung zu malen. Dies mag erlauben, dass eine Gesamtheit des nächsten Bildframes von der Anzeigevorrichtung angezeigt wird, so dass das oben beschriebene Ziehen vermeidet werden mag.
  • Die 8A8B zeigen Beispiele vom Betrieb, wo die Anzeigevorrichtung das Malen des wiederholten Bildframes auf einem Bildschirm der Anzeigevorrichtung unterbricht und beginnt, der nächste Bildframe auf dem Bildschirm der Anzeigevorrichtung an einer ersten Abtastzeile des Bildschirms der Anzeigevorrichtung zu malen. Insbesondere zeigt die 8A ein beispielhaftes Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer GPU gesteuert wird, um ein Anzeigen eines Wiederholungsbildframes zu unterbrechen und einen nächsten Bildframe an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung anzuzeigen. Es sollte beachtet werden, dass die GPU im Kontext der 8A die Anzeigevorrichtung steuern mag, um die Aktualisierung des Bildschirms neu zu starten, so dass der nächste Bildframe beginnend an einer ersten Abtastzeile des Bildschirms gemalt wird. Die 8B zeigt ein beispielhaftes Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung von einer Anzeigevorrichtung gesteuert wird, um ein Anzeigen eines Wiederholungsbildframes zu unterbrechen und einen nächsten Bildframe an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung anzuzeigen.
  • Als eine optionale Erweiterung des Verfahrens 400 von 4, die nicht notwendigerweise auf jede der Operationen des Verfahrens 400 begrenzt sein mag, mag eine Technik verwendet werden, um die Reaktionszeit der Anzeigevorrichtung durch Modifizieren eines Pixelwertes als eine Funktion von einer geschätzten Anzeigedauer (zum Beispiel wie unten mit Bezug auf die 911 detaillierter beschrieben) zu verbessern.
  • Die 9 zeigt ein Verfahren 900 zum Modifizieren eines Pixelwertes als eine Funktion von einer geschätzten Anzeigedauer, gemäß einer weiteren Ausführungsform. Als eine Option mag das Verfahren 900 im Kontext der 28B durchgeführt werden. Das Verfahren 900 mag aber selbstverständlich in jedem gewünschten Kontext durchgeführt werden. Es sollte nochmals beachtet werden, dass die oben erwähnten Definitionen während der vorliegenden Beschreibung Anwendung finden mögen.
  • Wie es in der Operation 902 gezeigt ist, wird ein Wert eines Pixels eines Bildframes identifiziert, der auf einem Bildschirm der Anzeigevorrichtung angezeigt werden soll, wobei die Anzeigevorrichtung in der Lage ist, Aktualisierungen zu unvorhersehbaren Zeiten zu hantieren. Die Anzeigevorrichtung mag in der Lage sein, Aktualisierungen zu unvorhersehbaren Zeiten in der oben beschriebenen Art und Weise zu hantieren mit Bezug auf dynamisches Aktualisieren der Anzeigevorrichtung, wie oben unter Bezugnahme auf die vorhergehenden Figuren beschrieben. In einer Ausführungsform mag der Bildschirm ein Bauteil einer 2D-Anzeigevorrichtung sein.
  • In einer Ausführungsform mag der Wert des Pixels des Bildframes, der angezeigt werden soll, von einer GPU identifiziert werden. Der Wert mag sich zum Beispiel aus Rendering und/oder jeglicher anderen Verarbeitung des Bildframes durch die GPU ergeben. Folglich mag der Wert des Pixels ein Farbwert des Pixels sein.
  • Des Weiteren wird, wie in der Operation 904 gezeigt, der Wert des Pixels modifiziert als eine Funktion von einer geschätzten Zeitdauer bis eine nächste Aktualisierung, die das Pixel enthält, auf dem Bildschirm angezeigt werden soll. Eine solche geschätzte Zeitdauer mag in einer Ausführungsform die Zeit von dem Anzeigen des Pixels bis die Zeit sein, zu welcher das Pixel aktualisiert wird (zum Beispiel als Folge eines Anzeigens eines neuen Bildframes, der das Pixel enthält). Es sollte beachtet werden, dass das Modifizieren des Wertes des Pixels ein Ändern des Wertes des Pixels in jeglicher Art und Weise aufweisen mag, die eine Funktion von einer geschätzten Zeitdauer ist bis eine nächste Aktualisierung, die das Pixel enthält, auf dem Bildschirm angezeigt werden soll.
  • In einer Ausführungsform mag die geschätzte Zeitdauer basierend auf einer Zeitdauer oder als eine Zeitdauer bestimmt werden, während deren ein vorhergehender Bildframe auf dem Bildschirm angezeigt wurde, wobei der vorhergehende Bildframe zum Beispiel der Bildframe unmittelbar vorausgeht, der angezeigt werden soll. Selbstverständlich mag die geschätzte Zeitdauer als eine weitere Option basierend auf einer Zeitdauer bestimmt werden, während deren jeder von einer Mehrzahl von vorhergehenden Bildframes auf dem Bildschirm angezeigt wurden.
  • Nur beispielhaft erwähnt mag der Wert des Pixels modifiziert werden durch Durchführen einer Berechnung unter Verwendung eines Algorithmus, der die geschätzte Zeitdauer mit berücksichtigt bis die nächste Aktualisierung, die das Pixel enthält, auf dem Bildschirm angezeigt werden soll. Die Tabelle 1 stellt ein Beispiel des Algorithmus dar, der verwendet werden mag zum Modifizieren des Wertes des Pixels als eine Funktion von der geschätzten Zeitdauer bis die nächste Aktualisierung, die das Pixel enthält, auf dem Bildschirm angezeigt werden soll. Der in der Tabelle 1 gezeigte Algorithmus ist selbstverständlich nur zu illustrativen Zwecken und sollte nicht als in jeglicher Weise einschränkend ausgelegt werden.
  • Tabelle 1
    • Pixel_gesendet(i, j, t) = f(Pixel_in(i, j, t), Pixel_in(i, j, t – 1), geschätzte_Frame_Dauer(t)) wobei Pixel_in(i, j, t) der identifizierte Wert des Pixels an Bildschirmposition i, j ist,
    • Pixel_in(i, j, t – 1) ein vorhergehender Wert des Pixels an Bildschirmposition i, j ist, das in einem vorhergehenden Bildframe enthalten ist, der von dem Bildschirm angezeigt wurde, und geschätzte_Frame_Dauer(t) die geschätzte Zeitdauer ist bis die nächste Aktualisierung, die das Pixel enthält, angezeigt werden soll.
  • Wie in der Tabelle 1 gezeigt, mag der Wert eines Pixels, der an den Bildschirm gesendet wird, modifiziert werden als eine Funktion von dem identifizierten Wert des Pixels an einer bestimmten Bildschirmposition (zum Beispiel von der GPU enthalten), von dem vorhergehenden Wert des Pixels, der in einem vorhergehenden Frame enthalten ist, der an der gleichen Bildschirmposition von der Anzeigevorrichtung angezeigt wurde und von der geschätzten Zeitdauer bis die nächste Aktualisierung, die das Pixel enthält, angezeigt werden soll. In einer Ausführungsform mag der modifizierte Pixelwert eine Funktion von der Bildschirmposition (i, j) des Pixels sein, was in der US-Patentanmeldung Nr. 12/901,447 beschrieben ist, welche am 08.10.2010 vom Gerrit A. Slavenburg eingereicht wurde, die „System, Verfahren und Computerprogrammprodukt zur Verwendung von Bildschirmposition von Displayinhalten, um für Übersprechen während des Anzeigens von Stereoinhalten zu kompensieren" benannt ist und die hiermit in ihrer Gesamtheit durch Bezugnahme hierin aufgenommen ist.
  • Bezugnehmend auf den in der Tabelle 1 gezeigten Algorithmus sollte es beachtet werden, dass die geschätzte_Frame_Dauer(t) unter Verwendung einer Vielfalt von Techniken bestimmt werden mag. In einer Ausführungsform ist die geschätzte_Frame_Dauer(t) = Frame_Dauer(t – 1), wobei Frame_Dauer(t – 1) eine Zeitdauer ist, während deren der vorhergehende Bildframe auf dem Bildschirm angezeigt wurde. In einer weiteren Ausführungsform ist die geschätzte_Frame_Dauer(t) eine durchschnittliche Zeitdauer, während deren eine vorbestimmte Anzahl von vorhergehenden Bildframes von dem Bildschirm angezeigt wurde, wie beispielsweise geschätzte_Frame_Dauer(t) = Durchschnitt von Frame_Dauer(t – 1), Frame_Dauer(t – 2), ..., Frame_Dauer(t – N), wobei N eine vorbestimmte Zahl ist. In noch einer weiteren Ausführungsform ist die geschätzte_Frame_Dauer(t) eine minimale Zeitdauer unter Zeitdauern, während deren eine vorbestimmte Anzahl von vorhergehenden Bildframes von dem Bildschirm angezeigt wurde, wie beispielsweise geschätzte_Frame_Dauer(t) = Minimum von (Frame_Dauer(t – 1), Frame_Dauer(t – 2), ..., Frame_Dauer(t – N)), wobei N eine vorbestimmte Zahl ist.
  • Als eine weitere Option mag die geschätzte_Frame_Dauer(t) als eine Funktion von Zeitdauern bestimmt werden, während deren eine vorbestimmte Anzahl von vorhergehenden Bildframes von dem Bildschirm angezeigt wurde, wie beispielsweise geschätzte_Frame_Dauer(t) = Funktion von [Frame_Dauer(t – 1), Frame_Dauer(t – 2), ..., Frame_Dauer(t – N)], wobei N eine vorbestimmte Zahl ist. Bloß beispielhaft erwähnt, mag die geschätzte_Frame_Dauer(t) durch Erkennung eines Musters (zum Beispiel Kadenz) unter den Zeitdauern bestimmt werden, während deren die vorhergehenden Frames jeweils von dem Bildschirm angezeigt wurden. Eine solche Erkennung mag mittels Kadenz-Detektion durchgeführt werden, wobei Kadenzen ein jedes Muster bis zu einer bestimmten begrenzten Länge eines Beobachtungsfensters sein können. In einer beispielhaften Ausführungsform, wenn es beobachtet wird, dass es ein Muster in der Framedauer gibt, aufweisend: Dauer1 für Frame1, Dauer1 für Frame2, Dauer2 für Frame3, Dauer1 für Frame4, Dauer1 für Frame5, Dauer2 für Frame6, dann mag die geschätzte_Frame_Dauer(t) basierend auf dieser beobachteten Kadenz vorhergesagt werden.
  • Der modifizierte Wert des Pixels wird ferner, wie es in der Operation 906 gezeigt ist, an den Bildschirm transmittiert, um angezeigt zu werden. Das Modifizieren des Wertes des Pixels mag zu einem Pixelwert führen, der fähig ist, einen gewünschten Luminanzwert zu einem bestimmten Zeitpunkt zu erreichen. Zum Beispiel mag der Bildschirm von dem Abtasten eines Werten eines Pixels bis zum tatsächlichen Erreichen einer korrekten Intensität für das Pixel in einer solchen Art und Weise, dass ein Betrachter die korrekte Intensität für das Pixel wahrnimmt, eine bestimmte Zeitdauer benötigen. Mit anderen Worten mag der Bildschirm eine bestimmte Zeitdauer benötigen, um die gewünschte Luminanz zu erreichen. In einigen Fällen mag der Bildschirm nicht ausreichend Zeit gegeben werden, um die gewünschte Luminanz zu erreichen, wie zum Beispiel wenn ein nächster Wert des Pixels an den Bildschirm transmittiert wird, um angezeigt zu werden, bevor der Bildschirm die ursprünglich gewünschte Luminanz erreicht hat.
  • Folglich mag ein ursprünglicher Wert eines Pixels, das von dem Bildschirm angezeigt werden soll, in der oben mit Bezugnahme auf die Operation 904 beschriebenen Art und Weise modifiziert werden, um dem Bildschirm zu erlauben, den ursprünglichen Wert des Pixels innerhalb der gegebenen Zeit zu erreichen. In einer beispielhaften Ausführungsform mag ein erster Wert (erste Luminanz) eines Pixels, das in einem Bildframe enthalten ist, unterschiedlich von einem zweiten Wert (zweiter Luminanz) des Pixels sein, das in einem nachfolgenden Bildframe enthalten ist. Ein Bildschirm, der zum Anzeigen der Bildframes verwendet werden soll, mag eine bestimmte Zeitdauer benötigen, um vom Anzeigen des ersten Pixelwertes zum Anzeigen des zweiten Pixelwertes zu übergehen. Wenn diese bestimmte Zeitdauer dem Bildschirm nicht gegeben wird, mag der zweite Pixelwert modifiziert werden, um eine größere Differenz zwischen dem ersten Pixelwert und dem zweiten Pixelwert zu ergeben, so dass der Bildschirm so angesteuert bzw. getrieben wird, dass er den gewünschten zweiten Pixelwert in kürzere Zeit erreicht.
  • Die 10 zeigt einen Grafen 1000 einer resultierenden Luminanz, wenn ein Pixelwert als eine Funktion von einer geschätzten Anzeigedauer modifiziert und während dieser geschätzten Anzeigedauer angezeigt wird, gemäß noch einer weiteren Ausführungsform. Als eine Option mag der Graf 1000 eine Implementierung des Verfahrens 900 von 9 darstellen, wenn ein Pixelwert als eine Funktion von einer geschätzten Anzeigedauer modifiziert wird und während dieser geschätzten Anzeigedauer angezeigt wird.
  • Wie gezeigt wird ein Pixel, das in einer Mehrzahl von Bildframes enthalten ist, anfangs eine Sequenz von Grauwerten entsprechend diesen Bildframes gegeben, einschließlich g1, g1, g1, g2, g2, g2. Der Bildschirm mag fähig sein, die anfänglichen Pixelwerte innerhalb der geschätzten gegebenen Zeitdauer zu erreichen, mit Ausnahme der ersten Instanz des g2-Wertes. Insbesondere mag die zu dem Bildschirm gegebene geschätzte Zeitdauer zum Anzeigen der ersten Instanz des g2-Wertes kürzer sein als eine Zeit, die für den Bildschirm benötigt wird, um von dem g1-Wert zu dem gewünschten g2-Wert zu übergehen.
  • Folglich mag die erste Instanz des g2-Wertes, die zu dem Pixel gegeben wird, in den Wert g3 modifiziert werden (welcher einen größeren Abstand von g1 als zwischen g1 und g2 hat). Folglich sind die tatsächlich an den Bildschirm transmittierten Pixelwerte g1, g1, g1, g3, g2, g2. Wie auf dem Grafen 1000 gezeigt, wird die Luminanz des Pixels auf dem Bildschirm erhöht, wenn der Wert g3 abgetastet wird, so dass der Bildschirm zu der Zeit, wo der Bildschirm eine Aktualisierung des Pixelwertes empfängt (das heißt den ersten g2 von den transmittierten Pixelwerten), den Wert g2 erreicht hat, welcher der anfänglich gewünschten Wert vor der Modifizierung war.
  • Die 11 zeigt einen Grafen 1100 einer resultierenden Luminanz, wenn ein Pixelwert als eine Funktion von einer geschätzten Anzeigedauer modifiziert und länger als diese geschätzte Anzeigedauer angezeigt wird, gemäß noch einer weiteren Ausführungsform. Als eine Option mag der Graf 1100 eine Implementierung des Verfahrens 900 von 9 darstellen, wenn ein Pixelwert als eine Funktion von einer geschätzten Anzeigedauer modifiziert wird und länger als diese geschätzte Anzeigedauer angezeigt wird.
  • Ähnlich wie 10 enthält die 11 eine anfänglich gewünschte Sequenz von Werten für ein Pixel, die g1, g1, g1, g2, g2, g2 enthält, wobei die tatsächliche Werte für das Pixel, die an den Bildschirm transmittiert werden, g1, g1, g1, g3, g2, g2 enthalten. Wenn der Wert g3 abgetastet wird, wird die Luminanz des Pixels auf dem Bildschirm erhöht. In der 11 wird die Aktualisierung des Pixels später als geschätzt von der Anzeigevorrichtung empfangen, so dass die Luminanz des Pixels über den Wert g2 (der der anfänglich gewünschte Wert vor der Modifizierung war) hinaus erhöht wird, so dass der Bereich unter der gezeigten Kurve zu hoch ist, wenn die Hintergrundbeleuchtung der Anzeigevorrichtung an ist, so die wahrgenommene Luminanz zu hoch ist. Auf diese Weise ist die wahrgenommene Luminanz für das Pixel ungewünscht.
  • Für eine 2D-Anzeigevorrichtung ist dieser Fehler, der potenziell aus der obengenannten Modifizierung folgen kann, nicht fatal. Wenn der resultierende Pixelwert falsch ist, zum Beispiel ein Luminanzüberschuss bewirkend, mag es einen schwachen visuellen Bildfehler entlang der vorderen und oder hinteren Kante eines sich bewegenden Objektes geben. Des Weiteren, wenn die geschätzte Anzeigedauer aus einer Anzeigedauer eines vorhergehenden Bildframes bestimmt wird, wird der Fehler generell minimal sein, da eine Anwendung, die die Bildframes erzeugt, typisch eine ziemlich reguläre Aktualisierungsrate hat.
  • Für eine stereoskopische 3D-Anzeigevorrichtung (zeitsequentielle) mag die Verwendung des exakteren Modifizierungsbetrags für den Wert des Pixels essentiell sein. Fehler mögen Geisterbilder/Übersprechen zwischen den Augen bewirken. So das Verfahren 900 von 9 mag nicht gewünscht sein. Aus diesem Grund mag 3D-Bildschirme bzw. 3D-Monitore das dynamische Aktualisierungskonzept mit arbiträrer Zeitdauer des vertikalen Austastintervalls nicht in Zusammenhang mit den Verfahren 900 von 9 verwenden. Stattdessen mag die 3D-Anzeigevorrichtung entweder einen Ansatz mit fester Aktualisierungsrate oder den unten beschriebenen Ansatz mit „adaptiver variabler Aktualisierungsrate” verwenden.
  • Adaptive variable Aktualisierungsrate
  • Eine Anzeigevorrichtung mag in der Lage sein, viele Aktualisierungsraten zu hantieren, jede mit Eingabe-Timings normaler Art (engl. „input timings normal style”), zum Beispiel: 30 Hz, 40 Hz, 50 Hz, 60 Hz, 72 Hz, 85 Hz, 100 Hz, 120 Hz, etc.
  • Die GPU mag zum Beispiel anfangs bei einer 85 Hz Aktualisierungsrate rendern. Sie findet dann, dass sie das Rendering bei 85 Hz tatsächlich nicht aufrechterhalten kann, und sie gibt den Monitor eine spezielle Warnungsmitteilung, zum Beispiel einen MCSS-Befehlt über i2c, dass sie umschalten wird, zum Beispiel auf 72 Hz. Sie sendet diese Mitteilung gerade vor dem Umschalten auf das neue Timing. Die GPU mag zum Beispiel 100 Frames bei 85 Hz machen, 72 warnen, 200 Frames bei 72 Hz, 40 warnen, 500 Frames bei 40 Hz, 60 warnen, 300 Frames bei 60 Hz etc. Da der Scaler im Voraus vor dem Übergang gewarnt wird, kann der Scaler besser einen weichen Übergang machen, ohne durch einen normalen Moduswechsel zu gehen (zum Beispiel um einen schwarzen Bildschirm, beschädigten Frame etc. zu vermeiden).
  • Für einen Monitor, der zu einer 120 Hz Aktualisierungsrate fähig ist, mag etwas zusätzliche horizontale Austastung oder vertikale Austastung in den Timings mit niedrigen Aktualisierungsraten bereitgestellt werden, um sicherzustellen, dass die DVI immer in Dual-Link-Modus läuft, und um Link-Wechseln zu vermeiden, was auch bei DP ähnlich ist.
  • Diese Monitor mit „adaptiver variabler Aktualisierungsrate” mag in der Lage sein, das Ziel zu erreichen, in Fällen, wo die GPU gerade unter 60 Hz rendert, gut zu laufen, ohne die Wirkung eines Unterwechselns auf 30 Hz, wie mit einem regulären Monitor und „VSync-An”. Dieser Monitor mag aber nicht notwendigerweise gut auf Spiele reagieren, die sehr variable Framerenderzeiten haben.
  • Die 1213 zeigen Beispiele vom Betrieb, wo Bildwiederholung automatisiert ist und die Anzeigevorrichtung dazu fähig ist, das Malen eines wiederholten Bildframes auf einem Bildschirm der Anzeigevorrichtung zu unterbrechen, um mit dem Malen eines nächsten Bildframes auf einer ersten Zeile des Bildschirms der Anzeigevorrichtung zu beginnen. Insbesondere in dem Falle, wo die Anzeigevorrichtung das Unterbrechen des Malens eines Bildframes auf dem Bildschirm, um mit dem Malen eines nächsten Bildframe auf einer ersten Zeile der Anzeigevorrichtung zu beginnen, hantieren kann (das heißt abbrechen und erneut abtasten), mag das Verzögern der Aktualisierung der Anzeigevorrichtung von einer Grafikverarbeitungseinheit durchgeführt werden und weitere Bildframes können automatisch von der Anzeigevorrichtung bei einer vorkonfigurierten Frequenz (zum Beispiel 40 Hz) wiederholt werden, bis der nächste Bildframe in seiner Gesamtheit gerendert und folglich an die Anzeigevorrichtung transmittiert worden ist, um angezeigt zu werden. Diese automatische Wiederholung von Bildframes mag die Flimmerprobleme niedriger Frequenz vermeiden, die bei 20–30 Hz insgesamt auftreten.
  • Die 12 zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung durch eine Anzeigevorrichtung automatisiert ist, die dazu fähig ist, ein Anzeigen eines Wiederholungsbildframes zu unterbrechen, um einen nächsten Bildframe beginnend an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung anzuzeigen. Die Ausführungsform der 12 mag sich auf entweder einem Monitor mit einem Scaler, der die Wiederholungen initiiert, oder auf einem LCD-Feld für Tablets, Telefone oder Notebooks, wo es keinen Scaler aber eine TCON gibt, die zum Selbstaktualisieren fähig ist, anwenden lassen. Um Flimmer zu vermeiden, wiederholt der Bildschirm automatisch einen zuletzt empfangenen Frame bei irgendeiner Rate (bei 120 Hz gezeigt, aber sie könnte auch niedriger sein, wie zum Beispiel 40 oder 50 Hz). Ferner, um jegliche durch solche häufige Wiederholungen verursachte Verzögerung zu vermeiden, unterbricht/Re-Abtastet die Anzeigevorrichtung sobald der nächste Bildframe in seiner Gesamtheit gerendert worden ist und somit bereit ist, angezeigt zu werden. Wie gezeigt, wenn zum Beispiel bei 120 Hz aktualisiert wird, mag die Anzeigevorrichtung immer unterbrechen/re-abtasten, um den nächsten Bildframe anzuzeigen. Wenn die automatisierte Wiederholung zum Beispiel bei 40 oder 50 Hz stattfindet, mag das Unterbrechen/Re-Abtasten stattfinden oder nicht stattfinden, um den nächsten Bildframe anzuzeigen. In Jedem Falle wird es nie eine Verzögerung zwischen dem Abschluss des Renderings eines Bildframes und dem Beginnen des Abtastens dieses Bildframes an den Bildschirm geben.
  • Die 13 zeigt ein Timing-Diagramm, das sich auf Betrieb eines Systems bezieht, das eine dynamische Anzeigeaktualisierung aufweist, in welchem Bildwiederholung durch eine GPU automatisiert ist, die dazu fähig ist, ein Unterbrechen eines Anzeigens eines Wiederholungsbildframes durch eine Anzeigevorrichtung zu bewirken, um einen nächsten Bildframe beginnend an einer ersten Abtastzeile eines Bildschirms der Anzeigevorrichtung anzuzeigen. Die GPU initiiert die Wiederholungen, die bei etwa 40 Hz gezeigt werden aber bei jeder höheren oder niedrigeren Rate gemacht werden könnte, die für den Bildschirm spezifisch ist, um Flimmer zu vermeiden. Wie gezeigt, initiiert die GPU die Wiederholungen mit einiger Verzögerung dazwischen (das heißt gemäß dem Timeout), und in jedem Fall, wenn ein nächstes Bild in seiner Gesamtheit gerendert worden ist, unterbricht die GPU die laufende Auslesung und zeigt der Anzeigevorrichtung dies an, welche eine neue Auslesung des nächsten Bildes beginnt.
  • Die 14 stellt ein beispielhaftes System 1400 dar, in welchem die verschiedenen Architektur und/oder Funktionalität der verschiedenen vorhergehenden Ausführungsformen implementiert werden mögen. Wie gezeigt, wird ein System 1400 bereitgestellt, das zumindest einen Hostprozessor 1401 aufweist, der mit einem Kommunikationsbus 1402 verbunden ist. Das System 1400 weist auch einen Hauptspeicher 1404 auf. Steuerungslogik (Software) und Daten sind in dem Hauptspeicher 1404 gespeichert, der die Form eines Speichers mit direktem Zugriff (RAM) annehmen mag.
  • Das System 1400 weist auch einen Grafikprozessor 1406 und ein Display 1408, das heißt einen Computermonitor, auf. In einer Ausführungsform mag der Grafikprozessor 1406 eine Mehrzahl von Shadermodulen (engl. „shader modules”), ein Rasterisierungsmodul (engl. „rasterization module”) etc. aufweisen. Jedes der vorhergehenden Module mag sich sogar auf einer einzigen Halbleiterplattform befinden, um eine Grafikverarbeitungseinheit (GPU) zu bilden.
  • In der vorliegenden Beschreibung mag eine einzige Halbleiterplattform auf einen alleinigen einheitlichen halbleiterbasierten integrierten Schaltkreis oder Chip verweisen. Es sollte beachtet werden, dass der Begriff einzige Halbleiterplattform auch auf Mehrchipmodule mit erhöhter Konnektivität, die Auf-dem-Chip-Operation (engl. „on-chip operation”) simuliert, verweisen mag und erhebliche Verbesserungen gegenüber der Verwendung einer konventionellen Implementierung mit zentralem Verarbeitungseinheit (CPU) und Bus erzielen mag. Die verschiedenen Module mögen selbstverständlich auch separat oder in verschiedenen Kombinationen von Halbleiterplattformen gemäß den Wünschen des Benutzers angeordnet werden.
  • Das System 1400 mag auch einen sekundären Speicher 1410 aufweisen. Der Sekundäre Speicher 1410 weist zum Beispiel einen Festplattenlaufwerk und/oder einen entfernbaren Speicherlaufwerk (engl. „removable storage drive”), darstellend einen Floppy-Disk-Laufwerk, einen Magnetbandlaufwerk, einen Compact-Disk-Laufwerk etc. auf. Der entfernbare Speicherlaufwerk liest von und/oder schreibt zu einer entfernbaren Speichereinheit in einer wohlbekannten Art und Weise.
  • Computerprogramme oder Computersteuerungsalgorithmen mögen in dem Hauptspeicher 1404 und/oder in dem sekundären Speicher 1410 gespeichert werden. Solche Programme machen es, wenn sie ausgeführt werden, für das System 1400 möglich, verschiedene Funktionen durchzuführen. Speicher 1404, Speicher 1410 und/oder jeglicher andere Speicher sind mögliche Beispiele von computerlesbaren Medien.
  • In einer Ausführungsform mag die Architektur und/oder Funktionalität der verschiedenen vorhergehenden Figuren im Kontext des Hostprozessors 1401, des Grafikprozessors 1406, eines integrierten Schaltkreises (nicht gezeigt), der zu zumindest einen Teil der Fähigkeiten von sowohl dem Hostprozessor 1401 als auch dem Grafikprozessor 1406 aufweist, eines Chipsatzes (das heißt, eine Gruppe von integrierten Schaltkreisen, die zum Arbeiten konzipiert sind und als eine Einheit zum Ausführen verwandter Funktionen verkauft werden) und/oder übrigens auch irgendeines anderen integrierten Schaltkreises implementiert werden.
  • Die Architektur und/oder Funktionalität der verschiedenen vorhergehenden Figuren mögen aber auch in dem Kontext eines generellen bzw. allgemeinen Computersystems, eines Leiterplattensystems, eines Spielkonsolsystems, das für Unterhaltungszwecke dediziert ist, eines anwendungsspezifischen Systems und/oder jegliches anderen gewünschten Systems implementiert werden. Zum Beispiel, mag das System 1400 die Form eines Desktopcomputers, eines Laptopcomputers und/oder jeglicher anderen Art von Logik annehmen. Das System 1400 mag aber auch die Form verschiedener anderen Vorrichtungen annehmen, einschließlich einer persönlichen digitalen Assistenten-Vorrichtung (PDA), einer Mobiltelefon- Vorrichtung, eines Fernsehers etc., ohne auf diese begrenzt zu sein.
  • Das System 1400 mag ferner, obwohl dies nicht gezeigt ist, an ein Netzwerk (zum Beispiel ein Telekommunikationsnetzwerk, ein lokales Netzwerk (LAN), ein drahtloses Netzwerk, ein Weitverkehrsnetz (WAN), wie das Internetz, ein Peer-to-Peer-Netzwerk, ein Kabelnetzwerk etc.) zu Kommunikationszwecken gekoppelt sein.
  • Während verschiedene Ausführungsformen oben beschrieben worden sind, sollte es verstanden werden, dass diese nur beispielhaft und nicht einschränkend dargestellt worden sind. Folglich sollte die Weite und der Umfang einer bevorzugten Ausführungsform nicht von einer jeglichen der oben beschriebenen Ausführungsformen begrenzt werden, sondern nur in Übereinstimmung mit den nachfolgenden Ansprüchen und deren Äquivalenten definiert werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • 08.10.2010 vom Gerrit A. Slavenburg eingereicht wurde, die „System, Verfahren und Computerprogrammprodukt zur Verwendung von Bildschirmposition von Displayinhalten, um für Übersprechen während des Anzeigens von Stereoinhalten zu kompensieren” [0092]

Claims (16)

  1. Ein Verfahren aufweisend: Identifizieren eines Wertes eines Pixels eines Bildframes, der auf einem Bildschirm einer Anzeigevorrichtung angezeigt werden soll, die dazu fähig ist, Aktualisierungen zu unvorhersagbaren Zeiten zu hantieren; Modifizieren des Wertes des Pixels als eine Funktion von einer geschätzten Zeitdauer bis eine nächste Aktualisierung, die das Pixel enthält, auf dem Bildschirm angezeigt werden soll; und Transmittieren des modifizierten Wertes des Pixels an den Bildschirm, um diesen anzuzeigen.
  2. Das Verfahren gemäß Anspruch 1, wobei der Wert des Pixels von einer Grafikverarbeitungseinheit identifiziert wird.
  3. Das Verfahren gemäß Anspruch 1, wobei die geschätzte Zeitdauer basierend auf einer Zeitdauer bestimmt wird, in der ein vorhergehender Bildframe angezeigt wurde.
  4. Das Verfahren gemäß Anspruch 3, wobei die geschätzte Zeitdauer als die Zeitdauer bestimmt wird, in der der vorhergehende Bildframe angezeigt wurde.
  5. Das Verfahren gemäß Anspruch 3, wobei der vorhergehende Bildframe dem Bildframe, der angezeigt werden soll, unmittelbar vorausgeht.
  6. Das Verfahren gemäß Anspruch 1, wobei der Wert des Pixels unter Verwendung eines Algorithmus modifiziert wird, welcher Algorithmus folgendes Aufweist: Pixel_gesendet(i, j, t) = f(Pixel_in(i, j, t), Pixel_in(i, j, t – 1), geschätzte_Frame_Dauer(t)) wobei Pixel_in(i, j, t) der identifizierte Wert des Pixels an Bildschirmposition i, j ist, Pixel_in(i, j, t – 1) ein vorhergehender Wert des Pixels an Bildschirmposition i, j ist, das in einem vorhergehenden Bildframe enthalten ist, der von dem Bildschirm angezeigt wurde, und geschätzte_Frame_Dauer(t) die geschätzte Zeitdauer ist bis die nächste Aktualisierung, die das Pixel enthält, angezeigt werden soll.
  7. Das Verfahren gemäß Anspruch 6, wobei die geschätzte_Frame_Dauer(t) = Frame_Dauer(t – 1) und Frame_Dauer(t – 1) ist eine Zeitdauer, während deren der vorhergehenden Bildframe von dem Bildschirm angezeigt wurde.
  8. Das Verfahren gemäß Anspruch 6, wobei die geschätzte_Frame_Dauer(t) eine durchschnittliche Zeitdauer ist, während deren eine vorbestimmte Anzahl von vorhergehenden Bildframes von dem Bildschirm angezeigt wurden.
  9. Das Verfahren gemäß Anspruch 6, wobei die geschätzte_Frame_Dauer(t) eine minimale Zeitdauer unter Zeitdauern ist, während deren eine vorbestimmte Anzahl von vorhergehenden Bildframes von dem Bildschirm angezeigt wurden.
  10. Das Verfahren gemäß Anspruch 6, wobei die geschätzte_Frame_Dauer(t) als eine Funktion von Zeitdauern bestimmt wird, während deren eine vorbestimmte Anzahl von vorhergehenden Bildframes von dem Bildschirm angezeigt wurden.
  11. Das Verfahren gemäß Anspruch 10, wobei die geschätzte_Frame_Dauer(t) aus Erkennung eines Musters unter der Zeitdauern bestimmt wird, während deren die vorbestimmte Anzahl von vorhergehenden Bildframes von dem Bildschirm angezeigt wurden.
  12. Das Verfahren gemäß Anspruch 1, wobei der Wert des Pixels derart modifiziert wird, dass der Pixel, wenn er angezeigt wird, einen bestimmten Luminanzwert zu einem bestimmten Zeitpunkt erreicht.
  13. Das Verfahren gemäß Anspruch 1, wobei der Bildschirm ein Bauteil einer zweidimensionalen (2D) Anzeigevorrichtung ist.
  14. Ein Computerprogrammprodukt, das auf einem nicht flüchtigen computerlesbaren Medium verkörpert ist, aufweisend: Computercode zum Identifizieren eines Wertes eines Pixels eines Bildframes, der auf einem Bildschirm einer Anzeigevorrichtung angezeigt werden soll, die dazu fähig ist, Aktualisierungen zu unvorhersagbaren Zeiten zu hantieren; Computercode zum Modifizieren des Wertes des Pixels als eine Funktion von einer geschätzten Zeitdauer bis eine nächste Aktualisierung, die das Pixel enthält, auf dem Bildschirm angezeigt werden soll; und Computercode zum Transmittieren des modifizierten Wertes des Pixels an den Bildschirm, um diesen anzuzeigen.
  15. Ein System aufweisend: einen Prozessor zum: Identifizieren eines Wertes eines Pixels eines Bildframes, der auf einem Bildschirm einer Anzeigevorrichtung angezeigt werden soll, die dazu fähig ist, Aktualisierungen zu unvorhersagbaren Zeiten zu hantieren; Modifizieren des Wertes des Pixels als eine Funktion von einer geschätzten Zeitdauer bis eine nächste Aktualisierung, die das Pixel enthält, auf dem Bildschirm angezeigt werden soll; und Transmittieren des modifizierten Wertes des Pixels an den Bildschirm, um diesen anzuzeigen.
  16. Das System gemäß Anspruch 15, wobei der Prozessor an Speicher und an die Anzeigevorrichtung über einen Bus gekoppelt ist.
DE102013218622.3A 2012-10-02 2013-09-17 System, Verfahren und Computerprogrammprodukt zum Modifizieren eines Pixelwertes als eine Funktion von einer geschätzten Anzeigedauer Active DE102013218622B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261709085P 2012-10-02 2012-10-02
US61/709,085 2012-10-02
US13/830,847 US8797340B2 (en) 2012-10-02 2013-03-14 System, method, and computer program product for modifying a pixel value as a function of a display duration estimate
US13/830,847 2013-03-14

Publications (2)

Publication Number Publication Date
DE102013218622A1 true DE102013218622A1 (de) 2014-04-03
DE102013218622B4 DE102013218622B4 (de) 2016-08-04

Family

ID=50276474

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013218622.3A Active DE102013218622B4 (de) 2012-10-02 2013-09-17 System, Verfahren und Computerprogrammprodukt zum Modifizieren eines Pixelwertes als eine Funktion von einer geschätzten Anzeigedauer

Country Status (1)

Country Link
DE (1) DE102013218622B4 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650465A (zh) * 2021-01-12 2021-04-13 北京字节跳动网络技术有限公司 终端的控制方法、装置、终端和存储介质
DE102015108424B4 (de) 2014-05-30 2022-01-05 Nvidia Corporation Dynamische Frame-Wiederholung in einem Variable-Wiederauffrischungs-Rate-System

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7038690B2 (en) * 2001-03-23 2006-05-02 Microsoft Corporation Methods and systems for displaying animated graphics on a computing device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
08.10.2010 vom Gerrit A. Slavenburg eingereicht wurde, die "System, Verfahren und Computerprogrammprodukt zur Verwendung von Bildschirmposition von Displayinhalten, um für Übersprechen während des Anzeigens von Stereoinhalten zu kompensieren"

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015108424B4 (de) 2014-05-30 2022-01-05 Nvidia Corporation Dynamische Frame-Wiederholung in einem Variable-Wiederauffrischungs-Rate-System
CN112650465A (zh) * 2021-01-12 2021-04-13 北京字节跳动网络技术有限公司 终端的控制方法、装置、终端和存储介质

Also Published As

Publication number Publication date
DE102013218622B4 (de) 2016-08-04

Similar Documents

Publication Publication Date Title
DE102015108424B4 (de) Dynamische Frame-Wiederholung in einem Variable-Wiederauffrischungs-Rate-System
DE102015108057B4 (de) Aktualisierungsabhängiges adaptives Dithering für ein Display mit variabler Aktualisierungsrate
US8797340B2 (en) System, method, and computer program product for modifying a pixel value as a function of a display duration estimate
DE102004062529B4 (de) Verfahren und Vorrichtung zum Treiben einer Flüssigkristallanzeigevorrichtung
JP7195935B2 (ja) 画像表示方法、表示システム及びコンピューター読取可能記憶媒体
DE112011103209B4 (de) Verfahren, vorrichtung und system zur steuerung von anzeigeaktivität
KR102675806B1 (ko) 영상 처리 장치 및 그 영상 처리 방법
DE112004002391B4 (de) Räumlich-zeitliche Erzeugung von Bewegungsunschärfe
DE102018129318A1 (de) Anordnen von Segmenten eines Bildes zum Codieren und zur Übertragung an eine Anzeigevorrichtung
DE102022100638A1 (de) Tracking und Kompensation von Pixeldegradation bei Display-Technologien
DE102011080776A1 (de) System, Verfahren und Computerprogrammprodukt zum Aktivieren einer Hintergrundbeleuchtung eines Anzeigengeräts, welches stereoskopischenAnzeigeinhalt anzeigt
DE102013021708A1 (de) Flüssigkristallanzeige mit geringer bewegungsunschärfe
KR20210014300A (ko) 전자 장치 및 그 제어 방법
DE102013218622B4 (de) System, Verfahren und Computerprogrammprodukt zum Modifizieren eines Pixelwertes als eine Funktion von einer geschätzten Anzeigedauer
US10068549B2 (en) Cursor handling in a variable refresh rate environment
DE112013001008T5 (de) Verfahren zur externen Anzeigeauflösungsauswahl
DE102013205040A9 (de) System, Verfahren und Computerprogramm zur Darstellung von stereoskopischen Anzeigeinhalten zur Betrachtung mit passiven stereoskopischen Brillen
CN117095650A (zh) 电子墨水屏显示方法、显示装置、电子设备及存储介质
CN102054421B (zh) 图像处理装置及其控制方法
DE102013219581B4 (de) Apparat, Verfahren und Computer-Programm-Produkt zum Bereitstellen einer dynamischen Anzeigeauffrischung
CN109358830A (zh) 消除ar/vr画面撕裂的双屏显示方法及ar/vr显示设备
CN114333691B (zh) 图像显示的控制方法、装置以及图像显示设备
DE102018103652A1 (de) Kachelwiederverwendung in der bilderzeugung
TWI446331B (zh) 可減少液晶面板殘影的插黑控制器及其方法
DE102020115855A1 (de) Dynamische persistenz zur ruckelreduktion

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final