2024. április 25., csütörtök

Gyorskeresés

Útvonal

Cikkek » Számtech rovat

Az x264 és a DXVA - a gyakorlatban

  • (f)
  • (p)
Írta: |

Egy tesztsoron keresztül szemléltetem, miért érdemes a DXVA komatibilitást kihasználni kódolásnál, hogy a...

[ ÚJ TESZT ]

Egy tesztsoron keresztül szemléltetem, miért érdemes a DXVA komatibilitást kihasználni kódolásnál, hogy a lejátszásnál se legyen semmi gond kisebb HTPC-ken, laptopon, asztali gépeken.

A num_ref_frames változásainak hatása a DXVA kompatibilitásra, a deblock negatív irányú eltolása nagy felbontású videók esetében

Korábban már esett szó a DXVA kompatibilitásról, annak megtörését eredményező beállításokról, valamint a deblock hatásáról az alap 0:0 beállítás és a -3:-3 beállítás mellett. Egyik írásomban utaltam is rá, hogy leteszteltem a -3:-3 deblock-ot, ám nem éreztem igazán körültekintőnek, mivel SD minőségről volt szó (már a forrás sem volt megfelelő) és sok homogén felületet tartalmazó anyagról. Most találtam egy másik, sokkal mozgalmasabb és részletesebb videót - amivel már jobb tesztelni - nagyobb felbontásban (720p). Időhiány miatt nem sok tesztbeállítással dolgoztam, de azért kiindulásként ennyi is megteszi.

Koncepció:

DXVA kompatibilis HD tartalmak kódolásakor nem lehet hatással az eredményre a /ref, /b_pyramid és /bframes paraméterek szabad használata, illetve elhagyása, amennyiben a num_ref_frames értéke még belefér a DXVA használatához szükséges DPB keretbe. 720p videók esetén ennek értéke: < 10.
A deblock paraméter nagyobb változtatása látható hatással van, főképp nagyobb felbontásokon (720p és fölötte), a képminőségre. Negatív irányú eltolása élesebb képet eredményez, de túlzott mértékű deblock már minőségbeli romlást okozhat (-3:-3).

Kitűzött célok:

Pozitív eredményként értékelhető, ha a /ref, /b_pyramid, /bframes önmagában nem okoz változást a DXVA kompatibilitás szempontjából a num_ref_frames határon belül, emellett a deblock értékének változása megfigyelhető hatással lesz a képre. Mivel nem nagyon ajánlott a -3:-3, járulékos célként kitűzhető a kép éleinél a torzulás bizonyítása.
Negatív eredmény mindenképpen, ha a DXVA megtörik az említett paraméterek alkalmazásával, illetve nagymértékben változik a képminőség. Szintén negatív eredmény, ha a deblock nem érzékelhető hatással van a kimenetre ekkora eltolás mellett.

Tesztelés:

Forrás:

A teszteléshez egy HDTV sportesemény felvételét használtam, ami a következő tulajdonságokkal rendelkezik:
4275 Kbps, 1280*704, 4:2:0, 60 fps, progresszív

Minden tesztesetnél High@L4.1 profilt alkalmaztam.

Használt programok:

- Windows Vista + SP1
- AutoMKV 0.95 – több x264 verzióval. Érdekelt, hogy a régebbieknél mennyire változik a num_ref_frames korlát.
- RivaTuner
- Mediainfo
- Medai Player Classic - HC

Hardver:

- CPU: AMD Athlon64 X2 4000+ @2.5 GHz
- VGA: Sapphire HD 3850 256 MB

Teszteredmények:

1. teszteset:



Kódolási paraméterek: x264 core 59 r826M 138601d

cabac=1 / ref=4 / deblock=1:-3:-3 / analyse=0x3:0x113 / me=umh / subme=6 / me-prepass=0 / brdo=1 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=2 / deadzone=21,11 / chroma_qp_offset=0 / threads=3 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / bime=1 / keyint=250 / keyint_min=25 / scenecut=40(pre) / rc=abr / qcomp=1.00 / qpmin=10 / qpmax=51 / qpstep=4

2. teszteset:



Kódolási paraméterek: x264 core 58 svn-736M

cabac=1 / ref=4 / deblock=1:0:0 / analyse=0x3:0x113 / me=umh/ subme=5 / me-prepass=0 / brdo=1 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=0 / cqm=0 / deadzone=21,11 / chroma_qp_offset=0 / threads=3 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=0 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / bime=1 / keyint=250 / keyint_min=25 / scenecut=40(pre) / rc=2pass /qcomp=1.00 / qpmin=10 / qpmax=51 / qpstep=4

3. teszteset:



Kódolási paraméterek: x264 core 64 r979 6d4af8d

cabac=1 / ref=6 / deblock=1:-3:-3 / analyse=0x3:0x113 / me=umh / subme=6 / psy_rd=1.0:0.0 / brdo=1 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=-2 / threads=3 / nr=0 / decimate=1 / mbaff=0 / bframes=6 / b_pyramid=0 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / bime=1 / keyint=250 / keyint_min=25 / scenecut=40(pre) / rc=2pass / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4

4.teszteset:



Kódolási paraméterek: x264 core 64 r979 6d4af8d

cabac=1 / ref=10 / deblock=1:-3:-3 / analyse=0x3:0x113 / me=umh / subme=6 / psy_rd=1.0:0.0 / brdo=1 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=-2 / threads=3 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / bime=1 / keyint=250 / keyint_min=25 / scenecut=40(pre) / rc=2pass / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4

Kiegészítés:

Összehasonlításként egy hagyományos XviD képe a RivaTuner mérése alatt.

Konklúzió:

A DXVA kompatibilitás nem tört meg a /b_pyramid be, illetve kikapcsolásával, a /ref és a /bframes változtatásával, amíg a kalkulált num_ref_frames értéke a korlátban meghatározott érték alatt marad. A koncepció helyes volt.

1. teszteset

Az első esetben a num_ref_frames értéke a következők szerint alakul:
/ref=4 ===> 4
/bframes=3 ===> 1
/b_pyramid=1 ===> 2
4 + 1 + 2 = 7 ===> 7 < 10

2. teszteset

A második esetben a num_ref_frames értéke a következők szerint alakul:
/ref=4 ===> 4
/bframes=3 ===> 1
/b_pyramid=0 ===> 0
4 + 1 + 0 = 5 ===> 5 < 10

3. teszteset

A harmadik esetben a num_ref_frames értéke a következők szerint alakul:
/ref=4 ===> 6
/bframes=6 ===> 1
/b_pyramid=0===> 0
6 + 1 + 0 = 7 ===> 7 < 10

4. teszteset

A negyedik esetben a num_ref_frames értéke a következők szerint alakul:
/ref=4 ===> 10
/bframes=3 ===> 1
/b_pyramid=1 ===> 2
10 + 1 + 2 = 13 ===> 13 > 10 – Nincs DXVA kompatibilitás.

Látható, ha jobban megnézzük a két képet, hogy a -3:-3 deblock beállítás ebben az esetben indokolt volt, mert az alapbeállítás (0:0) kicsit összemosta az éleket. A sisakok fényezésén, illetve a nézőkön lehet a legjobban látni, hogy a -3:-3 beállítással élesebb a kép. Főképp nagyobb felbontásnál tehát érdemesebb a deblock értékeit eltolni kicsit negatív irányba - akár a -3:-3-ig is (Kisebb felbontás tesztelése még szükséges). A koncepció tehát annyiban nem helyes, hogy látható torzulást nem eredményez a -3:-3 deblock. Mindazonáltal megjegyzem, hogy a harmadik tesztesetben is -3:-3 deblock-ot alkalmaztam, ám a forrás az első teszteset volt és azt kódoltam újra, így viszont már látható, hogy a hatékonyság is csökkent, habár a másodikhoz viszonyítva jobbnak hat.

További eredmények, észrevételek:

Az is jól látható a RivaTuner mérésén, hogy a DXVA támogatás kihasználása nem terheli meg túlságosan a GPU-t (720p esetén), ám annál több terhet vesz le a CPU-ról. Ebből leszűrhető, hogy egy nagyobb bonyolultságú, nagy felbontású és magas bitrátájú BD vagy más anyag lejátszása sem jelent extrém magas kihasználtságot a GPU-nál.

Egyértelműen látszik, hogy a negyedik teszteset nem használja a videokártyát, mert a GPU órajele a PowerPlay által a 2D értékre beállított maradt, tehát maximum a megjelenítésre (lejátszó) fordít időszeleteket, nem a videó dekódolására, aminek terhét a CPU vette magára. Mivel a processzor alapvetően általános számítási műveletekre lett kifejlesztve, jobban meg is terheli a lejátszás, mint a GPU-t, amiben célirányosan erre a feladatra kitalált komponensek is vannak. Elmondható tehát, hogy a DXVA támogatást kihasználó filmek kevésbé terhelik a gépet. Ez pedig simább lejátszást, kevesebb fogyasztást, kisebb hőtermelést is jelent és közvetve halkabb ventilátorokat.

Érdekes, de nem meglepő, hogy bár az XviD dekódolásakor is van némi GPU használat (csupán a szükséges megjelenítési dolgoknak köszönhető), az órajel marad a PowerPlay által lecsökkentett 2D órajelen, vagyis nincs szükség a GPU interakciójára, a dekódolás tisztán CPU oldalon történik.

---***--- UPDATE ---***---

Az összehasonlítás érdekében egy 1080p sample mérése RivaTuner-ben:

Remélem, ezek után már mindenki számára egyértelmű, miért lényeges és áldásos a DXVA támogatás kihasználása HD videóknál. :)

Azóta történt

Előzmények

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.