Skärm sönderrivna

En typisk videorivningsartefakt (simulerad bild)

Skärmrivning är en visuell artefakt i videovisning där en displayenhet visar information från flera bildrutor i en enda skärmdragning.

Artefakten uppstår när videoflödet till enheten inte är synkroniserat med skärmens uppdateringsfrekvens. Det kan orsakas av icke-matchande uppdateringsfrekvenser , och rivlinjen flyttas sedan när fasskillnaden ändras (med hastighet proportionell mot skillnaden mellan bildhastigheter). Det kan också uppstå helt enkelt på grund av bristande synkronisering mellan två lika stora bildhastigheter, och rivlinjen är då på en fast plats som motsvarar fasskillnaden. Under videorörelser skapar skärmsönderrivning ett trasigt utseende då kanterna på föremål (som en vägg eller ett träd) misslyckas med att vara i linje.

Rivning kan uppstå med de vanligaste skärmteknikerna och grafikkorten och är mest märkbar i horisontellt rörliga bilder, som i långsamma kamerapanoreringar i en film eller klassiska sidscrollande videospel.

Skärmens sönderrivning är mindre märkbar när mer än två bildrutor avslutas under samma uppdateringsintervall eftersom det innebär att skärmen har flera smalare revor, istället för en enda bredare.

Förebyggande

Sätt att förhindra videorivning beror på bildskärmsenheten och grafikkortstekniken, programvaran som används och videomaterialets natur. Den vanligaste lösningen är att använda multipel buffring .

De flesta system använder multipel buffring och vissa sätt att synkronisera bildskärms- och videominnesuppdateringscykler.

Alternativ "TearFree" "boolean": inaktivera eller aktivera TearFree-uppdateringar. Detta alternativ tvingar X att utföra all rendering till en backbuffert innan den faktiska displayen uppdateras. Det kräver en extra minnestilldelning i samma storlek som en rambuffert, en extra kopia då och då och kräver skadespårning. Att aktivera TearFree kräver alltså mer minne och är långsammare (minskad genomströmning) och introducerar en liten mängd utgångslatens, men det bör inte påverka inmatningslatens. Uppdateringen till skärmen utförs dock sedan synkront med den vertikala uppdateringen av skärmen så att hela uppdateringen är klar innan skärmen startar sin uppdatering. Det är bara en ram som någonsin är synlig, vilket förhindrar en ful slitning mellan två synliga och olika ramar. Detta replikerar vad kompositionshanteraren borde göra, men TearFree kommer att omdirigera uppdateringarna av kompositionen (och de för helskärmsspel) direkt till avsökningen, vilket innebär att det inte medför några extra kostnader i det sammansatta fallet. Inte alla sammansättningshanterare förhindrar rivning, och om utgångarna roteras kommer det fortfarande att ske rivning utan att TearFree är aktiverat.

Vertikal synkronisering

En vertikal synkronisering är ett alternativ i de flesta system där grafikkortet hindras från att göra något som är synligt för bildskärmsminnet förrän bildskärmen har avslutat sin nuvarande uppdateringscykel.

Under det vertikala släckningsintervallet beordrar föraren grafikkortet att antingen snabbt kopiera grafikområdet utanför skärmen till det aktiva visningsområdet ( dubbelbuffring ), eller behandla båda minnesområdena som visningsbara och helt enkelt växla fram och tillbaka mellan dem ( sidan vända ).

Nvidia- och AMD-videoadaptrar tillhandahåller ett "Adaptive Vsync"-alternativ, som aktiverar vertikal synkronisering endast när bildfrekvensen för programvaran överstiger skärmens uppdateringsfrekvens, vilket annars inaktiverar den. Det eliminerar den stamning som uppstår när renderingsmotorns bildhastighet sjunker under skärmens uppdateringsfrekvens.

Alternativt vänder tekniker som FreeSync och G-Sync konceptet och anpassar skärmens uppdateringsfrekvens till innehållet som kommer från datorn. Sådan teknik kräver specifikt stöd från både videoadaptern och skärmen.

Komplikationer

När vertikal synkronisering används begränsas bildhastigheten för renderingsmotorn till videosignalens bildhastighet. Den funktionen förbättrar normalt videokvaliteten men innebär avvägningar i vissa fall.

Judder

Vertikal synkronisering kan också orsaka artefakter i video- och filmpresentationer eftersom de i allmänhet spelas in med bildhastigheter som är betydligt lägre än de typiska bildhastigheterna på bildskärmen (24–30 bildrutor/s). När en sådan film spelas upp på en bildskärm som är inställd på en typisk 60 Hz uppdateringsfrekvens, missar videospelaren monitorns deadline ganska ofta, och de mellanliggande bildrutorna visas något snabbare än avsett, vilket resulterar i en effekt som liknar judder . (Se Telecine: Bildhastighetsskillnader .)

Ingångsfördröjning

Videospel, som använder en mängd olika renderingsmotorer, tenderar att dra visuellt nytta av vertikal synkronisering eftersom en renderingsmotor normalt förväntas bygga varje bildruta i realtid, baserat på vad motorns variabler än specificerar i det ögonblick då en bildruta efterfrågas. Men eftersom vertikal synkronisering orsakar ingångsfördröjning stör den den interaktiva karaktären hos spel, och stör särskilt spel som kräver exakt timing eller snabba reaktionstider.

Benchmarking

Slutligen innebär benchmarking av ett grafikkort eller en renderingsmotor i allmänhet att hårdvaran och mjukvaran återger skärmen så snabbt som möjligt, utan hänsyn till bildskärmskapacitet eller resulterande videorivning. Annars stryper bildskärmen och grafikkortet benchmarkingprogrammet, vilket orsakar ogiltiga resultat.

Andra tekniker

Vissa grafiksystem låter programvaran utföra sina minnesåtkomster så att de stannar vid samma tidpunkt i förhållande till skärmhårdvarans uppdateringscykel, känd som rasteravbrott eller racing the beam . I så fall skriver programvaran till de delar av skärmen som just har uppdaterats, och stannar precis bakom monitorns aktiva uppdateringspunkt. Det möjliggör kopieringsrutiner eller renderingsmotorer med mindre förutsägbar genomströmning så länge som renderingsmotorn kan "komma ikapp" monitorns aktiva uppdateringspunkt när den hamnar efter.

Alternativt kan programvaran istället ligga strax före den aktiva uppdateringspunkten. Beroende på hur långt fram man väljer att stanna, kan den metoden kräva kod som kopierar eller renderar displayen med en fast, konstant hastighet. För mycket latens gör att monitorn ibland går om programvaran, vilket leder till rendering av artefakter, rivning osv.

Demoprogramvara på klassiska system som Commodore 64 och ZX Spectrum utnyttjade ofta dessa tekniker på grund av den förutsägbara naturen hos deras respektive videosystem för att uppnå effekter som annars skulle vara omöjliga.