Aktualisieren Monitore ihre Pixel nicht atomar / sofort?

604
Alec

Ich versuche zu verstehen, warum der Bildschirm zerreißt. Angenommen, ein Monitor könnte jedes Pixel sofort aktualisieren. Dann stelle ich mir vor, dass Refreshs so funktionieren würden:

  1. Ein Monitor entscheidet, dass eine Aktualisierung gestartet wird
  2. Es betrachtet den Frame, den die GPU gerade sendet.
  3. Atomisch werden alle Pixel sofort aktualisiert.

Bei dieser Art von Verfahren scheint es völlig unmöglich zu sein, den Bildschirm zu zerreißen, wobei Aktualisierungsraten und FPS vollständig ignoriert werden. Zu einem bestimmten Zeitpunkt wird nur ein einzelnes Bild gezeichnet.

Jetzt weiß ich, dass CRT-Monitore nicht mit ihrer Scan-Pistole (oder wie sie heißt) arbeiten. Ich hatte jedoch den Eindruck, dass neuere Monitortechnologien nicht so funktionieren. Aktualisieren sie Pixel allmählich und nicht sofort?

0

2 Antworten auf die Frage

1
Mokubai

Die Schritte 2 und 3 setzen voraus, dass alle Rahmendaten sofort und atomar an den Monitor übertragen werden. Dies ist jedoch nicht der Fall. Ein "dummer" Monitor "sieht" (oder puffert) nie ein Vollbild. Monitore arbeiten immer noch nach den gleichen Grundsätzen, als wir zum Scannen von Elektronen mit Elektronenstrahlen Bilder gezeichnet haben. Snazzier-Fernseher puffern möglicherweise Bilder und führen die Inter-Frame-Verarbeitung aus, ein Computermonitor dagegen wahrscheinlich nicht.

Was der Monitor sieht, ist lediglich ein Datenstrom von Ihrer Grafikkarte. Es werden alle Arten von vorläufigen Informationen an den Monitor gesendet, um anzugeben, in welchem ​​Format dieser Datenstrom vorliegen soll. Er liefert also Informationen zu Timing-Informationen, die Anzahl der horizontalen Linien, eine Anzahl vertikaler Linien und das Farbformat eine lange Reihe von Pixelfarbdaten.

Die Schritte 2 und 3 finden tatsächlich in der Grafikkarte statt, und Schritt 3 wird nur dann "angezeigt", wenn Sie die vertikale Synchronisierung aktivieren.

An jedem Punkt des Videoframes kann die GPU entscheiden, ihren Videopuffer gegen ein neues Bild auszutauschen und Daten von diesem Punkt aus in den Puffer zu senden. Wenn die vertikale Synchronisierung nicht aktiviert ist, werden die neuen Pufferdaten vom selben Punkt an den Monitor gesendet, den sie im alten Puffer unterbrochen haben. Dies ist dein "Tränenpunkt".

Wenn Sie die vertikale Synchronisierung aktiviert haben, wartet die GPU darauf, dass das vollständige Bild gesendet wird, bevor der Puffer gewechselt wird. In diesem Fall wird kein "Riss" angezeigt.

Der Grund dafür, dass diese Sync-Technologien als "Vertical Sync" bezeichnet werden, ist, dass jedes aufeinanderfolgende Bild selbst über die neuesten Monitore vertikal geschrieben wird. music2myear vor 7 Jahren 1
Zugegebenermaßen ist die Frame-Pufferreihenfolge von "rechts nach links, von oben nach unten" (Zeile senden, zur nächsten Spalte gehen, eine andere Zeile senden) ein einfacher Schalter, um zwischen "von oben nach unten, von rechts nach links" zu wechseln (Spalte senden, In die nächste Zeile wechseln, Spalte senden), wenn moderne Elektronik verwendet wird, aber vertikale Synchronisierung bedeutete immer "auf die obere Ecke des Frames warten". Vertikale Synchronisation in jeder Richtung ist "Beginn des Frames", unabhängig davon, wie dieser Frame angeordnet ist. Mokubai vor 7 Jahren 0
@ music2myear Tatsächlich würde ich davon ausgehen, dass die "Spalte-dann-Reihen" -Methode bei Mobiltelefonen, bei denen Sie effektiv den Bildschirm in der falschen Ausrichtung halten, dh im Hochformat, wirklich wahrgenommen wird. Wenn Sie das Gerät im Querformat halten (am besten für die Anzeige von Videos), können Sie den Bildschirm wieder in einem Zeilen- / Spaltenmodus aktualisieren. Mokubai vor 7 Jahren 0
Und ich hätte gerne mehr Informationen zu Atom Screens. Finden wir diese im iPhone 9? music2myear vor 7 Jahren 0
@ music2myear Ich dachte wir würden sie im Android Nuclear Update sehen, aber anscheinend nicht. Mokubai vor 7 Jahren 0
Ja, mit Nougat haben wir gerade Snickers-Bildschirme. music2myear vor 7 Jahren 0
Ah! Okay. Mir fehlte, dass die GPU nicht den gesamten Frame auf einmal übertrug (im Nachhinein scheint das offensichtlich ... würde eine Menge Daten gleichzeitig senden). Ich bin immer noch etwas verwirrt ... also die GPU sendet Daten an den Monitor, die "Farbe (x, y, z) color (r, g, b) color" (r, g, b) betragen, oder? Wie kommt nun die Bildwiederholfrequenz des Monitors dazu? Alec vor 7 Jahren 0
@Mokubai Erneutes Lesen Ihrer Antwort + Kommentare Ich denke, ich verstehe: Die GPU ist damit beschäftigt, Bilder zu generieren, um sie anzuzeigen und in Puffern zu speichern. Wie schnell es diese Bilder erzeugt, ist das "Game FPS". Gleichzeitig liest ein anderer Prozess (Teil der GPU?) Pixel aus den Puffern ab und sendet sie an den Monitor. Die Rate, mit der dies geschieht, ist die Aktualisierungsrate. Alec vor 7 Jahren 0
@alecb Ja, das fasst ziemlich genau zusammen, was passiert. Der Monitor kann fast keine Daten aufnehmen und malt jedes Pixel beim Empfang nacheinander. Mokubai vor 7 Jahren 1
@Mokubai Also was begrenzt dann die Bildwiederholfrequenz? Wie schnell kann der Monitor ein einzelnes Pixel mal die Anzahl der Pixel neu streichen? Alec vor 7 Jahren 0
@alecb Im Wesentlichen ja. Ihr aktueller FullHD-Monitor verfügt über etwa 2 Millionen Pixel in drei verschiedenen Farben. Das bedeutet, dass er 6 Millionen LCD-Anpassungen * pro Bildschirmaktualisierung * durchlaufen muss. Bei 60 Bildern pro Sekunde bedeutet dies 360 Millionen Pixelaktualisierungen pro Sekunde. Dies ist tatsächlich eine sehr große Menge von Daten, die herumgeworfen werden, und viele körperliche Anpassungen im LCD, nur um Ihnen ein Bild zu zeigen. Höhere Bildwiederholraten bedeuten mehr Änderungen pro Sekunde und höhere Auflösungen bedeuten mehr Pixel. Es ist tatsächlich viel los, nur um sogar einen leeren Bildschirm anzuzeigen. Mokubai vor 7 Jahren 1
0
music2myear

Das Zerreißen eines Bildschirms ist ein visuelles Artefakt in einer Videoanzeige, bei dem ein Anzeigegerät Informationen aus mehreren Frames in einer einzigen Bildschirmzeichnung darstellt. Das Artefakt tritt auf, wenn der Video-Feed an das Gerät nicht mit der Bildwiederholfrequenz des Displays synchronisiert ist.

Quelle: Wikipedia .

Alle Monitore (LCD und CRT) werden zu einer bekannten und vorhersagbaren Zeit auf einer Uhr aktualisiert. Verschiedene Technologien ermöglichen es der Grafikkarte, diesen Taktzyklus zu kennen, sodass die GPU die Daten zum bestmöglichen Zeitpunkt senden kann, damit der Monitor sie empfängt und die Pixelwerte des nächsten Bildschirms anzeigt.

Dies wird in der Regel als Bildwiederholfrequenz bezeichnet. Bei einigen Fernsehgeräten wird eine angezeigte Hz-Zahl (Zyklen pro Sekunde) angezeigt. Das häufigste ist heutzutage wahrscheinlich 60 Hz, was 60 Zyklen pro Sekunde bedeutet. Obwohl 120 Hz häufiger geworden ist.

Die verschiedenen oben genannten Synchronisationstechnologien werden im Allgemeinen verwendet, um das Abreißen des Bildschirms zu verhindern. Sie haben normalerweise Grenzen, wie viel sie lösen können.

Das geht meine Frage nicht an. Siehe den 3-Schritt-Prozess "Ideal", den ich in meinem Beitrag erwähnt habe. Wenn dies der Fall ist, sehe ich nicht, wie eine nicht synchronisierte Bildwiederholfrequenz das Reißen des Bildschirms verursachen würde. Alec vor 7 Jahren 0
Dann ist nicht klar, was Sie fragen. Fragen Sie, ob LCD- / LED-Bildschirme im selben Moment einen gesamten Bildschirm mit Pixeln aufleuchten und nicht den Progressive-Scan eines CRT? Nein, wenn Sie auf eine Fernseh-Videokamera zeigen (die bei den meisten LCD- / LED-Bildschirmen normalerweise mit einer etwas anderen Bildfrequenz abläuft, werden Sie das gleiche Zerreißen / Fächern sehen, allerdings in einem weniger offensichtlichen Ausmaß, das bei Bildschirmen mit höherer Frequenz weiter verringert wird Sie sehen auf CRTs. Dies sollte Ihnen sagen, dass die Pixel auf einem LCD / LED-Bildschirm immer noch in einer geordneten Weise progressiv über den Bildschirm geschrieben werden. music2myear vor 7 Jahren 1
Ok, ja, das frage ich. Wie schnell geht das im Allgemeinen? (wie die Zeit zwischen dem ersten Pixelwechsel zum letzten Pixelwechsel?) Alec vor 7 Jahren 0
@Alecb wird mit der gleichen Geschwindigkeit wie die Bildwiederholfrequenz Ihres Monitors ausgeführt. Für einen Monitor bei 60 Hz beträgt die Bildwiederholrate 1/60 = 0,0166 Sekunden oder alle 16 Millisekunden. Mokubai vor 7 Jahren 0
Dies setzt voraus, dass der Scan sofort nach links oben beginnt, sobald der Scanvorgang unten rechts abgeschlossen ist. Wissen wir, dass dies der Fall ist? music2myear vor 7 Jahren 1
"Alle 16 ms" bedeutet nicht, dass der gesamte Vorgang 16 ms dauert, oder? Ist das tatsächlich der Fall? Ist es verlangsamt, wenn die Bildwiederholfrequenz so lange dauert? Oder wird die Bildwiederholfrequenz im Wesentlichen davon bestimmt, wie schnell der Monitor Pixel aktualisieren kann? Monitore können jedoch unterschiedliche Bildwiederholraten haben, oder? Alec vor 7 Jahren 0