I monitor non aggiornano atomicamente / istantaneamente i loro pixel?


0

Sto cercando di capire cosa causa lo strappo dello schermo. Supponiamo che un monitor possa aggiornare istantaneamente ognuno dei suoi pixel. Quindi immagino che gli aggiornamenti funzionino in questo modo:

  1. Un monitor decide che sta per iniziare un aggiornamento
  2. Guarda qualunque frame la GPU stia attualmente inviando.
  3. Esso, atomicamente, aggiorna tutti i pixel istantaneamente.

Con questo tipo di procedura, sembra che sia assolutamente impossibile ottenere lo strappo dello schermo, ignorando completamente frequenze di aggiornamento e FPS. Solo una singola immagine viene disegnata in un dato momento.

Ora so che questo non è il modo in cui i monitor CRT funzionano con la loro pistola di scansione (o come si chiama). Ma avevo l'impressione che le nuove tecnologie di monitoraggio non funzionassero in questo modo. Aggiungono effettivamente pixel in modo graduale e non contemporaneamente?

Risposte:


1

Passaggi 2 e amp; 3 supponiamo che tutti i dati del frame siano trasferiti sul monitor in modo immediato e atomico, ma non lo sono. Un monitor "stupido" non "vede" (o buffer) mai un fotogramma completo di video. I monitor funzionano ancora sugli stessi principi da quando abbiamo usato i raggi di scansione elettronici per disegnare immagini. I TV Snazzier potrebbero memorizzare le immagini e fare l'elaborazione tra fotogrammi, ma probabilmente il monitor di un computer non funzionerà.

Ciò che il monitor vede è semplicemente un flusso di dati proveniente dalla tua scheda grafica. Ci sono tutti i tipi di informazioni preliminari inviate al monitor per dirgli quale formato sarà il flusso di dati, in modo da ottenere dettagli delle informazioni di temporizzazione, numero di linee orizzontali, un numero di linee verticali e di colori, ma ciò che effettivamente ottiene è semplicemente una lunga serie di dati di colore pixel.

I tuoi passaggi 2 e amp; 3 si verificano effettivamente nella scheda grafica e il passaggio 3 verrà visualizzato solo se si abilita la sincronizzazione verticale.

In qualsiasi punto del frame video, la GPU può decidere di scambiare il suo buffer video con una nuova immagine e continuare a inviare dati da quel punto nel buffer. Se la sincronizzazione verticale non è abilitata, continuerà a inviare i nuovi dati del buffer al monitor dallo stesso punto esatto che aveva lasciato nel vecchio buffer. Questo è il tuo punto "lacrima".

Se la sincronizzazione verticale è abilitata, la GPU attenderà che il frame completo venga inviato prima che cambi il buffer, nel qual caso non vedrai uno "strappo".


1
In realtà, la ragione per cui queste tecnologie di sincronizzazione sono chiamate "Vertical Sync" è che ogni frame successivo viene scritto verticalmente su tutti i monitor più recenti.
music2myear

Ammetto che l'ordine del buffer del fotogramma "da destra a sinistra, dall'alto in basso" (invia riga, passa alla colonna successiva, invia un'altra riga) è un semplice passaggio da fare per "dall'alto verso il basso, da destra a sinistra" (invia colonna, passare alla riga successiva, inviare una colonna) data l'elettronica moderna, ma la sincronizzazione verticale ha sempre significato "attendere l'angolo superiore del frame". In entrambi i casi la sincronizzazione verticale è "inizio fotogramma" indipendentemente dal modo in cui viene ordinato quel fotogramma.
Mokubai

@ music2myear In effetti mi aspetterei che il metodo "column then row" sia solo per essere realmente si accorse nei telefoni cellulari in cui si sta effettivamente mantenendo lo schermo con l'orientamento sbagliato, ad esempio in modalità verticale. Una volta che si tiene il dispositivo in modalità orizzontale (il migliore per la visualizzazione di video) si ritorna ad aggiornare lo schermo in una modalità riga / colonna di nuovo.
Mokubai

1
@alecb Sì, questo riassume molto bene ciò che sta accadendo. Il monitor non ha quasi nessuna capacità di contenere alcun dato e quindi dipinge semplicemente ogni pixel uno dopo l'altro mentre viene ricevuto.
Mokubai

1
@alecb In sostanza si. Il tuo attuale monitor FullHD ha circa 2 milioni di pixel in tre diversi colori, il che significa che è necessario eseguire 6 milioni di regolazioni LCD per schermata di aggiornamento . Farlo a 60 frame al secondo significa aggiornamenti da 360 milioni di pixel al secondo. Questo è in realtà una grande quantità di dati che vengono lanciati e molte regolazioni fisiche nel display LCD solo per mostrarti un'immagine. Frequenze di aggiornamento più alte significano più cambiamenti al secondo e risoluzioni più alte significano più pixel. In realtà c'è molto da fare solo per mostrare anche uno schermo vuoto.
Mokubai

0

Lo strappo dello schermo è un artefatto visivo nel display video in cui un display   dispositivo mostra informazioni da più fotogrammi in una sola schermata.   L'artefatto si verifica quando il feed video sul dispositivo non è sincronizzato   con la frequenza di aggiornamento del display.

Fonte: Wikipedia .

Tutti i monitor, LCD e CRT, si aggiornano su un orologio in un tempo noto e prevedibile. Varie tecnologie consentono alla scheda grafica di conoscere questo ciclo di clock in modo che la GPU possa inviare i dati nel momento migliore in cui il monitor può riceverli e visualizzare i pixel della schermata successiva.

Questo è in genere chiamato la frequenza di aggiornamento o su alcuni televisori vedrai un numero di Hz (ovvero cicli al secondo) pubblicizzato. Il più comune in questi giorni è probabilmente 60Hz, il che significa 60 cicli al secondo. Sebbene 120Hz sia diventato più comune.

Le varie tecnologie di sincronizzazione sopra menzionate sono generalmente utilizzate allo scopo di prevenire lo strappo dello schermo. Di solito hanno dei limiti su quanto riescano a risolvere.


Questo non affronta la mia domanda. Vedi il processo "ideale" in 3 passaggi che ho menzionato nel mio post. Se questo è quello che è successo, allora non vedo come una frequenza di aggiornamento fuori sincrono possa causare lo tearing dello schermo.
Alec

1
Quindi non è chiaro cosa stai chiedendo. Stai chiedendo se schermi LCD / LED lampeggiano un intero schermo di pixel nello stesso istante piuttosto che la scansione progressiva di un CRT? No, se si punta una videocamera televisiva (che di solito funziona con una frequenza fotogrammi leggermente diversa nella maggior parte degli schermi LCD / LED, si vedrà lo stesso strappo / fanning, anche se di solito in misura meno ovvia che viene ulteriormente mitigata con schermi a frequenza più alta , vedi su CRT. Questo dovrebbe dirti che i pixel su uno schermo LCD / LED sono ancora scritti progressivamente sullo schermo in modo ordinato.
music2myear

Ok, sì, è quello che sto chiedendo. Quanto velocemente accade in genere? (come, il tempo tra il primo pixel cambia all'ultimo cambiamento di pixel?)
Alec

@alecb avverrà alla stessa velocità della frequenza di aggiornamento del monitor. per un monitor a 60 Hz la frequenza di aggiornamento sarà 1/60 = 0,0166 secondi o ogni 16 millisecondi.
Mokubai

1
Ciò presuppone che non appena la scansione termina in basso a destra, inizia immediatamente il backup in alto a sinistra. Sappiamo che questo è il caso?
music2myear
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.