Sinhronizacija brzine kadrova. Sinhronizacija video okvira sa brzinom osvježavanja ekrana. Artefakti koji kidaju slike

AT moderne igre sve više i više grafičkih efekata i tehnologija se koristi za poboljšanje slike. Istovremeno, programeri se obično ne trude da objasne šta tačno rade. Kada nije dostupan najproduktivniji računar, neke od mogućnosti se moraju žrtvovati. Pokušajmo razmotriti što znače najčešće grafičke opcije kako bismo bolje razumjeli kako osloboditi PC resurse s minimalnim posljedicama za grafiku.

Anizotropno filtriranje

Kada se na monitoru prikaže bilo koja tekstura koja nije u originalnoj veličini, potrebno je u nju umetnuti dodatne piksele ili, obrnuto, ukloniti suvišne. Ovo se radi pomoću tehnike koja se zove filtriranje.

Bilinearno filtriranje je najjednostavniji algoritam i zahtijeva manje računarske snage, ali daje i najgori rezultat. Trilinear dodaje jasnoću, ali i dalje stvara artefakte. Anizotropno filtriranje smatra se najnaprednijom metodom koja eliminiše primjetna izobličenja na objektima koji su jako nagnuti u odnosu na kameru. Za razliku od dvije prethodne metode, uspješno se bori protiv efekta aliasinga (kada su neki dijelovi teksture zamagljeni više od drugih, a granica između njih postaje jasno vidljiva). Kada se koristi bilinearno ili trilinearno filtriranje, kako se udaljenost povećava, tekstura postaje sve zamućenija, dok anizotropno filtriranje nema ovaj nedostatak.

S obzirom na količinu podataka koji se obrađuju (a u sceni može biti mnogo 32-bitnih tekstura visoke rezolucije), anizotropno filtriranje je posebno zahtjevno za memorijski propusni opseg. Možete smanjiti promet prvenstveno zbog kompresije teksture, koja se sada koristi svuda. Ranije, kada se to ređe praktikovalo, a propusni opseg video memorije bio mnogo manji, anizotropno filtriranje je značajno smanjilo broj okvira. Na modernim video karticama gotovo da nema efekta na fps.

Anizotropno filtriranje ima samo jednu postavku - faktor filtera (2x, 4x, 8x, 16x). Što je veći, to su teksture jasnije i prirodnije. Tipično, uz visoku vrijednost, mali artefakti su vidljivi samo na krajnjim pikselima nagnutih tekstura. Vrijednosti 4x i 8x obično su dovoljne da se riješi lavovskog udjela vizualnog izobličenja. Zanimljivo, kada se ide sa 8x na 16x, učinak će biti prilično mali, čak i u teoriji, jer će samo mali broj prethodno nefiltriranih piksela trebati dodatnu obradu.

Shaders

Shaderi su mali programi koji mogu izvršiti određene manipulacije na 3D sceni, kao što je promjena osvjetljenja, primjena tekstura, dodavanje naknadne obrade i drugi efekti.

Shaderi su podijeljeni u tri tipa: vertex (Vertex Shader) rade s koordinatama, geometrijski (Geometry Shader) može obraditi ne samo pojedinačne vrhove, već i cijele geometrijske figure, koji se sastoji od maksimalno 6 vrhova, piksel (Pixel Shader) radi sa pojedinačnim pikselima i njihovim parametrima.

Shaderi se uglavnom koriste za stvaranje novih efekata. Bez njih, skup operacija koje bi programeri mogli koristiti u igrama je vrlo ograničen. Drugim riječima, dodavanje shadera omogućilo je dobivanje novih efekata koji nisu bili uključeni u grafičku karticu po defaultu.

Shaderi rade vrlo produktivno paralelno, zbog čega moderni grafički adapteri imaju toliko stream procesora, koji se također nazivaju shaderi. Na primjer, u GeForce GTX 580 ih ima čak 512.

Paralaksno mapiranje

Paralaksno mapiranje je modifikovana verzija dobro poznate tehnike bumpmappinga koja se koristi za utiskivanje tekstura. Paralaksno mapiranje ne stvara 3D objekte u uobičajenom smislu te riječi. Na primjer, pod ili zid u sceni igre će izgledati grubo, a zapravo će ostati potpuno ravni. Efekat reljefa ovdje se postiže samo manipulacijama teksturama.

Originalni objekt ne mora biti ravan. Metoda radi za različite stavke igre, međutim, njegova upotreba je poželjna samo u slučajevima kada se visina površine glatko mijenja. Oštre kapi se pogrešno obrađuju, a na objektu se pojavljuju artefakti.

Paralaksno mapiranje značajno štedi računarske resurse računara, jer kada se koriste analogni objekti sa tako detaljnom 3D strukturom, performanse video adaptera ne bi bile dovoljne za renderovanje scena u realnom vremenu.

Efekat se najčešće primjenjuje na kamene pločnike, zidove, cigle i pločice.

Anti-aliasing

Prije pojave DirectX 8, anti-aliasing u igrama je rađen korištenjem SuperSampling Anti-Aliasing (SSAA), također poznatog kao Full-Scene Anti-Aliasing (FSAA). Njegova upotreba je dovela do značajnog smanjenja performansi, tako da je s izdavanjem DX8 odmah napušten i zamijenjen sa Multisample Anti-Aliasing (MSAA). Unatoč činjenici da je ova metoda davala lošije rezultate, bila je mnogo produktivnija od svog prethodnika. Od tada su se pojavili napredniji algoritmi, kao što je CSAA.

S obzirom da su u proteklih nekoliko godina performanse video kartica značajno porasle, i AMD i NVIDIA su vratili podršku za SSAA tehnologiju svojim akceleratorima. Međutim, neće ga biti moguće koristiti ni sada u modernim igrama, jer će broj okvira/s biti vrlo mali. SSAA će biti efektivan samo u projektima prethodnih godina, ili u tekućim, ali sa skromnim postavkama ostalih grafičkih parametara. AMD je implementirao SSAA podršku samo za DX9 igre, ali u NVIDIA SSAA takođe funkcioniše u DX10 i DX11 režimima.

Princip zaglađivanja je vrlo jednostavan. Prije nego što se okvir prikaže na ekranu, određene informacije se izračunavaju ne u izvornoj rezoluciji, već u povećanju i višekratnoj od dva. Tada se rezultat smanjuje na potrebnu veličinu, a tada "ljestve" uz rubove objekta postaju manje uočljive. Što je veći originalna slika i faktor izglađivanja (2x, 4x, 8x, 16x, 32x), na modelima će biti manje koraka. MSAA, za razliku od FSAA, izglađuje samo ivice objekata, što značajno štedi resurse grafičke kartice, ali ova tehnika može ostaviti artefakte unutar poligona.

Ranije je Anti-Aliasing uvijek značajno smanjivao fps u igricama, ali sada malo utječe na broj okvira, a ponekad uopće ne utječe.

teselacija

Koristeći teselaciju u kompjuterskom modelu, broj poligona se povećava proizvoljan broj puta. Da biste to učinili, svaki poligon je podijeljen na nekoliko novih, koji se nalaze približno isto kao i originalna površina. Ova metoda olakšava povećanje detalja jednostavnih 3D objekata. U ovom slučaju će se, međutim, povećati i opterećenje računara, au nekim slučajevima se ne mogu isključiti čak ni mali artefakti.

Na prvi pogled, teselaciju se može pobrkati sa mapiranjem paralakse. Iako se radi o potpuno različitim efektima, budući da teselacija zapravo mijenja geometrijski oblik objekta, a ne samo simulira reljef. Osim toga, može se koristiti za gotovo sve objekte, dok je korištenje Parallax mapiranja vrlo ograničeno.

Tehnologija teselacije poznata je u bioskopu još od 80-ih godina, ali je tek nedavno dobila podršku u igrama, tačnije nakon što su grafički akceleratori konačno dostigli potrebni nivo performansi na kojem se može izvoditi u realnom vremenu.

Da bi igra koristila teselaciju, potrebna joj je grafička kartica koja podržava DirectX 11.

Vertikalna sinhronizacija

V-Sync je sinhronizacija okvira igre sa vertikalnom brzinom osvježavanja monitora. Njegova suština leži u činjenici da se potpuno izračunat okvir igre prikazuje na ekranu u trenutku kada se slika ažurira na njemu. Važno je da se sljedeći okvir (ako je već spreman) također pojavi najkasnije i ne prije nego što se završi izlaz prethodnog i počne sljedeći.

Ako je brzina osvježavanja monitora 60 Hz, a video kartica uspije prikazati 3D scenu s barem istim brojem okvira, tada će svako osvježavanje monitora prikazati novi kadar. Drugim rečima, sa intervalom od 16,66 ms, korisnik će videti kompletno ažuriranje scene igre na ekranu.

Treba imati na umu da kada je vertikalna sinhronizacija omogućena, fps u igri ne može premašiti brzinu vertikalnog osvježavanja monitora. Ako je broj frejmova manji od ove vrijednosti (u našem slučaju manji od 60 Hz), tada je kako bi se izbjegao gubitak performansi potrebno aktivirati trostruko baferovanje, u kojem se okviri izračunavaju unaprijed i pohranjuju u tri odvojena bafera , što im omogućava da se češće šalju na ekran.

Glavni zadatak vertikalne sinhronizacije je eliminirati efekat pomaknutog okvira koji nastaje kada je donji dio ekrana ispunjen jednim okvirom, a gornji dio je već ispunjen drugim, pomaknutim u odnosu na prethodni.

naknadnu obradu

Ovo je opći naziv svih efekata koji se primjenjuju na već gotov kadar potpuno renderirane 3D scene (drugim riječima, na dvodimenzionalnu sliku) kako bi se poboljšao kvalitet konačne slike. Post-procesiranje koristi pikselne shadere i koristi se u slučajevima kada dodatni efekti zahtijevaju potpune informacije o cijeloj sceni. Izolirano na pojedinačne 3D objekte, takve tehnike se ne mogu primijeniti bez pojave artefakata u kadru.

Veliki dinamički raspon (HDR)

Efekat koji se često koristi u scenama igre s kontrastnim osvjetljenjem. Ako je jedno područje ekrana vrlo svijetlo, a drugo vrlo tamno, gubi se mnogo detalja u svakoj oblasti i izgleda monotono. HDR dodaje više gradacija kadru i omogućava vam da detaljizirate scenu. Da biste ga koristili, obično morate raditi sa širim rasponom nijansi nego što može pružiti standardna 24-bitna preciznost. Predkalkulacije se odvijaju sa povećanom preciznošću (64 ili 96 bita), a tek u završnoj fazi slika se podešava na 24 bita.

HDR se često koristi za implementaciju efekta prilagođavanja vida kada junak u igricama napusti tamni tunel na dobro osvijetljenoj površini.

Bloom

Bloom se često koristi u sprezi sa HDR-om, a ima i prilično bliskog srodnika - Glow, zbog čega se ove tri tehnike često brkaju.

Bloom simulira efekat koji se može vidjeti pri snimanju vrlo svijetlih scena konvencionalnim fotoaparatima. Na dobijenoj slici čini se da intenzivna svjetlost zauzima više volumena nego što bi trebala, i "penje se" na objekte iako je iza njih. Kada koristite Bloom, dodatni artefakti u obliku linija u boji mogu se pojaviti na ivicama objekata.

Film Grain

Zrno je artefakt koji se javlja na analognoj televiziji sa lošim signalom, na starim magnetnim video kasetama ili fotografijama (posebno digitalnim slikama snimljenim pri slabom svjetlu). Igrači se često prekidaju ovaj efekat, jer kvari sliku u određenoj mjeri, a ne poboljšava je. Da bi se ovo razumjelo, može se trčati masovni efekat u svakom od modova. U nekim "horor filmovima", na primjer Tiho brdo, buka na ekranu, naprotiv, dodaje atmosferu.

zamućenje pokreta

Motion Blur - efekat zamućenja slike pri brzom pomeranju kamere. Može se uspješno koristiti kada sceni treba dati više dinamike i brzine, stoga je posebno tražena u trkaće igre. U pucačima se upotreba zamućenja ne percipira uvijek nedvosmisleno. Pravilna primjena Motion Blur može dodati bioskopski kvalitet onome što se dešava na ekranu.

Efekat će takođe pomoći da se veo ako je potrebno. niske frekvencije promijenite okvire i dodajte glatkoću igri.

SSAO

Ambijentalna okluzija je tehnika koja se koristi za dodavanje fotorealizma sceni stvaranjem uvjerljivijeg osvjetljenja objekata u njoj, koja uzima u obzir prisutnost drugih objekata u blizini s njihovim vlastitim karakteristikama apsorpcije i refleksije svjetlosti.

Screen Space Ambient Occlusion je modificirana verzija Ambient Occlusion i također simulira indirektno osvjetljenje i sjenčanje. Pojava SSAO-a je nastala zbog činjenice da na trenutnom nivou performansi GPU-a, ambijentalna okluzija nije mogla da se koristi za renderovanje scena u realnom vremenu. Za povećane performanse u SSAO-u morate platiti nižim kvalitetom, ali i to je dovoljno da poboljšate realističnost slike.

SSAO radi prema pojednostavljenoj shemi, ali ima mnogo prednosti: metoda ne ovisi o složenosti scene, ne koristi RAM, može funkcionirati u dinamičkim scenama, ne zahtijeva prethodnu obradu okvira i učitava samo grafički adapter bez trošenja CPU resursa.

Cel sjenčanje

Igre sa efektom senčenja Cel rade se od 2000. godine, a pre svega su se pojavile na konzolama. Na PC-u je ova tehnika postala stvarno popularna samo nekoliko godina nakon izlaska senzacionalne pucačine XIII. Uz Cel senčenje, svaki okvir je skoro kao rukom nacrtani crtež ili fragment iz dječijeg crtanog filma.

Stripovi su kreirani u sličnom stilu, pa se tehnika često koristi u igricama koje se odnose na njih. Od najnovijih poznatih izdanja možemo nazvati Borderlands shooter, gdje je senčenje Cela vidljivo golim okom.

Karakteristike tehnologije su upotreba ograničenog skupa boja, kao i odsustvo glatkih preliva. Naziv efekta dolazi od riječi Cel (Celluloid), odnosno prozirni materijal (film) na kojem se crtaju animirani filmovi.

Dubina polja

Dubina polja je udaljenost između bliže i dalje ivice prostora, unutar koje će svi objekti biti u fokusu, dok će ostatak scene biti zamućen.

U određenoj mjeri, dubinska oštrina se može promatrati jednostavnim fokusiranjem na objekt koji se nalazi blizu očiju. Sve iza toga će se zamutiti. Vrijedi i suprotno: ako se fokusirate na udaljene objekte, onda će sve ispred njih ispasti nejasno.

Na nekim fotografijama možete vidjeti efekat dubine polja u hipertrofiranom obliku. Upravo se ovaj stepen zamućenja često pokušava simulirati u 3D scenama.

U igrama koje koriste dubinu polja, igrač obično ima jači osjećaj prisutnosti. Na primjer, gledajući negdje kroz travu ili grmlje, vidi samo male fragmente scene u fokusu, što stvara iluziju prisutnosti.

Performance Impact

Da bismo saznali kako uključivanje određenih opcija utiče na performanse, koristili smo Heaven DX11 Benchmark 2.5 benchmark za igre. Svi testovi su obavljeni na Intel Core2 Duo e6300, GeForce GTX460 sistemu na 1280x800 piksela (osim vertikalne sinhronizacije, gde je rezolucija bila 1680x1050).

Kao što je već spomenuto, anizotropno filtriranje gotovo da nema utjecaja na broj okvira. Razlika između onemogućene anizotropije i 16x je samo 2 kadra, pa preporučujemo da je uvijek postavite na maksimum.

Anti-aliasing in Heaven Benchmark smanjio je fps više nego što smo očekivali, posebno u najtežem 8x modu. Ipak, s obzirom da je 2x dovoljno za primjetno poboljšanje slike, savjetujemo vam da odaberete ovu opciju ako vam je neugodno igrati na višim.

Teselacija, za razliku od prethodnih parametara, može poprimiti proizvoljnu vrijednost u svakoj pojedinačnoj igri. U Heaven Benchmark-u slika se značajno pogoršava bez toga, a na maksimalnom nivou, naprotiv, postaje malo nerealna. Stoga treba postaviti srednje vrijednosti - umjerene ili normalne.

Više nego visoka rezolucija tako da fps nije ograničen vertikalnom brzinom osvježavanja ekrana. Kao što se i očekivalo, broj frejmova tokom gotovo cijelog testa sa uključenom sinhronizacijom bio je jasno oko 20 ili 30 sličica u sekundi. To je zbog činjenice da se prikazuju istovremeno s osvježavanjem ekrana, a pri brzini osvježavanja od 60 Hz, to se može učiniti ne sa svakim impulsom, već samo sa svakim drugim (60/2 = 30 fps) ili trećim ( 60/3 = 20 fps). Kada je V-Sync onemogućen, broj okvira se povećao, ali su se na ekranu pojavili karakteristični artefakti. Trostruko puferovanje nije imalo nikakav pozitivan efekat na glatkoću scene. Možda je to zbog činjenice da u postavkama drajvera video kartice ne postoji opcija za prisilno isključenje baferovanja, a normalna deaktivacija je ignorisana od strane benchmark-a, a još uvijek koristi ovu funkciju.

Da je Heaven Benchmark igra, onda bi na maksimalnim postavkama (1280×800; AA - 8x; AF - 16x; Tessellation Extreme) bilo neugodno igrati je, jer 24 frejma očigledno nije dovoljno za ovo. Uz minimalan gubitak kvaliteta (1280×800; AA - 2x; AF - 16x, Tessellation Normal), može se postići prihvatljivije 45 fps.

U gotovo svim modernim igrama u grafičkim postavkama možete vidjeti stupac " vertikalna sinhronizacija". I sve više igrača ima pitanja Da li je ova sinhronizacija korisna?, njegov utjecaj i zašto uopće postoji, kako ga koristiti na raznim platformama. Hajde da saznamo u ovom članku.

O vertikalnoj sinhronizaciji

Prije nego što pređemo direktno na objašnjenje prirode vertikalne sinhronizacije, potrebno je malo uroniti u povijest formiranja vertikalne sinhronizacije. Pokušaću da budem što jasniji. Prvi kompjuterski monitori bili su fiksna slika koju je opsluživao signal skeniranja jednog okvira.

Kada se pojavila nova generacija displeja, naglo se postavilo pitanje promene rezolucije, što je zahtevalo nekoliko režima rada, ti displeji su prikazivali sliku koristeći polaritet signala sinhrono u odnosu na vertikalu.

Potrebna VGA rezolucija finije podešavanje sweep i dobio je dva signala horizontalno i vertikalno. U današnjim ekranima, ugrađeni kontroler je odgovoran za podešavanje skeniranja.

Ali ako kontroler, prema drajveru, postavlja potreban broj okvira, zašto vam je potrebna vertikalna sinhronizacija za postavljenu rezoluciju? Nije tako jednostavno. Često postoje situacije kada je brzina generiranja video kartice vrlo visoka, ali monitori, zbog svojih tehničkih ograničenja, ne mogu ispravno prikazati ovaj broj kadrova kada je brzina osvježavanja monitora znatno niža od brzine osvježavanja grafičke kartice. To dovodi do oštrih pokreta slike, artefakata i pruga.

Nemajući vremena da prikažu okvire iz memorijske datoteke sa omogućenim "trostrukim baferovanjem", oni se brzo zamenjuju, prekrivajući sledeće okvire. I ovdje je tehnologija trostrukog puferiranja gotovo neefikasna.

Tehnologija vertikalne sinhronizacije dizajniran da otkloni ove nedostatke..

Okreće se monitoru s uključenom anketom standardne karakteristike ažuriranje frekvencije i frekvencije kadrova, sprečavanje prelaska okvira iz sekundarne memorije u primarnu, tačno do trenutka kada se slika ažurira.

Povezivanje vertikalne sinhronizacije

Velika većina igara ovu funkciju ima direktno u svojim grafičkim postavkama. Ali to se dešava kada takva kolona ne postoji, ili se uoče određeni nedostaci pri radu sa grafikom aplikacija koje ne uključuju podešavanja za takve parametre.

U postavkama svake video kartice možete omogućiti tehnologiju vertikalne sinhronizacije za sve aplikacije ili selektivno.

Kako omogućiti NVidia?

Kao i većina manipulacija sa NVidia karticama, radi se preko NVidia upravljačke konzole. Tamo, u grafu kontrole 3D parametara, nalazit će se parametar sinhronizacijskog pulsa.

Treba ga premjestiti u uključeni položaj. Ali ovisno o video kartici, redoslijed će biti drugačiji.

Dakle, kod starijih video kartica, parametar vertikalne sinhronizacije je u poglavlju globalni parametri u istom kontrolnom grafikonu 3D postavki.

ATI video kartice

Za konfiguraciju koristite kontrolni centar za svoju grafičku karticu. Naime, Catalyst Control Center pokreće .NET Framework 1.1. Ako ga nemate, tada se kontrolni centar neće pokrenuti. Ali ne brini. U takvim slučajevima postoji alternativa centru, samo rad sa klasičnom kontrolnom pločom.

Da biste pristupili podešavanjima, idite na 3D stavku koja se nalazi u meniju sa leve strane. Pojavit će se odjeljak Čekaj na vertikalno osvježavanje. U početku se unutar aplikacije koristi zadana tehnologija vertikalne sinhronizacije.

Pomicanje dugmeta ulijevo će potpuno onemogućiti ovu funkciju, a pomicanje udesno će je prisilno uključiti. Zadana opcija je ovdje najrazumnije, jer omogućava konfiguraciju sinhronizacije direktno kroz postavke igre.

Sažimanje

Vertikalna sinkronizacija je funkcija koja pomaže da se riješite oštrih pokreta na slici, u nekim slučajevima omogućava vam da se riješite artefakata i pruga na slici. A to se postiže dvostrukim baferovanjem primljene frekvencije kadrova kada se broj kadrova monitora i video kartice ne poklapaju.

Danas je v-sync u većini igara. Radi na isti način kao i trostruko puferiranje, ali košta mnogo manje resursa, zbog čega se trostruko baferovanje u postavkama igre može rjeđe vidjeti.

Odabirom da omogući ili onemogući vertikalnu sinhronizaciju, korisnik bira između kvaliteta i performansi. Ako ga uključite, dobija se glatkija slika, ali manje kadrova u sekundi.

Ako ga isključi, dobija više okviri, ali nije imun na oštrinu i neurednost slike. Ovo se posebno odnosi intenzivne scene koje zahtijevaju velike resurse, gdje je nedostatak vertikalne sinhronizacije ili trostrukog baferovanja posebno uočljiv.

Ovaj misteriozni grafikon u parametrima mnogih igara nije bio tako jednostavan kao što se činilo. I sada izbor da li ćete ga koristiti ili ne, ostaje samo na vama i vašim ciljevima u igricama.

Prevođenje... Prevedi kineski (pojednostavljeni) kineski (tradicionalni) engleski francuski njemački talijanski portugalski ruski španjolski turski

Nažalost, trenutno nismo u mogućnosti prevesti ove informacije - pokušajte ponovo kasnije.

Naučite kako koristiti jednostavan algoritam za sinkronizaciju slike sa brzinom osvježavanja ekrana i poboljšanje kvalitete reprodukcije videozapisa.

Uvod

Naša vizija “digitalnog doma” postepeno postaje stvarnost. Posljednjih godina sve je više uređaja za "digitalni dom" komercijalno dostupno. Raspon ponuđene elektronike je veoma velik - od multimedijalnih set-top box uređaja koji podržavaju emitovanje muzike i videa do kompletnih sistema za zabavu u konvencionalnom kućištu za računar.

Kućni medijski centri postaju standardna stavka na cjenovnicima prodavnica kompjutera, omogućavajući vam da gledate i snimate TV emisije, pohranjujete i puštate digitalne fotografije i muziku itd. Osim toga, neki dobavljači nude posebne komplete pomoću kojih korisnik može svoj PC pretvoriti u kućni medijski centar.

Nažalost, takvi medijski centri ne podržavaju uvijek reprodukciju video zapisa visokog kvaliteta. Nedovoljan kvalitet videa obično je uzrokovan faktorima kao što su neispravno baferovanje i prikazivanje streaming sadržaja, nedostatak algoritama za deinterlacing prilikom obrade isprepletenog videa i netačna sinhronizacija video-audio tokova. Većina ovih problema je dobro proučena i ima rješenja, koja proizvođači u dovoljnoj mjeri uzimaju u obzir. Međutim, postoji još jedan, manje poznat i manje očigledan problem koji može dovesti do manjih, ali ipak primjetnih izobličenja pri gledanju videa. Naš članak daje detaljan opis ovog problema i razmatra jedan od načina za njegovo rješavanje.

Sa rastućom prodajom kućnih medijskih centara, sve više potrošača gleda TV na računarima. Kako se ovaj segment, koji je trenutno tražen od strane amaterskih entuzijasta, bude širio, tako će se povećavati i potražnja za visokokvalitetnim videom.

Postoji niz metoda za poboljšanje kvaliteta video reprodukcije na računaru i mnogi proizvođači video softvera su ih uspešno koristili. U isto vrijeme, ponekad činjenica da Softver za reprodukciju videa mora uzeti u obzir i osigurati da je video sinkroniziran sa brzinom osvježavanja ekrana. Činjenica je da su televizori u početku predviđeni za sinhronizaciju sa video signalom koji dolazi iz studija za emitovanje. Za razliku od televizora, kompjuterski monitori osvježavaju ekran fiksnom brzinom, koju postavlja grafički adapter i nema nikakve veze sa video signalom. Ova značajna razlika može izazvati mnogo problema ako želite da osigurate da je video ispravno sinhronizovan sa ekranom računara. U nastavku ćemo pokušati Detaljan opis ovaj problem i predložiti rješenje. Međutim, prije toga želimo čitatelja upoznati s nekim osnovnim konceptima o kojima će biti riječi u članku.

Ciklus osvježavanja prikaza

Brzina osvežavanja ekrana računara (brzina osvežavanja ekrana) je sinhronizovana sa frekvencijom grafičkog adaptera (video kartice). Razmotrite najčešći primjer - kada video kartica i monitor podržavaju frekvenciju od 60Hz. Ova kombinacija je moguća zbog činjenice da je monitor sinhronizovan sa 60Hz signalom koji dolazi sa video kartice. Zapravo, monitor održava sinhronizaciju čak i u slučajevima neznatnog odstupanja u izlaznoj frekvenciji grafičkog adaptera (na primjer, 60,06 Hz umjesto standardnih 60 Hz).

Tokom ciklusa osvježavanja, slika na ekranu se ponovo iscrtava iz međuspremnika prikaza (adresibilna memorija grafičkog adaptera). Svaka horizontalna linija na displeju se uzastopno ažurira u skladu sa novim podacima sadržanim u baferu video memorije. ažurirano u ovog trenutka vremenska linija se zove linija skeniranja. U slučaju grafičkog adaptera od 60 Hz, proces osvježavanja ekrana se događa 60 puta u sekundi, tako da se slika na PC monitoru također ažurira 60 puta u sekundi.

Slika 1 – Ažuriranje ekrana

Artefakti koji kidaju slike

Budite svjesni potencijalnog problema osvježavanja neujednačenog grafičkog bafera. Ako se sadržaj međuspremnika video memorije promijenio u trenutku kada slika na monitoru još nije u potpunosti nacrtana (ciklus osvježavanja nije završen), tada će se prikazati samo dio nove slike nakon linije skeniranja na ekranu (pogledajte sl. Rice. 2). Ovaj artefakt slike, koji prikazuje staru sliku na vrhu ekrana i novu sliku na dnu, naziva se cepanje. U stvari, ovaj izraz je vrlo deskriptivan, jer rezultirajuća slika izgleda kao da je "pocijepana" na pola.

Slika 2 - Artefakti "praznine" slike

Tim Flip

Jedan od načina da spriječite "suze" je da osigurate ažuriranje sadržaja video memorije nakon toga kako je ciklus osvježavanja ekrana završen i pre toga kada započne sledeći ciklus. Drugim riječima, ažuriranje se mora dogoditi tokom obrnutog pretraživanja. Međutim, ova metoda zahtijeva odgovarajuće promjene u softveru, koji mora izračunati redoslijed promjene slike sa dovoljnom preciznošću.

Iz tog razloga je predložen algoritam sinhronizacije prebacivanja bafera (Flip). Komanda Flip je vrlo jednostavna po prirodi - omogućava programu da ažurira sliku u bilo kojem trenutku tokom ciklusa osvježavanja ekrana, ali njen rezultat se zapravo ne prenosi u video memoriju dok se trenutni ciklus ne završi. Dakle, ažuriranje slike na monitoru se dešava u intervalu nakon izvršenja komande Flip. Sa metodom sinhronizacije bafera, "cepanje" slike je eliminisano jer naredba Flip osigurava da je kompletna nova slika spremna za svaki ciklus osvježavanja (pogledajte dolje). Rice. 3). Međutim, u sljedećem odjeljku ćemo pokazati da samo korištenje naredbe Flip ne garantuje da će svi problemi biti riješeni.

Slika 3 – Redoslijed naredbi za okretanje

Potencijalni problemi

Upotreba algoritma za sinhronizaciju ima velike prednosti i pomaže u uklanjanju artefakata kidanja, ali ostaje jedan značajan problem.

Kada koristite komandu Flip, softverski uslovi renderovanja za video se menjaju. Da bi izvršio Flip, softver mora podesiti interval ažuriranja bafera kadrova (brzinu kadrova) prema određenoj brzini kadrova. Jedina brzina takta po kojoj se okviri mogu sinkronizirati je brzina osvježavanja ekrana (ili višestruka). Drugim riječima, novi okvir se može prikazati samo na početku ciklusa osvježavanja – u stvari, intervali kadrova su vezani za brzinu osvježavanja ekrana.

Slika 4 – Neusklađenost brzine kadrova i frekvencije prikaza

Ova činjenica implicira da ako brzina osvježavanja ekrana nije ista kao brzina kadrova sadržaja koji se reproducira, ili nije višekratnik, sadržaj na ekranu se ne može u potpunosti reproducirati. Na Rice. četiri prikazan je poseban slučaj ovog problema. U ovom scenariju, brzina kadrova sadržaja je sporija od brzine osvježavanja ekrana. Zbog faznog pomaka između ove dvije frekvencije, intervali komande Flip za dva okvira će se na kraju produžiti za puni ciklus osvježavanja (obratite pažnju na vrijeme kadrova 3 i 4). Kao rezultat toga, okvir 3 će biti prikazan skoro dvostruko duže nego što je potrebno. Stoga treba nastojati uskladiti brzinu kadrova i brzinu osvježavanja ekrana, iako to nije uvijek moguće.

Situacija koja se razmatra samo se pogoršava ako je razlika između brzine kadrova i brzine osvježavanja ekrana mala. Kada su vremena okvira blizu intervalima ciklusa ažuriranja, čak i male nepreciznosti u proračunu softverskog tajmera mogu uzrokovati da nekoliko uzastopnih naredbi Flip zaluta u odnosu na početak ažuriranja. To znači da će se neke Flip komande pokrenuti prerano, a neke prekasno, što će rezultirati "dupliranim" i "ispuštenim" okvirima. Ovaj slučaj je ilustrovan u Rice. 5– tajmer ne radi ispravno (u nepravilnim intervalima), kao rezultat toga, okviri 2 i 4 se ne prikazuju, a okviri 3 i 5 su prikazani dva puta.

Slika 5 - Rezultat korištenja Flip on timer grešaka

Ovaj fenomen se može pojaviti čak i kada su broj kadrova sadržaja i brzina osvježavanja ekrana isti. Očigledno, korištenje samo tajmera i komande Flip nije dovoljno da se osigura reprodukcija video zapisa visokog kvaliteta. Kao što je objašnjeno u sledećem odeljku, da bi se komande Flip ispravno izvršile, softver mora da održava pametnu sinhronizaciju sa ciklusima osvežavanja ekrana.

Naredbe za okretanje vremena

Kao što je gore pomenuto, upotreba naredbe Flip omogućava vam da uzmete u obzir cikluse osvježavanja ekrana prilikom renderiranja video okvira. Svaki novoposlani okvir prikazuje se samo za jedan potpuni ciklus osvježavanja ekrana. Stoga, kada se koristi naredba Flip, softver mora precizno izračunati ne samo kada svaki okvir treba biti prikazan, već i odrediti specifični ciklus osvježavanja kako bi se optimalno sinkronizirao izlaz okvira.

Najbolje je pozvati naredbu Flip na samom početku ciklusa osvježavanja, neposredno prije početka odgovarajućeg intervala osvježavanja okvira (vidi primjer na Rice. 3). Ovo daje najveću vjerovatnoću stvarnog izvršavanja naredbe prije početka odgovarajućeg ciklusa ažuriranja i osigurava da se okvir izbaci u pravo vrijeme. Imajte na umu da u slučajevima kada se brzina kadrova videa i brzina osvježavanja prikaza ne podudaraju, Flipova optimizacija ciklusa osvježavanja okvira nije dovoljna da pruži prihvatljiv kvalitet videa. Postoje neki načini za uokvirivanje ili izmjenu okvira sadržaja koji rješavaju ove probleme, ali oni su izvan opsega ove publikacije.

Neki Operativni sistemi obezbeđuju programske interfejse preko kojih aplikacije mogu da budu sinhronizovane sa ciklusom osvežavanja ekrana. Konkretno, Microsoft DirectX 9.0 okruženje uključuje nekoliko procedura koje mogu biti vrlo korisne u našem slučaju. Zatim ćemo pogledati DirectX standardne procedure kao uzorne metode za rješavanje problema koji se istražuje. Čitaoci mogu koristiti ove primjere da istraže predložene metode i pronađu slična rješenja na drugim operativnim sistemima.

WaitForVerticalPlank() je standardna procedura u DirectDraw biblioteci (unutar IDirectDraw sučelja) koja blokira nit koja pristupa sučelju dok ne počne sljedeći ciklus ažuriranja. Ova procedura se može koristiti za sinhronizaciju, ali to treba učiniti jednom ili u značajnom intervalu jer je potrebno mnogo vremena za pristup. Međutim, ova procedura je korisna kada se izvodi početna sinhronizacija s ciklusom ažuriranja.

GetScanLine() je standardna procedura koja se može koristiti za dobijanje informacija o tome koja linija skeniranja se trenutno ažurira na ekranu. Ako su poznati ukupan broj redova i trenutna linija skeniranja, nije teško odrediti stanje ciklusa osvježavanja ekrana. Na primjer, ako je ukupan broj linija prikaza 1024 i procedura GetScanLine() vraća 100, trenutni ciklus osvježavanja je trenutno 100 do 1024, što je oko 10 posto završeno. Aplikacija GetScanLine() omogućava aplikaciji da prati stanje petlje ažuriranja i na osnovu toga odredi za koji ciklus će vezati sljedeći renderirani okvir i postaviti tajmer za željeno vrijeme prebacivanja bafera. Slijedi primjer algoritma:

Slika 6

Vrijeme promjene okvira se bira ne samo na osnovu izračunavanja novih okvira slike, već i uzimajući u obzir brzinu osvježavanja ekrana. S obzirom da se okviri prikazuju na ekranu samo kada je ekran osvježen, potrebno je paziti da svaki okvir "događa" tačan ciklus osvježavanja. Dakle, u idealnom slučaju, kadriranje slike treba da odgovara brzini osvježavanja ekrana. U tom slučaju, svaki okvir će biti nacrtan na ekranu u pravo vrijeme.

Alternativno rješenje za snimljeni sadržaj

Pitanja o kojima raspravljamo odnose se na sve scenarije reprodukcije video zapisa, kako u slučaju prijenosa uživo tako i prilikom reprodukcije snimljenog videa. Međutim, u potonjem slučaju možete pribjeći alternativnom rješenju. Ako je razlika između brzine kadrova sadržaja i brzine osvježavanja ekrana mala, možete podesiti brzinu kadrova videa (i podesiti audio tok na isti način) tako da odgovara brzini osvježavanja ekrana bez ugrožavanja kvalitete sadržaja. Kao primjer, uzmimo TV signal standardne definicije od 59,94 frejmova u sekundi (Bob deinterlaced) na monitoru na 60 Hz. Ubrzavanjem video i audio reprodukcije do 60 sličica u sekundi, možete osigurati da brzina kadrova odgovara intervalima osvježavanja ekrana i da u isto vrijeme neće biti artefakata slike.

Sažetak

Ova publikacija je posvećena metodama sinhronizacije slika, posebno prevenciji artefakata kidanja slike pomoću komande Flip. Članak se također bavi slučajevima u kojima naredba Flip uzrokuje probleme uzrokovane čvrstom sinhronizacijom s ciklusima osvježavanja ekrana. Pravilno mjerenje vremena kadrova i korištenje naredbi Flip mogu uzrokovati da se vremena i intervali kadra razlikuju od onoga što softverska aplikacija očekuje. U radu se zaključuje da je ispravan način upotrebe Flip komandi kombinovanje Flip sinhronizacije sa brzinom osvežavanja ekrana i optimizacija ciklusa izračunavanja slike u pogledu njenog naknadnog izlaza. Tako se intervali okretanja mogu podesiti u softveru. Najbolji kvalitet video se postiže kada se broj kadrova sadržaja podudara sa brzinom osvježavanja ekrana. Međutim, u praksi to nije uvijek moguće postići. Algoritmi opisani u ovom članku pomoći će da se artefakti slike svedu na minimum.

Šta je vertikalna sinhronizacija u igricama? Ova funkcija je odgovorna za ispravan prikaz igara na standardnim LCD monitorima sa frekvencijom od 60 Hz. Kada je omogućeno, brzina kadrova je ograničena na 60Hz i na ekranu se ne prikazuju nikakvi prekidi. Onemogućavanje će povećati brzinu kadrova, ali će u isto vrijeme doći do efekta kidanja ekrana.

V-sinhronizacija je prilično kontroverzna tema u igrama. S jedne strane za vizuelnu udobnost gameplayčini se vrlo potrebnim, pod pretpostavkom da imate standardni LCD monitor.

Zahvaljujući njemu, tokom igre se na ekranu ne pojavljuju greške, slika je stabilna i nema praznina. Nedostatak je što je brzina kadrova ograničena na 60Hz, tako da zahtjevniji igrači mogu iskusiti input lag, odnosno blago zaostajanje pri kretanju mišem u igri (može se izjednačiti sa umjetnim izglađivanjem kretanja miša).

Onemogućavanje vertikalne sinhronizacije također ima svoje prednosti i nedostatke. Prije svega, omogućena je neograničena frekvencija FPS okviri i time potpuno otkloniti spomenuto kašnjenje unosa. Zgodno je za igre. Counter-Strike tip gdje su bitni odziv i tačnost. Kretanje i nišanjenje je vrlo jasno, dinamično, svaki pokret miša se odvija sa velikom preciznošću. U nekim slučajevima možemo dobiti više FPS stopa, pošto V-Sync, ovisno o video kartici, može malo smanjiti performanse hardvera (razlika je oko 3-5 FPS). Nažalost, nedostatak je što bez vertikalne sinhronizacije dobijamo efekat kidanja ekrana. Prilikom okretanja ili promjene pokreta u igri, primjećujemo da je slika pocijepana na dva ili tri horizontalna dijela.

Omogućiti ili onemogućiti V-Sync?

Da li je potrebna vertikalna sinhronizacija? Sve zavisi od naših individualnih preferencija i onoga što želimo da dobijemo. U FPS igrama za više igrača, preporučuje se da isključite vertikalnu sinhronizaciju kako biste poboljšali preciznost cilja. Efekt kidanja ekrana po pravilu nije toliko primetan, a kada se naviknemo, nećemo ga ni primetiti.

Zauzvrat, u igre priče Možete sigurno omogućiti V-Sync. Ovdje visoka preciznost nije toliko bitna, prvu violinu svira okruženje, vizuelni komfor, pa se treba kladiti na kvalitet.

Vertikalna sinhronizacija se obično može uključiti ili isključiti u grafičkim postavkama igre. Ali ako tamo ne pronađemo takvu funkciju, možete je ručno isključiti u postavkama video kartice - i za sve i samo za odabrane aplikacije.

Vertikalna sinhronizacija na NVIDIA grafičkim karticama

Na GeForce grafičkim karticama, funkcija se nalazi na Nvidia Control Panel-u. Kliknite desni klik miša na Windows 10 radnoj površini, a zatim odaberite Nvidia Control Panel.

Na bočnoj traci odaberite karticu Kontrole 3D postavki ispod 3D postavke. Dostupna podešavanja će biti prikazana sa desne strane.

Postavke su podijeljene u dvije kartice - globalnu i programsku. Na prvoj kartici možete postaviti opcije za sve igre i, na primjer, hoćete li omogućiti ili onemogućiti vertikalnu sinhronizaciju u svakoj. Dok na drugoj kartici možete podesiti iste parametre, ali pojedinačno za svaku igru ​​posebno.

Odaberite globalnu ili programsku karticu, a zatim potražite opciju "Vertikalna sinhronizacija" na listi. Pored njega nalazi se padajuće polje - biramo da nasilno isključimo ili uključimo vertikalnu sinhronizaciju.

V-Sync na AMD grafici

U slučaju AMD grafičkih kartica, izgleda potpuno isto kao i kod Nvidije. Kliknite desnim tasterom miša na radnu površinu, a zatim idite na Panel Catalyst Control Center.

Zatim otvorite karticu "Igre" na lijevoj strani i odaberite "Postavke za 3D aplikacije". Sa desne strane će se prikazati lista dostupnih opcija koje se mogu prisilno omogućiti sa pozicije AMD Radeon grafičkih postavki. Kada smo na kartici "Postavke sistema", biramo za sve.

Ako trebate podesiti parametre pojedinačno za svaku igru ​​posebno, tada trebate kliknuti na dugme "Dodaj" i odrediti EXE datoteku. Biće dodata na listu kao nova oznaka, a kada se prebacite na nju, možete podesiti parametre samo za ovu igru.

Kada odaberete karticu sa dodanim parametrima aplikacije ili sistema (općenito), na listi pronađite opciju "Čekaj vertikalno ažuriranje". Pojavit će se okvir za odabir gdje možemo nasilno omogućiti ili onemogućiti ovu opciju.

V-Sync na integrisanoj Intel HD grafici

Ako koristite integrisani Intel HD Graphics čip, dostupna je i kontrolna tabla. Trebao bi biti dostupan desnim klikom na radnu površinu ili kombinacijom tipki Ctrl+Alt+F12.

Na Intel panelu idite na karticu Režim podešavanja - Kontrolna tabla - 3D grafika, a zatim na korisnička podešavanja.

Ovdje nalazimo polje sa vertikalnom sinhronizacijom Vertikalna sinhronizacija. Možete ga omogućiti prisilno postavljanjem vrijednosti na "Omogućeno" ili na "Postavke aplikacije". Nažalost, ne postoji funkcija prisilnog onemogućavanja u opcijama Intel HD kartice - možete omogućiti samo V-Sync. Pošto nije moguće onemogućiti vertikalnu sinkronizaciju na video kartici, to se može učiniti samo u postavkama same igre.