MPC-HC és a shaderek
MPC-HC és a shaderek
Előfeltételek, követelmények:
- Egy videokártya legalább Shader Model 2-vel - a Dx9-es kártyák már ilyenek.
- DirectX 9 runtime (lehetőleg a legfrissebb).
- VMR7/9 (renderless) vagy EVR custom megjelenítő.
- 3D felületek beállítása
- az MPC-HC egy példánya, amely a 727-es build-nél frissebb (ezt nem lesz nehéz teljesíteni, mert ez már elég régi)
Az alkalmazás beállítása roppant egyszerű, gyakorlatilag egy kontext menüben elérhető funkcióról van szó. Betöltünk egy filmet, jobb kattintással előcsalogatjuk a helyi menüt és ott kiválasztjuk a Shaders (Árnyalók) menüt. Alapesetben le vannak tiltva ezek a hatások, mert bizony, mint látni fogjuk, nem minden GPU tud megbirkózni egy-egy komolyabb terhelést jelentő programocskával.
Éppen ezért érdemes monitorozni a teljesítményt és egy feladatkezelőt (task manager) is nyitva tartani arra az esetre, ha túl megterhelő lenne a művelet a GPU-nak.
Az árnyalók nagyobb része önmagáért beszél és néhány perc próbálgatással könnyen kitalálható, melyik mire való. Többségük inkább csak poén vagy látványos (mint pl. az éjjellátó funkció), azonban van néhány, amelyek alkalmasak a képminőség befolyásolására (post process), viszont cserébe megdolgoztatják a GPU-t a számításokkal. Most nem sorolnám fel mindet, hanem forduljunk is rögtön a fontosabbakhoz, amelyeknek komoly szerepük lehet a képminőségben.
A shaderek önmagukban is használhatóak, így nem is terhelik meg nagyon látványosan a GPU-t, egy-két kivételtől eltekintve, tehát azoknak, akiknek gyengébb grafikus megjelenítőjük van, érdemes egyesével próbálgatni a beállításokat.
Shaders/Screen Space Shaders
Az első, amit érdemes megfigyelni, hogy a fejlesztők szerencsére logikusan gondolkodtak, amikor a shaderek bevetéséről döntöttek. Alapesetben, ha egy filmet nézünk, ami mondjuk 1280x720 felbontású, ám azt szeretnénk például az 1680x1050 felbontású monitorunkon nézni, az történik, hogy a shaderek alkalmazásával először végrehajtódnak a shader utasítások, majd átméreteződik a kép. Ez nyilván elég sok számítást igényelő feladat.
Amennyiben azonban a Screen Space shadereket használjuk, akkor először átméretezi a képet a program és utána hajtja végre a shader utasításokat. Ez is számításigényes, de az előzőnél optimalizáltabb megoldás.
Ha tehát például az élességet befolyásoló effektet használunk, érdemesebb a Screen Space hatásokat választani.
Képélesség:
Ha rendezzük az effekteket, akkor az első csoportba az élességet befolyásoló shaderek kerülhetnek. Ezek fő feladata, hogy az elmosódott, halványabb részek is élesebbek legyenek lejátszás közben.
Ide tartozik a sharpen complex 2, sharpen complex, edge sharpen, sharpen. Erősségük ebben a sorrendben állítható sorba. Alkalmazható több is közülük, de nem ajánlott, illetve többször ugyanazt sem ajánlott betenni, mert könnyen a ló másik oldalára eshet a képminőség és egy-egy él olyan lesz, mint egy sündisznó.
Közepesen számításigényes shaderek.
Színek:
Anélkül, hogy a színterek közötti konverzióba mélyebben belemennék, nézzük meg a színterekre vonatkozó shadereket. Ezek nem terhelik meg túlságosan a GPU-t, de hatásuk látványos lehet adott esetben.
16-235-->0-255[SD][HD]
Ez a shader a színskálát terjeszti ki. Az alap probléma az RGB és a YUV közötti konverzióból, illetve annak veszteséges voltából ered. Az RGB 0-255 értékeket tárol, ezekből a konverzió során a 16-235 közötti Y marad meg. A YUV tehát nem használja a teljes 0-255 tartományt. Ennek történelmi okai vannak, de ebbe most ne menjünk bele. A lényeg, hogy ez a shader segít a színek teljes 16 milliós tartományát visszaállítani 11 millió helyett.
Érdekesség, hogy régebben erre nem volt lehetőség, ám az nVidia és az ATI is egy ideje már beépítette a grafikus kártyái driver-ébe a korrekciót. Ettől függetlenül kipróbáltam a shadert és a különbség észrevehető. Igazán látványosan lejátszás közben változik meg a kép.
BT601 —> BT709
Kicsit tovább menve a színterek világában, nézzük meg a BT601 —> BT709 shadert. A YUV és RGB közti konverzióhoz választja ki a színteret. Az ITU-R BT.601 általában az SD, míg az ITU-R BT.709 a HD tartalmakhoz tartozik. Az RGB csökkentett tartományát befolyásolhatja a helyes használat.
Denoise
A denoise nevéből eredően a zajszűrésre koncentrál. Minden shader közül ez a legerőforrásigényesebb és ahogyan a tesztünkből látni fogjuk, nem alaptalan ez a kijelentés. Hátulütője, hogy indokolatlan használata elmosottá, homályossá teszi a képet, ahelyett, hogy javítaná a minőségét. Éppen ezért érdemes mindig kipróbálni, hogy az adott filmnél javít-e vagy ront. Használatát érdemes kombinálni az élességért felelős shaderekkel, így egymás hatását enyhíthetik, ha valamelyik túl sok lenne.
Ma már a VGA driver-ben is van denoise, azt is megéri kipróbálni, mert valamivel okosabbra vannak megírva, mint ez a shader, amely minden keretre külön alkalmazza a zajszűrést.
Deinterlace
A deinterlace használata nem szükséges az esetek túlnyomó többségében, de tévéből felvett adásoknál hasznos lehet, ha interlaced maradt a folyam (pl.: 1080i).
Shaderek kombinálása
A legelterjedtebb a shaderek kombinálása a legjobb képminőség elérése érdekében. Ezek közül is az egyik legnépszerűbb kombináció a következő hármas a felhasználók körében:
- sharpen copmplex 2
- denoise
- 16-235-->0-255
A különbség látványos a shadereket engedélyezése és tiltása között:
Kiemelhető még az is, hogy a shaderek szabadon szerkeszthetőek a beépített editorral. Szerencsére úgy oldották meg a készítők a szerkesztést, hogy a programok átírásának hatása azonnal meg is jelenik a képernyőn. (Sajnos a denoise-t nem sikerül sem okosabbra, sem kevésbé erőforrásigényesre átírnom).
A cikk még nem ért véget, kérlek, lapozz!