Log in

View Full Version : Evaluation of HEVC decoders (SW, Hybrid and HW)


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

NikosD
22nd December 2015, 09:25
Extremely low CPU usage.

Did you see the GPU usage using GPU-Z ?

Looks like a native, pure HW acceleration of VP9 which is impressive, if it's true.

nevcairiel
22nd December 2015, 10:22
Neat they fixed it, and my implementation apparently works out of the box, always nice to know :) time to benchmark myself later

wanezhiling
22nd December 2015, 10:59
NVIDIA is always the best.

NikosD
22nd December 2015, 11:29
Nvidia is always second the last few years.

Second to Intel.

Second in speed, quality (transcoding) and adoption of new codecs.

NikosD
22nd December 2015, 11:48
You ignored two basic categories of facts (speed, transcoding quality) which Intel is the undisputed king since 2011 till now and you made a post about this year's and future adoption by Nvidia of new codecs, followed by Intel after a few months.

Facts mean history and sustainability, things that have already been done and last for good, not future assumptions that last for a few months.

huhn
22nd December 2015, 13:06
are the fan boys done?

Neat they fixed it, and my implementation apparently works out of the box, always nice to know :) time to benchmark myself later


DXVA checker isn't seeing VP9 from lavfilter. i would have made a small test if this would be the case.

but your implementation looks flawless so far.

nevcairiel
22nd December 2015, 13:17
I have no idea how DXVA Checker collects this information of which formats are supported by a given codec, the author often had to fix that part in the past.
Speaking of DXVA Checker, I wish he would make it possible to test secondary GPUs. Right now its always tied to the primary GPU, which is my Titan X, not my 960. Unless I'm blind and never found a GPU selector. :)

My desktop icons always get jumbled up when I switch the primary display for benchmarking the 960. :D

To augment some earlier numbers, GPU-Z actually shows Video Engine Load, and barely any GPU load (and very little CPU load as well), so it appears to be a proper HW decoder indeed!

NikosD
22nd December 2015, 13:23
Not a bad idea.

I asked the developer if it's feasible.

huhn
22nd December 2015, 13:24
I have no idea how DXVA Checker collects this information of which formats are supported by a given codec, the author often had to fix that part in the past.
Speaking of DXVA Checker, I wish he would make it possible to test secondary GPUs. Right now its always tied to the primary GPU, which is my Titan X, not my 960. Unless I'm blind and never found a GPU selector. :)

My desktop icons always get jumbled up when I switch the primary display for benchmarking the 960. :D

would only work for decoding not playback benchmark.

but yeah would be nice.

nevcairiel
22nd December 2015, 16:33
would only work for decoding not playback benchmark.


Why not, it could just open the window on the second screen instead of the primary one.

huhn
22nd December 2015, 16:40
yes if it is connected.

even through UHD at native resolution could still make problems on a 1080p screen.

so generally not working is wrong but iGPU are offend not connected.

nevcairiel
22nd December 2015, 18:07
so generally not working is wrong but iGPU are offend not connected.

DXVA2 requires a connected display, since its based on D3D9, which doesn't work on fully headless adapters.

NikosD
22nd December 2015, 18:25
But D3D11 supported on Win 8 and above doesn't have this restriction.

I don't know how difficult could be for LAV Video to support both D3D9/D3D11

nevcairiel
22nd December 2015, 18:32
Its something I might do at some point, but no priority right now. Its certainly a lot of effort. Not decided yet if worth it.

P.J
22nd December 2015, 21:08
would only work for decoding not playback benchmark.

but yeah would be nice.

How? =T

huhn
23rd December 2015, 09:27
the microsoft decoder should support it. you can read the rest.

NikosD
26th December 2015, 14:37
I' ve just tried the new DXVA Checker version - not publicly available yet - with a GPU selector.

It works OK on my SandyBridge system with Radeon 6750 as primary and iGPU as secondary under Win 10 Nov update.

Although I have both GPUs connected on my monitor at the same time, playback mode doesn't work for secondary iGPU with any decoder.

Using LAV Video and MS DS H.264 decoder, it falls back to software in DXVA native decode mode.
But DXVA copy-back works OK for LAV.

Unfortunately, QuickSync decoder is not available for SandyBridge on Win 10.

MS MFT H.264 decoder works fine in DXVA native decode mode, probably because it's a D3D9/D3D11 decoder.

XMonarchY
27th December 2015, 00:29
So Skylake is better at decoding HEVC than my GTX 980?

NikosD
27th December 2015, 13:02
It seems that I managed to got some more interesting results.

First of all, with my two cards both connected to the display, if I select "Extend these displays" I can select any GPU and work it like primary, main GPU.

Everything works fine, including connection to EVR and Playback mode.
The results in benchmarking are the same like only one display is connected.

Now, if I choose as primary the Radeon with "Show Desktop only to 1" and select the iGPU from DXVA Checker, then the driver of SandyBridge doesn't provide D3D11 components in Processor Device List and the Decoder Device list is empty.

Also, DXVA copy-back of LAV is not actually using the iGPU but Radeon even with the iGPU selected.

The DXVA native performance of MS MFT H.264 is about 50% in D3D11 mode (as secondary iGPU) compared to directly connected iGPU card as primary.

Using the opposite order, iGPU as primary and Radeon 6750 as secondary, the LAV DXVA copy-back still uses primary GPU even if the secondary is selected by DXVA Checker.

This time the Device Decoder list and the Processor Device List are not empty for secondary Radeon, because the driver provides D3D11 components.

The DXVA native performance of MS MFT H.264 is the same in D3D11 mode (as secondary Radeon) compared to directly connected Radeon card as primary, but the CPU usage went from 1% to 25%.

nevcairiel
27th December 2015, 13:06
Also, DXVA copy-back of LAV is not actually using the iGPU but Radeon even with the iGPU selected.

Copy-Back always uses your primary GPU, only Native switches based on which screen is active.
Thats because Copy-Back is internal to LAV Video, any external component doesn't actually know that its using hwaccel (unless it specifically asks LAV what its doing).

huhn
27th December 2015, 14:50
So Skylake is better at decoding HEVC than my GTX 980?

for high quality HEVC you kind of need an fixed function decoder.

all future video cards like pascal, Arctic Islands and intel cannonlake should have a more than powerful enough fixed function decoder for HEVC and VP9.

current hybrid decoder are just nice to have so yeah the 980 is pretty bad in HEVC decoding.

edigee
27th December 2015, 21:27
Sorry for a little offtopic!
A friend of mine asked me to built for him a HTPC. He's interested in HEVC decoding ,he has a lot of stuff from internet. So ,here's the options: a Skylake i5 platform or a GTX 950/960 plus older harware(CPU ,mobo). He's not interested in gaming at all. Don't know if Skylake has HDMI 2.0 support ,though. Skylake plus discrete video card is above the budget.

Yups
28th December 2015, 20:58
The new LAV nightly build 0.67.23 from here http://files.1f0.de/lavf/nightly/ has added VP9 DXVA2 acceleration.

It would be interesting to test it on your Skylake HD 530 and make a comparison with VP9 CPU Skylake decoding using this clip:
https://www.sendspace.com/file/pr4m1c

LAV 0.67.0.31 DXVA2
i7-6700k, HD 530 20.19.15.4352
Windows 10

Decode
94-112-183 35% CPU


Playback
71-79-108 21% CPU


LAV hardware decoder disabled:

Decode
121-183-330 62% CPU

Playback
75-85-90 27% CPU


For some reason the playback benchmark without LAV hardware decoder is using my HD 530 by about 80% and it runs a bit faster.


edit: Same for HEVC 10 bit videos. Playback runs quite a bit faster. Any idea why this is?

NikosD
28th December 2015, 21:23
Can you disable NV12 from LAV properties and try again ?

Yups
28th December 2015, 21:44
LAV hardware decoder disabled:

Decode
121-183-330 62% CPU

Playback
75-85-90 27% CPU



Playback
88-102-107 (skin tone improvement disabled, it was enabled in the driver)

It says "unsupported" when I disable hardware decoder in LAV by the way.

http://fs5.directupload.net/images/151228/evyi5mhh.png

Yups
28th December 2015, 21:49
Can you disable NV12 from LAV properties and try again ?

Playback
47-62-79 62%

Even though HD530 is used according to GPUz, it runs much worse.

NikosD
28th December 2015, 21:50
Doesn't it always say "unsupported" when CPU Decoding is used, if I remember correctly ?

What are the figures with DXVA VP9 enabled, now that you disabled the VPP setting ?

Normally Benchmark Decode mode should have the same performance, but I would test that too using DXVA and CPU decode mode.

Yups
28th December 2015, 22:20
What are the figures with DXVA VP9 enabled, now that you disabled the VPP setting ?



Actually there were more video improvements enabled under advanced. I did a Windows 10 reinstall recently, I forgot all this.


VP9 hardware decoding Playback
70-79-108 21% CPU


No Hardware decoding playback
116-158-219 58% CPU

GPU load decreased from ~80% to 10-15% without hardware decode.

NikosD
28th December 2015, 22:28
Sorry, but I'm little confused by your figures.

Can you repeat the numbers like your first post ?

With all VPP off

DXVA VP9
Decode mode (CPU/GPU usage)
Playback mode 720p (CPU/GPU usage)

Software Decoding
Decode mode (CPU/GPU usage)
Playback mode 720p (CPU/GPU usage)

Yups
29th December 2015, 12:45
VPP all off with Big Buck Bunny-70s


LAV 0.67.0.31 x64 DXVA2
i7-6700k @4,0 Ghz 1.15V
HD 530 1.15Ghz 20.19.15.4352
Windows 10 x64

DXVA2
Decode
95-113-180 /37% CPU/100% GPU

Playback
71-79-109 /22% CPU/100% GPU


LAV hardware decoder disabled:
Decode
130-184-332 /62% CPU/0% GPU

Playback
118-159-214 /58% CPU/10% GPU


Obviously CPU only is much faster in my case with the fastest desktop Skylake. On a mobile ULV with half the cores and clock frequency it should be a turnaround. I did the same test with 2 cores+HT, 2.0 Ghz and HD530 lowered to 1.0 Ghz which is closer to a 15W mobile SKU. Results in my next post.

Yups
29th December 2015, 12:52
LAV 0.67.0.31 x64 DXVA2
i7-6700k @2.0 Ghz 2 cores+HT 1.15V
HD 530 1.0 Ghz 20.19.15.4352
Windows 10 x64

DXVA2
Decode
79-97-146 /74% CPU/85% GPU

Playback
61-71-100 /51% CPU/100% GPU


LAV hardware decoder disabled:
Decode
37-65-235 /77% CPU/0% GPU

Playback
37-62-151 /75% CPU/5% GPU


Hardware decoding is quite a bit faster expecially in the most complex scenes. CPU playback falls below 60 fps for several times even if it is for a second only.

NikosD
29th December 2015, 13:19
Perfect posts, thank you!

Now, I'm waiting some benches by Nvidias like 950/960 or other cards with DXVA VP9 support on the same clip.

No further CPU tests are needed when Skylake's results have already posted.

Aleksoid1978
29th December 2015, 13:35
Nvidia GTX 960.
decode:

Decoder: LAV Video Decoder
[1]
Decoder Device: VP9_VLD_Profile0
Frames: 4256
Time: 26,727 sec
FPS: 159,242 [124-179] fps
CPU Usage: 3 [1-5] %
GPU Usage: -
[2]
Decoder Device: VP9_VLD_Profile0
Frames: 4256
Time: 25,787 sec
FPS: 165,041 [150-188] fps
CPU Usage: 3 [1-6] %
GPU Usage: -
[3]
Decoder Device: VP9_VLD_Profile0
Frames: 4256
Time: 25,718 sec
FPS: 165,485 [149-187] fps
CPU Usage: 3 [0-5] %
GPU Usage: -


playback 720x:

Decoder: LAV Video Decoder
[1]
Decoder Device: VP9_VLD_Profile0
Processor Device: 6CB69578-7617-4637-91E5-1C02DB810285
Frames: 4256
Time: 26,715 sec
FPS: 159,308 [125-180] fps
CPU Usage: 2 [0-5] %
GPU Usage: -
[2]
Decoder Device: VP9_VLD_Profile0
Processor Device: 6CB69578-7617-4637-91E5-1C02DB810285
Frames: 4256
Time: 25,851 sec
FPS: 164,635 [147-189] fps
CPU Usage: 4 [2-7] %
GPU Usage: -
[3]
Decoder Device: VP9_VLD_Profile0
Processor Device: 6CB69578-7617-4637-91E5-1C02DB810285
Frames: 4256
Time: 25,833 sec
FPS: 164,749 [149-187] fps
CPU Usage: 3 [0-6] %
GPU Usage: -

NikosD
29th December 2015, 14:14
Thanks!

A GPU-Z report would help for GPU load in both Decoding and Playback mode.

Also, an easy readable form that we use here is the average of about 3 runs as (removing the results of the first run):

min/average/max fps

without all that extra info and specific results of each run.

nevcairiel
29th December 2015, 14:22
It's a full hardware decoder, barely any GPU usage, VPU usage instead.

I've been told the GPU uses the same hardware decoder as the Tegra devices, hence the VP9 support, it just was not exposed on PCs until now.

NikosD
29th December 2015, 14:27
OK, I assumed that in a previous post due to the extremely low CPU usage, but then it doesn't look as a fast fixed-function decoder.

I mean it should be a lot faster, but that mentioning to Tegra and the fact that probably we need more bitrate to "push" the HW decoder, maybe could explain the results.

I have to check VP9 encoders and come back with some real challenges for this HW decoder then.

nevcairiel
29th December 2015, 14:40
An average of 160 FPS 4K decoding isn't exactly slow, though. HEVC is in a similar performance category.

NikosD
29th December 2015, 14:46
We have to check it out with 100Mbps and more 4K VP9 to be sure that those two HW decoders are comparable (HEVC & VP9)

In real world situations, besides Chrome browsing YouTube, I don't know if there is any use of VP9 and especially with requirements like BluRay UHD for HEVC.

Perhaps VP9 decoder doesn't have to be that fast anyway, especially in high bitrate clips, because nobody will ever use those in real life.

huhn
29th December 2015, 14:52
and VP9 profile 0 is not really competitive with HEVC main10.

and profile1 can't be decoded with this card.

NikosD
29th December 2015, 17:21
OK these are my three VP9 4K clips for testing:

50Mbps
https://www.sendspace.com/file/2w3cib

100Mbps
https://www.sendspace.com/file/4l1w5l

250Mbps
https://www.sendspace.com/file/fvrvp7

huhn
29th December 2015, 18:24
with 250 mbit it is still running with up to 80 % video engine usage.

I have no proper test tool installed sorry.

NikosD
29th December 2015, 18:26
Thanks!

But DXVA Checker doesn't need installation.
I always download the without installer version (portable)

You just unzip it and run it.

huhn
29th December 2015, 19:58
i didn't got a notification for a new version. so they fixed the issue or was it limited to me that VP9 wasn't seeing any decoders?

i try it soon.

NikosD
29th December 2015, 20:12
I haven't checked that, but judging from the posts above, if you follow the "normal" way I think you will manage to benchmark it because three different systems (Braswell, Skylake and Nvidia 960) have already done it.

Note, that it's a different procedure to see what decoders are available for the VP9 format, than actually go to test a VP9 clip via the the well known method.

huhn
29th December 2015, 20:29
using a file to check doesn't work for me.

still the same issue for me. i don't have the will to dig deeper than reinstalling lavfilter and DXVA checker.

maybe an issue with the new insider build maybe not.

Aleksoid1978
30th December 2015, 07:10
Test GTX 960 on crowd_run_2160p50_VP9_250Mbps.mkv

Decode:
68-77-80 /3% CPU/94% VPU

NikosD
30th December 2015, 07:16
In Decode mode GPU should be 0% for fixed-function HW decoder.

Are you sure it's GPU and not VPU ?

Aleksoid1978
30th December 2015, 07:19
Yes - VPU.

NikosD
30th December 2015, 07:21
Ok...Then it should be 100% because you are testing it in benchmark mode :)

The clip is short and probably the monitoring tool doesn't have the time to reach the 100% value, but VPU is 100% used.

huhn
30th December 2015, 12:37
100% VPU is very unusually even for benchmarks. and there could be a lot of reasons for this.