Filmek optimális lejátszása 2.0

Jócskán elszaladt az idő, mióta utoljára frissítettem a filmlejátszós cikkemet. Sokat változott azóta a technika, de én is egész másképp nézek már erre a hobbira. Szóval inkább nem állok neki tovább foltozni, hanem egy egyszerűbb, aktuálisabb és lényegretörőbb új változatot készítek belőle.

A lényeg az, hogy ha tényleg úgy érdekel a filmnézés mint egy komoly hobbi, tehát rászánod az időt, a figyelmet, a pénzt és igyekszel minden körülményt úgy alakítani, hogy a lehető legideálisabb állapotban történjen meg az adott mű befogadása, akkor érdemes pár órára elmerülni a lejátszás szoftveres oldalában, mert sajnos igen kacifántos és zavaros egy dolog ez. Hidd el, megéri a befektetett időt!

Kicsit utánaolvasva gyorsan kiderül, hogy a maximalistáknak nincs más lehetőség, mint a madVR video renderelő használata. Most már egy csomó lejátszóval kompatibilis, iszonyú részletesen konfigurálható és minden más megoldásnál jobb.

Mi kell hozzá:
– Jó kijelző, gyors számítógép, DirectX 11 kompatibilis videokártya. Nem árt ha van kraft, mert a komolyabb algoritmusok megizzasztják a gépet.
– Kompatibilis médialejátszó (a madVR oldal listájából). Szerintem még mindig a MPC-BE a legjobb lejátszó, de mindegyik megteszi.
madVR video renderer. A megjelenítés lelke, minden fontos funkciót ez lát el.
CRU vagyis Custom Resolution Utility. Opcionális, de 60 Hz-hez kötött monitoroknál igen jól jön.

Windows beállítások:
A gyártók közt (intel, AMD, Nvidia) vannak különbségek, de a fontos funkciók ugyanazok.
– Minden képmódosítással kapcsolatos funkciót le kell tiltani.
Pulldown legyen bekapcsolva.
RGB 4:4:4 képpont formátum.
0-255 teljes dinamikatartomány.
– Ha tudja a kijelző, akkor 10 bit színmélység.
– A videolejátszó színbeállításainak használata (a gyártói felülírás helyett).

Médialejátszó beállítása:
Tengernyi lehetőség, a legfontosabbak egyértelműek és/vagy nem lényegesek a megjelenítés szempontjából.
A szűrő beállításokat jellemzően nem kell piszkálni.
– Le kell tölteni a madVR-t, ki kell csomagolni valahova, figyelembe véve, hogy ott is fog maradni (az installálás nem rakja át sehova). Rendszergazdai jogosultsággal install.bat.
– A lejátszó video kimenetét át kell állítani madVR-re.

madVR beállítások:

devices:
A kijelzők tulajdonságainak beállítása. Minden kijelzőre külön kell beállítani. Hozok rá példát.

properties:
A windows beállításoknak megfelelően.
0-255 (PC levels) teljes dinamikatartomány.
– Lehetőség szerint 10 bit színmélység.
– 3D format... Na ne vicceljünk! :D

calibration:
Ha a kijelző kalibrált és megvan, hogy mi alapján készült a művelet, annak megfelelően kell beállítani. Ha nincs kalibrálva, a legáltalánosabb beállítás megfelelő lesz:
– This display is already calibrated.
– BT.709.
– pure power curve / 2.20.


display modes:
A különböző felbontások és a képfrissítési frekvenciák beállítása. Esszenciális a folyamatos, nem ugráló képhez. 
Célszerű úgy beállítani, hogy akkor váltson át a kijelző a megfelelő módba, ha teljes képernyőre kapcsolunk:
– switch to matching display mode when media player goes fullscreen.
– restore original display mode when media player leaves fullscreen.

Tulajdonképpen az a lényeg, hogy a kijelző frekvenciája ugyanannyi vagy többszöröse legyen film képkockasebességének. A TV-k most már jellemzően minden fontos frekvenciát tudnak kezelni (23,976 / 24 / 25 / 29,97 / 30 / 50 / 59,94 / 60 fps és Hz). A monitorok viszont közel sem ilyen barátságosak. Rosszabb esetben csak a 60 Hz megy. A custom modes fülön megjelennek a kijelző gyártó által előkészített képmódjai. De szerencsére nem kell ehhez ragaszkodnunk, trükközéssel elő lehet majd csalogatni a szükséges üzemmódokat. Az én két kijelzőm pont bemutatja a végleteket, úgyhogy jöjjenek a példák. 

TV beállítása:
A fullHD Panasonic plazma TV-m alapból ismeri az összes szükséges módot, így a beállítás egyszerű. A natív (maximális) felbontásához hozzá kell rendelni az összeset:
– list all display modes madVR may switch to:
1080p23, 1080p24, 1080p25, 1080p29, 1080p30, 1080p50, 1080p59, 1080p60


monitor beállítása:
Ha egy 60 Hz-hez kötött monitorral áldott meg minket a sors, akkor kicsit bele kell piszkálni a windows-ba, hogy át tudjon váltani - az amúgy jó eséllyel igen rugalmasan használható - monitorunk a megfelelő frissítésére. Itt jön képbe a CRU, de minden lehetőség lefedésére a madVR mélyebb buherálása is szükséges lesz.
Kezdjük ott, hogy a legfontosabb frissítés a 23,976 Hz (amerikai filmek java ennyi fps), ami általában csak 23-ként szerepel. Emellett igen fontos a 24 Hz (európai filmek java ennyi fps), ez pedig 24-ként szerepel. Az esetek többségében ez a kettő (és talán a 25 Hz) elég is, de az összes forrás lefedésére sem kell vészesen sok időt fordítanunk. (A dolgot kicsit az bonyolítja meg, hogy a pöpecül használható CRU-ban a 60 Hz-en kívül csak három másik módot tudunk hozzáadni, a madVR vonatkozó beállításában meg az egymáshoz közeli frekvenciák közül mindig csak az egyik aktiválódik (23,976 és 24 fps ilyen), de a kettő kombinációjával meg lehet oldani ezt is.)

– Indítsuk el a CRU-t. Bal felül válasszuk ki a beállítani kívánt kijelzőt.
– detailed resolutions > add:
A parameters-ben a CRU alapból beállítja a kijelző maximális felbontását és az ehhez szükséges további paramétereket. Ezeket itt nem kell piszkálni, de a madVR-hez majd kelleni fognak.
– A frequency-nél a refresh rate-hez írjuk be a kívánt értékeket:
23.976 Hz. (Tizedespontot ismer csak!) OK.
Újra add és jöhet a 24.000 Hz.
Ugyanez 25 Hz-cel.
– Be is zárhatjuk a CRU-t az OK-val.
– Restart illetve 64 bites windowsban Restart64-el indíttasuk újra a windows-al a megjelenítést.
Villog a kép stb.
– Az asztalon jobb klikk > képernyő-beállítások > speciális megjelenítési beállítások > kijelző kiválasztása > frissítési időköz:
Itt válasszuk ki és teszteljük le, hogy rendesen működik e a most beállított három frekvencia. (Ha nem, akkor ugrál a kép, a fele látszik csak vagy semmi. Ilyenkor a videokártya vagy a monitor vagy a kettő együtt nem elég rugalmas és sajnos le kell mondanunk a valóban ugrálásmentes filmlejátszásról.)


Ha valaki nem akar bajlódni a többi frekvenciával, mert úgyse néz 29,97; 30; 50; 59,94 fps mozgóképet az továbbléphet a color & gamma menüpontra. A kitartóaknak mehet tovább:
– Vissza a madVR beállításokba. devices > kijelző kiválasztása > display modes > custom modes fül:
Ha kivesszük a pipát a show native res modes only elől, akkor látjuk, hogy igazából rengeteg üzemmódja van a monitornak.
add-dal adjuk hozzá a fennmaradó módokat. Először felugrik egy ablak, itt ismét a kijelző maximális felbontása kell és a beállítani kívánt frekvencia hivatkozása két számmal (!). Ezek rendre 29, 30, 50, 59 lesznek. (Én ebből itt a 30-at elspóroltam, mert soha nem kellett még.)
– a madVR alapból megsaccolja az értékeket, de jellemzően nem találja el. Segítségül kell hívnunk a CRU-t, amiben ha ideiglenesen kitöröljük az egyik újonnan beállított frekvenciát és hozzáadjuk a madVR-ben beállítani kívántat, akkor át tudjuk másolni a CRU által helyesen megadott paramétereket. Figyeljünk arra, hogy nem csak a 6 felső - más sorrendben megadott - paramétert, hanem a sync polarity-t és a pixel clock-ot is külön át kell írnunk. (A CRU-ból cancel-lel kilépve nem veszik el az elmentett beállításunk.)
– Ha kijön a results in sorban a kívánt frekvencia (vagy legalábbis egy nagyon közeli érték), akkor jól csináltuk. Jöhet a test mode. Ha sikeres, akkor le tudjuk OK-zni. Majd esetleg a CRU féle restart után (a reset gpu a madVR-ben nálam nem nagyon ment) ki tudjuk próbálni a windows-ban, hogy működik e.
– Ha hozzáadtuk mindegyik kívánt módot, akkor a display modes fülre visszalépve írjuk be a list all display modes madVR may switch to sorba a kívánt frekvenciákat. 4K monitor esetén, az összeset felvéve így kell kinéznie:
2160p23, 2160p24, 2160p25, 2160p29, 2160p30, 2160p50, 2160p59, 2160p60


color & gamma:
Ezeket a beállításokat jobb esetben nem kell használnunk.

hdr:
Ha HDR képes a kijelzőnk és szeretnénk is használni, akkor passthrough HDR to display.
Ha nem, akkor tone map HDR using pixel shader az alábbi beállításokkal:
target peak nits valahol 200 körüli értékkel. Nálam sötét szobában 150 a jó. Ki kell tesztelni.
– tone mapping curve: BT.2390
– color tweaks for fire & explosions: balanced
– highlight recovery strength: none


processing:

deinterlacing:
Itt azt tudjuk megadni, hogy váltott soros megjelenítés során miként aktiválódjon a deinterlacing. Az alábbi beállítások jellemzően jól működnek:
– Automtically activate deinterlacing when needed.
– If in doubt, deactivate deinterlacing
– Only look at pixels in the framce center.
Megjegyzendő, hogy DirectX 11-el gond szokott lenni és valamiér nem aktiválódik. Ekkor a beállítások > belső szűrők > videó dekóderek > video decoder konfiguráció > használjon D3D11 dekódernél ki kell venni a pipát.

artifact removal:
A tömörítési és egyéb zavaró képhibákra vannak elég jól működő, elfedő algoritmusok. Túl erősre nem érdemes állítani őket, mert akkor már felesleges mértékben belenyúlnak a képbe. Ami bevált:
– Reduce banding artifacts.
default banding strength: low
strength during fadein/out: high
– Reduce ringing artifacts.
– Reduce compression artifacts.
strength: 2
activate only if it comes for free.


image enhancements:
Itt további képmódosító algoritmusokat lehet bekapcsolni, de megfelelő forrás esetény ezekre semmi szükség.

zoom control:
Felirat eltolása, levágatlan fekete sávok érzékelésével és levágásával kapcsolatos beállítások. Szintén: megfelelő forrás esetén nem kell foglalkoznunk velük.

scaling algorithms:

Az átméretezési algoritmusok minőségi beállításai. Erősen teljesítményfüggő, ezért érdemes eljátszadozni a beállításokkal. Van egy kis segítő táblázat, hogy melyik milyen pozitív vagy negatív tulajdonsággal bír, ezt érdemes használni. Jellemzően a legjobb algoritumsok irreálisan sok erőforrás elégetésével dolgoznak.

chroma upscaling:
Színek felskálázása. Minden esetben aktiválódik, de a végső képre nincs akkora hatással, mint a képméretezések.
Ideális beállítás: Jinc + activate anti-ringing filter 
Erőforrásigényes: super-xbr + sharpness: 100 + activate anti-ringing filter vagy NGU és a határ a csillagos ég.

image downscaling:
Kép leskálázása. A felhasználói szokásoknak megfelelően és a 4K kijelzőek elterjedésével ez kerül legkevésbé fehasználásra, bár ha a többszörös felskálázást aktiváljuk a következő pontban, akkor azért lehet fontos szerepe.
Ideális beállítás: Jinc + scale in linear light + activate anti-ringing filter (relaxed)
Erőforrásigényes: SSIM + 2D - strength 100% + scale in linear light + activate anti-ringing filter (relaxed)

image upcaling:
Kép felskálázása. Elég fontos része a képalkotásnak. Van lehetőség kényszeríteni, hogy mindenképpen duplázza vagy négyszerezze a képet, amivel bekerül a leskálázás is az elvégzendő műveletek sorába, úgyhogy elég erőforrásigényes, de kétségtelenül így lehet a legideálisabb képet előállítani. Szerintem amúgy nem éri meg.
Ideális beállítás: Jinc + activate anti-ringing filter + scale in sigmoidal light
Erőforrásigényes: doubling + NGU Anti-alias (medium) stb.

upcaling refinement:
További módosítási lehetőségek, nagyjából ugyanazok, mint a processing > image enhancements-nél. Ott inkább, itt egyértelműen nem ajánlott a használatuk.


rendering:
Rengeteg beállítás, de a javával nem kell foglalkozni. Ami érdekes lehet:

general settings:
– delay playback start until render queue is full.
– use Direct3D 11 for presentation + present a frame every VSync.
esetleg: enable automatic fullscreen exclusive mode (ha valamiért anomáliák lépnek fel, nem elég erős a gép, stb.)
smooth motion:
Ha nem jutunk dűlőre a frekvenciákkal, akkor a kép ismétlés vagy kihagyás elfedésére egy egész jó pótmegoldás.
dithering:
Árnyalás, ami elég fontos a jó képhez. 
– Error Diffusion - option 2 + use colored noise + change dither for every frame


Ellenőrzésre lejátszás közben CTRL+J billentyűkombinációt érdemes használni. Itt a madVR fontos információkat mutat arról, hogy minden rendben megy e, milyen algoritmus aktiválódott, stb. Amire figyelni kell:
– 1 frame repeat every xx.xx minutes. Minél ritkább, annál jobb.
– dropped / repeated / delayed frames és presentation glitches ne legyen. Indításnál, képernyőmód váltásnál szokott lenni, az nem gond. Ha sok a hiba, akkor vessük össze az average stats értékét a vsync-kel. Ha előbbi a több, akkor a gép nem tudja elég gyorsan kiszámolni a képet.


Nagyjából ennyi lenne. Egy csomó útmutatót és anyagot felhasználtam az idők során, de a legtöbbet ennek a részletekbe menő beállításnak köszönhetem. Jó filmezést!

Megjegyzések