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

nevcairiel
3rd December 2015, 09:53
HDR or BT.2020 doesn't make decoding a sample more complex, its just a different way to interpret the image data afterwards.

NikosD
3rd December 2015, 10:34
Thanks. That short clip of the runners, under the same config I described previously that 127 Mbps bitrate makes no difference in the telemetry as my 60 FPS L52 MAIN 10 sample. Meaning, the same video engine utilisation, the same GPU core utilisation, the same gpu memory usage. Also the EVR-CP jitter and paint time stats are around the same too. So basically that setup gobbles up the video of the runners race no sweat.


Maybe the same clip at 300Mbps could give a hard time for GTX 960:
http://www.filedropper.com/crowdrun2160p50main10300mbps

foxyshadis
3rd December 2015, 11:00
300Mbps is way beyond UHD bluray specs though. There the maximum is 128Mbps, and that applies to every 1-second window (I haven't analyzed the 127Mbps test to see if it complies yet).

huhn
3rd December 2015, 11:02
still "working". first keyframe is broken and even my CPU can do about 18-40 FPS does this even use cabac?

decode speed is down to 75 - 84 - 88

everything over 150 mbit is kind of unrealistic.

edit: it's about 14 FPS with the CPU so everything is normal just a wrong number in EVR.

nevcairiel
3rd December 2015, 11:16
does this even use cabac?

HEVC doesn't have an alternative coding mode like H.264 did.

huhn
3rd December 2015, 11:21
i see.

it just looked like an easy to decode stream on the first look. (for 300 mbit)

NikosD
4th December 2015, 08:07
decode speed is down to 75 - 84 - 88

everything over 150 mbit is kind of unrealistic.



Pushing a little more the envelope, I uploaded the same clip at 500Mbps.
Just to find out the bandwidth limit of 10bit HEVC decoder of GTX 960.

http://www.filedropper.com/crowdrun2160p50main10500mbps

I have encoded up to 1000Mbps the same clip in 100Mbps step, back on February with x265 encoder, but I don't think that 500Mbps are feasible by 960.

huhn
4th December 2015, 08:10
it's dropping the first keyframe already so it can't really handle the 300 mbit correctly.

NikosD
4th December 2015, 08:12
Besides the first keyframe, your minimum fps is 75, so it can handle the rest of the clip.

huhn
4th December 2015, 08:17
55 - 67 - 73

you get just an corrupted image until the next keyframe.

with madVR and "delay playback until all queues are full" playback is smooth.

NikosD
4th December 2015, 08:42
55 - 67 - 73

you get just an corrupted image until the next keyframe.

with madVR and "delay playback until all queues are full" playback is smooth.

600Mbps:
http://www.filedropper.com/crowdrun2160p50main10600mbps

huhn
4th December 2015, 09:58
54 -61 -67

Nullack
4th December 2015, 10:09
Maybe the same clip at 300Mbps could give a hard time for GTX 960:
http://www.filedropper.com/crowdrun2160p50main10300mbps

Mate that 300 Mbps clip using native LAV and my usual setup EVR-CP, there is visible distortion in colour and the trees/cloud to the left are artifacing too. In at about 5 seconds of playback it pickups up a bit with the right colours but its not smooth. The 127 Mbps runners are OK, the 300 pushes it over. MPC-HC nightly doesnt crash but the playback is not correct.

huhn
4th December 2015, 10:10
like i said a keyaframe is dropped.

NikosD
4th December 2015, 10:49
Last chance to saturate the 10bit HEVC decoder - 1023Mbps
http://www.filedropper.com/crowdrun2160p50main101000mbps

Nullack
4th December 2015, 11:01
like i said a keyaframe is dropped.

Yes but that wouldnt explain the stuttering would it, I believe a gtx 960 was designed to do the UHD BD spec max bitrate ok, and at 300 Mbps its overloaded

huhn
4th December 2015, 12:12
no my 960 isn't stuttering what so ever.

huhn
4th December 2015, 12:36
Last chance to saturate the 10bit HEVC decoder - 1023Mbps
http://www.filedropper.com/crowdrun2160p50main101000mbps

41 - 43 - 47

that's too much.

v0lt
4th December 2015, 16:26
Last chance to saturate the 10bit HEVC decoder - 1023Mbps
Artifacts and freezes on the GTX 950.

Xebika
6th December 2015, 22:21
DXVA Checker v3.11.0 is released.

Changelog:
Version 3.11.0 (2015/12/06)
Added support to enable/disable DXVA2 for Microsoft H265 Video Decoder MFT
Minor fix

Download:
http://bluesky23.yukishigure.com/en/DXVAChecker.html

DSF/MFT Viewer v1.4.2 is released.

Changelog:
Version 1.4.2 (12/06/2015)
Minor fix

Download:
http://bluesky23.yukishigure.com/en/DsfMftViewer.html

P.J
7th December 2015, 13:19
Thanks, just noticed that Microsoft H265 Video Decoder MFT can't use GPU in D3D11 mode and it's very very slow in CPU mode!

Edit: LAV doesn't use P010 in CPU mode/DXVA2 copy-back =/

nevcairiel
7th December 2015, 13:54
Edit: LAV doesn't use P010 in CPU mode/DXVA2 copy-back =/

Actually, it does, but EVR does not accept P010 in those modes. When you use benchmarking mode without a renderer, its used.

NikosD
8th December 2015, 06:55
For those who didn't understand it from one of my previous posts, Microsoft has added (at last) DXVA2 HEVC decoder in Win 10 November Update (build 10586)

Up to now, only D3D11 HEVC acceleration was available from Microsoft.

MS MFT DXVA2 HEVC decoder works for Intel and it is a little faster than LAV DXVA2 HEVC using my iGPU and sometimes a lot faster.

NikosD
9th December 2015, 07:30
Looks like there is VP9 support on HD 530 (20.19.15.4300).


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

rbej
9th December 2015, 10:55
I've just pushed VP9 DXVA2 support to LAV, which will be available in the next nightly build tomorrow.
Note that there is some caveats to know about:

- Its limited to 4:2:0 8-bit (Profile 0), like most DXVA2 accelerators
- Its been tested on Intel Braswell only. Skylake will probably also work. Older Intel systems may not.
- While NVIDIA pretends to support VP9 DXVA2 on the GTX960, it does not actually work (black screen). I'm somewhat confident that its a driver problem, since it fails in rather specific ways that it otherwise shouldn't.
- When using DXVA2-Native and playing an unsupported file (4:2:2/4:4.4 or > 8-bits), you may get a black screen, since fallback to software may not catch the unsupported format early enough (Copy-Back does not have this issue, since it can fallback to software at any time)

Due to the limited amount of hardware that can actually make use of this, testing was also limited, so keep that in mind.
Its also disabled by default, due to all this.

Braswell VP9 decoding benchmark.

http://i.imgur.com/hNLszAW.png

VP9 4k 25fps file

http://www.artbyphil.com/temp/phfx_4KHD_VP9TestFootage.zip

HEVC 4k Braswell decoding benchmark

http://i.imgur.com/awoQMSy.png

NikosD
9th December 2015, 11:08
Can you test this file with CPU and GPU decoding of your Braswell ?
Which Braswell is exactly ?

https://www.sendspace.com/file/pr4m1c

Also, generally run every benchmark at least 3 times, not just a single one.

Thanks!

Aleksoid1978
9th December 2015, 11:40
Intel(and Nvidia - but can't test right now) have Hybrid decoder VP9 DXVA2 - that's why so slow and High CPU usage.

NikosD
9th December 2015, 11:44
Skylake with HD 530 should be a lot faster though, even with a hybrid VP9 decoder.

nevcairiel
9th December 2015, 14:46
On my NUC5PPYH (ie. Pentium N3700)

Decode Benchmark: 25/31/50, at 40% CPU usage

The clip would maybe just barely run, but probably not quite fluid.

NikosD
9th December 2015, 15:44
But is it faster than pure CPU Pentium N3700 decoding ?

nevcairiel
9th December 2015, 16:45
But is it faster than pure CPU Pentium N3700 decoding ?

CPU decoding benchmark (32-bit):
19/31/81 - 84% CPU

64-bit results were almost identical.

The VP9 software decoder in FFmpeg is already optimized quite well, so it fares OK even on this CPU.
Right now, it doesn't seem like the hybrid decoders offer a big advantage - at least compared to FFmpeg software decoding.

Maybe Skylake will show some more interesting results.

NikosD
9th December 2015, 17:13
You are right about Braswell, but still you have almost the same speed decoding by dropping CPU usage from 84% to 40%.

That's a gain too.

NikosD
10th December 2015, 09:37
I had ruled out upgrading to the AMD Fury/Fury X due to the lack of HDMI 2.0 (18Gb/s) and HDCP 2.2 support, but this looks like it's going to be solved by the upcoming Club3D displayport 1.2 to HDMI 2.0 active adapter (http://club-3d.com/index.php/products/reader.en/product/displayport-12-to-hdmi-20-uhd-active-adapter.html). I could wait for Arctic Islands, but waiting until at least Q2 2016 isn't a great prospect.


Good news for AMD fans.
According to the official statements of AMD, the upcoming GPUs on 2016 will support all the latest and greatest protocols for HTPC, like HDMI 2.0a (HDMI 2.0 + HDR), DisplayPort 1.3 and HDCP 2.2 for HDR movies.

Also they will add FreeSync support over HDMI.

For more details you can read here:
http://anandtech.com/show/9836/amd-unveils-2016-vistech-roadmap

The only thing left for clarification is the HW accelerated support of HEVC 10bit and VP9 (8bit/10bit)

Manni
10th December 2015, 09:45
Good news for AMD fans.
According to the official statements of AMD, the upcoming GPUs on 2016 will support all the latest and greatest protocols for HTPC, like HDMI 2.0a (HDMI 2.0 + HDR), DisplayPort 1.3 and HDCP 2.2 for HDR movies.

Also they will add FreeSync support over HDMI.

For more details you can read here:
http://anandtech.com/show/9836/amd-unveils-2016-vistech-roadmap

The only thing left for clarification is the HW accelerated support of HEVC 10bit and VP9 (8bit/10bit)

Good news indeed. Note that Club3D is coming up with an active DisplayPort 1.2 to HDMI 2.0 (full 18Gb/s bandwidth) with HDCP 2.2 in a few weeks which brings most of this to the current gen with the Crimson drivers. The only thing missing is HDR support (and of course DisplayPort 1.3), which should only come with Arctic Island.

http://club-3d.com/index.php/products/reader.en/product/displayport-12-to-hdmi-20-uhd-active-adapter.html

I'm getting a Club3D adapter for my HD7870 and I'm waiting for Arctic Islands to upgrade the GPU.

As you know, I tested a Fury last night and the lack of hybrid acceleration for Main10 is a dealbreaker for me. It only helps with x264 upscaling (I don't really need it, I'm happy with 1080p for bluray) and x265 8bits (little real content is ever going to be 8bits, as both UHD Bluray and UHDTV need 10bits).

As AMD is supporting the Club3D adapter with Crimson, there is a tiny chance that they'll add the HDMI 2.0a profile as the hardware (both on the adapter and the GPU) can do it, but it's very unlikely to happen.

nevcairiel
10th December 2015, 09:47
Honestly it would've been a shame if the next gen GPU didn't offer these things. Same with HEVC 10-bit, if Arctic Island doesn't offer that for some reason, it would be sad.
VP9 might or might not happen. Considering DXVA2 only specifies hardware acceleration for 8-bit, its probably unlikely to see 10-bit support though, but maybe someone surprises us.

NikosD
10th December 2015, 10:00
@Manni

PowerDVD offers hybrid acceleration of HEVC 10bit via OpenCL as nevcairiel said, for Fury.

I remember testing 8bit HEVC OpenCL hybrid decoding on my Haswell and it worked fine.

Maybe I have to search for latest version of Cyberlink's HEVC decoder to test 10bit HEVC hybrid on Haswell too.

@nevcairiel

I think it's easy for MS to add 10bit VP9 profile into DXVA2, now that has already done the first crucial step of supporting VP9 8bit.

Manni
10th December 2015, 10:04
Honestly it would've been a shame if the next gen GPU didn't offer these things. Same with HEVC 10-bit, if Arctic Island doesn't offer that for some reason, it would be sad.
VP9 might or might not happen. Considering DXVA2 only specifies hardware acceleration for 8-bit, its probably unlikely to see 10-bit support though, but maybe someone surprises us.

Agree 100%. The lack of HDMI 2.0 18Gb/s is the reason why I didn't upgrade to the Fury earlier (only the Club3D adapter made me consider it again) and the lack of GPU power is what stopped me to upgrade to the 960, as it's at best a side step power-wise compared to my 7870.

I can't believe that there is still no decently powerful GPU offering HDMI 2.0a with HEVC Main10 acceleration (at least hybrid) and more power than a 3 year old GPU.

I don't really care about VP9, but if they don't provide HEVC Main10 acceleration, it looks like I'm going to keep my HD7870 for a while :)

Manni
10th December 2015, 10:06
@Manni
PowerDVD offers hybrid acceleration of HEVC 10bit via OpenCL as nevcairiel said, for Fury.

I remember testing 8bit HEVC OpenCL hybrid decoding on my Haswell and it worked fine.

Maybe I have to search for latest version of Cyberlink's HEVC decoder to test 10bit HEVC hybrid on Haswell too.


Thanks, I missed Nevcairiel's post on HEVC Main10 via OpenCL for PDVD.

That explains the difference and tallies with my testing :)

nevcairiel
10th December 2015, 10:09
@nevcairiel

I think it's easy for MS to add 10bit VP9 profile into DXVA2, now that has already done the first crucial step of supporting VP9 8bit.

It would be the first time ever that they extended a codec beyond its "first" profile, and after releasing the spec at that. Which is why I think its unlikely - but like I said, maybe they'll surprise us!
It would probably require someone other than YouTube starting to pick up VP9 first, so it gets more wide-spread usage.

NikosD
10th December 2015, 10:15
Didn't MS do the same thing with HEVC ?

I thought that they implemented 8bit first and later did the Main10.

nevcairiel
10th December 2015, 10:26
Didn't MS do the same thing with HEVC ?

I thought that they implemented 8bit first and later did the Main10.

No, the HEVC DXVA2 spec contained both 8 and 10 right from the start.
HEVC was smart, their first version of the spec contained both 8 and 10 bit, so anyone claiming to support HEVC Version 1 needs to support both. :D

P.J
10th December 2015, 21:49
PowerDVD's 10-bit HEVC decoder is quite slower than LAV, both in CPU mode.


For those who didn't understand it from one of my previous posts, Microsoft has added (at last) DXVA2 HEVC decoder in Win 10 November Update (build 10586)

Up to now, only D3D11 HEVC acceleration was available from Microsoft.

MS MFT DXVA2 HEVC decoder works for Intel and it is a little faster than LAV DXVA2 HEVC using my iGPU and sometimes a lot faster.

Then why can't GTX960 use Microsoft H265 Video Decoder MFT in D3D11 mode in DXVA Checker?

NikosD
11th December 2015, 09:27
Then why can't GTX960 use Microsoft H265 Video Decoder MFT in D3D11 mode in DXVA Checker?

Are you asking for this reply ?

http://forum.doom9.org/showthread.php?p=1732881#post1732881

P.J
11th December 2015, 20:21
Are you asking for this reply ?

http://forum.doom9.org/showthread.php?p=1732881#post1732881

Ah right, thanks.

It's impossible to connect to EVR with a DXVA11 decoder, like the MS MFT HEVC decoder, so the DXVA Checker could never become red and could never use that decoder to HW accelerate HEVC content because it uses EVR renderer.

So, DXVA Checker will always fall back to SW using MS MFT HEVC decoder in "Playback mode" or "Playback Benchmark" mode as it uses EVR.


Edit: No way to add Microsoft H265 Video Decoder DXVA2 to MPC-HC? :confused:

NikosD
11th December 2015, 22:39
MS decoder is a MediaFoundation decoder, so it's not compatible directly with MPC-HC, but LAV has already done that with MS WMV decoder.

IIRC, nevcairiel has said that if MS MFT H.265 decoder is faster than LAV, he could probably add it to LAV with a DS wrapper on top of MFT decoder.

wanezhiling
15th December 2015, 14:51
I would call that a miracle, but as you know miracles have stopped happening the last few thousand years.

Latest Intel driver v4300 for Haswell Win 10 and better have "fixed" the performance drop of NV12 (!)

Now, using DXVA Checker and MPC-HC, I see no performance difference between NV12 and YV12 (!!)

Actions needed:
@Nintendo Maniac 64
@Wanezhiling
@leonccyiu

Can you test my findings ?
Tried 10.18.14.4332 (http://forum.doom9.org/showpost.php?p=1749903&postcount=2660) with my HD4600 (Win 8.1) and I can confirm that the performance drop of NV12 was really fixed, indeed.:)

NikosD
15th December 2015, 15:13
Can you compare the quality with YV12 ?

It looks like exactly the same to me, that's why they (NV12 & YV12) have the same speed.
Because the have the same quality.

Try playback with scaling, e.g a 4K clip to a 720p window.

The old NV12 was a lot slower but with obviously better quality too.

wanezhiling
15th December 2015, 15:39
Yes, I can see the difference, not very visible here though.
I suspect old NV12 was still using some 'hidden' driver features (even you disable all video releted settings in driver control panel) while YV12/new NV12 are not.

NikosD
15th December 2015, 15:43
Right.

I always disable everything in the control panel, but the old NV12 was better than the new one in the same configuration (with everything disabled).

For me in scaling it's obvious.

Aleksoid1978
22nd December 2015, 09:16
Result VP9 DXVA on GTX 960(latest drivers):

Decoder: LAV Video Decoder
[1]
Decoder Device: VP9_VLD_Profile0
Frames: 2880
Time: 23,532 sec
FPS: 122,388 [79-141] fps
CPU Usage: 2 [0-3] %
GPU Usage: -
[2]
Decoder Device: VP9_VLD_Profile0
Frames: 2880
Time: 22,480 sec
FPS: 128,114 [106-141] fps
CPU Usage: 2 [0-3] %
GPU Usage: -
[3]
Decoder Device: VP9_VLD_Profile0
Frames: 2880
Time: 22,530 sec
FPS: 127,828 [106-143] fps
CPU Usage: 2 [0-3] %
GPU Usage: -


using phfx_4KHD_VP9TestFootage.webm file.