View Full Version : Evaluation of HEVC decoders (SW, Hybrid and HW)
sneaker_ger
12th August 2015, 20:28
I didn't say you should use your eyes for comparison. Use something proper like a checksum over all pixels.
NikosD
12th August 2015, 20:42
DXVA2 should be proper full 10-bit decoding and unmolested output. Its possible that linux decoding APIs don't support full 10-bit output.
But if it makes all of you happy, I can verify that a bit later.
That would be the best, because we are not talking only about API support but HW support too.
And tricky drivers of course, if they are indeed tricky.
nevcairiel
12th August 2015, 21:53
I just did a quick check on two 10-bit clips, and after skipping the first couple frames which had corruption (because Software uses grey to fill corrupted areas and hardware uses black), DXVA2-CB on the GTX960 and Software decoding are identical.
So I think its safe to assume that DXVA2 on the GTX960 at least delivers proper unmolested 10-bit content.
Stereodude
13th August 2015, 03:29
Okay thanks for the confirmation.
P.J
13th August 2015, 10:58
I think the same or similar trick did AMD with 10bit HW decoding of H.264.
Can AMD play H.264 10bit? :confused:
nevcairiel
13th August 2015, 11:03
Can AMD play H.264 10bit? :confused:
No, but some people claimed they can by simply running it through the 8-bit decoder, which had crazy image artifacts in most clips.
Yups
15th August 2015, 12:09
Any demanding HEVC videos I could test on my new i7-6700k?
DXVA screenshot (driver 10.18.15.4256 Windows 10)
http://fs1.directupload.net/images/150815/kw48d4fu.png
JohnLai
15th August 2015, 12:20
Any demanding HEVC videos I could test on my new i7-6700k?
DXVA screenshot (driver 10.18.15.4256 Windows 10)
http://fs1.directupload.net/images/150815/kw48d4fu.png
How about testing this video?
I have been trying to play this HEVC/h.265 clip (se download link) but it does not play smoothly with my Intel Core i7-4790K iGPU HD4600 graphic on Dell 4k UP3214Q monitor, I get the best result with the MPC-HC player, but it stutters and CPU load is 80-90% can anyone download this clip and try it out?
http://demo-uhd3d.com/fiche.php?cat=uhd&id=42
NikosD
15th August 2015, 12:25
Any demanding HEVC videos I could test on my new i7-6700k?
A really quick buyer.
I would start with 8bit HEVC (a few 1080p and more 4K) in order to compare it directly with the other popular HW decoder of Nvidia 960.
Then I would try some 10bit clips too in order to test LAV DXVA native HW decoder with Intel HW (hybrid 10bit decoding) and EVR of Win 10.
Don't expect to decode 10bit 4K HEVC with Intel HD 530 though.
Let the benchmarks begin!
Who has the most powerful fixed-function HW 8bit HEVC decoder, Nvidia or Intel ?
Yups
15th August 2015, 12:50
How about testing this video?
Very low CPU load with DXVA2 native in MPC-HC. Here a snapshot
http://fs2.directupload.net/images/150815/kir4po6w.png
~2% CPU load. GPUz doesn't fully support Skylake graphics, temperature and GPU clock is wrong. No idea if GPU load is correct. GPU power might be correct because 20W in Furmark seems plausible.
Up to 60% CPU load with no hardware decoder in use. I can play these UHD videos only in 1920x1080 without 4k monitor by the way.
NikosD
15th August 2015, 13:13
Very low CPU load with DXVA2 native in MPC-HC.
Right below there is a link of a smaller in duration and file size sample in .mp4, more suitable for benchmarking.
Sample: (4K HEVC 8bit - 25Mbps - 30fps)
http://demo-uhd3d.com/fiche.php?cat=uhd&id=101
Use DXVA Checker in both modes "Decode Benchmark" and "Playback Benchmark" in 1280x720 window scaling with LAV filters 0.65.47 in DXVA native and show us the results. (select a repeat count of at least 3)
It would be interesting to see the SW decoding benchmarks of LAV x64 and maybe Lentoid or MS MFT too, in order to test the new Skylake architecture against previous architectures in SW decoding.
JohnLai
15th August 2015, 13:40
Very low CPU load with DXVA2 native in MPC-HC. Here a snapshot
http://fs2.directupload.net/images/150815/kir4po6w.png
~2% CPU load. GPUz doesn't fully support Skylake graphics, temperature and GPU clock is wrong. No idea if GPU load is correct. GPU power might be correct because 20W in Furmark seems plausible.
Up to 60% CPU load with no hardware decoder in use. I can play these UHD videos only in 1920x1080 without 4k monitor by the way.
Interesting.....cause even core i3-4330 HD4600 and GTX 970 hybrid DXVA cant play the video smoothly.
Yups
15th August 2015, 14:26
Right below there is a link of a smaller in duration and file size sample in .mp4, more suitable for benchmarking.
Sample: (4K HEVC 8bit - 25Mbps - 30fps)
http://demo-uhd3d.com/fiche.php?cat=uhd&id=101
Very low CPU load with this video, 1-3%. CPU clock stays low too.
NikosD
15th August 2015, 14:54
Without DXVA Checker's results, "very low CPU load" means nothing really useful.
Because a HW VLD decoder always off - loads CPU keeping CPU usage <5%
The main aspect is how fast is that HW decoder.
nevcairiel
15th August 2015, 15:32
Interesting.....cause even core i3-4330 HD4600 and GTX 970 hybrid DXVA cant play the video smoothly.
Its an 8-bit clip, and Skylake has a full fixed function 8-bit hardware decoder, if it couldn't at least decode in realtime for playback, that would've been silly. ;)
JohnLai
15th August 2015, 16:33
Its an 8-bit clip, and Skylake has a full fixed function 8-bit hardware decoder, if it couldn't at least decode in realtime for playback, that would've been silly. ;)
Speaking of fixed function hardware decoder......
Is it possible to use DXVA (Copy Back) on secondary gpu? Such as providing a selection of gpu for DXVA copy back?
The scenario, if I install GTX 950 (once it is released later) at my second PCIe x16 slot on my system with GTX970 as primary gpu, I would like to use GTX 950 for DXVA decoding instead of GTX 970. (with Intel IGPU enabled too)
Thus, there will be 3 different GPUs.
Apparently, selecting Intel Quicksync as hardware decoder works with gtx 970 as primary gpu.
Intel IGPU(Quicksync) + nvidia gpu(vp6) = it works.
nvidia gpu (VP6)(Primary gpu for display) + nvidia gpu (VP7)(Secondary GPU) = possible with dxva copy back?
nevcairiel
15th August 2015, 16:35
Its technically possible, but only if a screen is connected.
A future version of LAV may have a device selection
JohnLai
15th August 2015, 16:42
Its technically possible, but only if a screen is connected.
A future version of LAV may have a device selection
I thought from Windows 8 onwards, users no longer need to use the 'fake display' like the one described here http://www.helping-squad.com/fake-connect-a-monitor/ to make use of active gpu without any screen being connected?
Win8 has support for headless display mode as stated by microsoft. As long as compatible wdmm 1.2 drivers is used.
http://download.microsoft.com/download/6/E/5/6E5329B2-F1CC-4922-A74A-EC91267B996D/windows-display-driver-model-enhancements.docx
Page 28?
nevcairiel
15th August 2015, 16:53
That only works with DX10/11, not with DX9, which is used for DXVA2 usually.
JohnLai
15th August 2015, 16:56
That only works with DX10/11, not with DX9, which is used for DXVA2 usually.
Oh...okay....I understand.
:thanks:
NikosD
15th August 2015, 17:04
I thought from Windows 8 onwards, users no longer need to use the 'fake display' like the one described here http://www.helping-squad.com/fake-connect-a-monitor/ to make use of active gpu without any screen being connected?
Win8 has support for headless display mode as stated by microsoft. As long as compatible wdmm 1.2 drivers is used.
You need a D3D11 decoder which doesn't exist using DirectShow.
All existing DirectShow decoders are DXVA2.
QuickSync decoder by Eric Gur implemented in LAV filters and PotPlayer, does support D3D11 and headless decoding using Win 8 or better because it is based on Intel's MSDK which has added D3D11 support.
sheppaul
15th August 2015, 18:20
It is already possible to use iGPU's dxva copyback decoder(dx11) while using external GPU in potplayer. I've been using it for several weeks instead of quicksync. Intel frequently breaks quicksync decoder whenever they release a new driver. So I've switched quicksync to iGPU's dxva copyback decoder. It seems more stable. You can try it if it work in other external GPU except for main gpu.
nevcairiel
15th August 2015, 18:38
You need a D3D11 decoder which doesn't exist using DirectShow.
All existing DirectShow decoders are DXVA2.
Copy-Back could use D3D11 if it wanted to, because its entirely self-contained and doesn't have to interact with a renderer - and DXVA-Native doesn't allow a GPU choice anyway, because it needs to use the same GPU as the video is being rendered on.
However, D3D11 DXVA decoding is quite annoying to handle, and not sure the benefits would be worth all the effort and extra maintenance.
Yups
16th August 2015, 02:50
Without DXVA Checker's results, "very low CPU load" means nothing really useful.
I don't see "Decode Benchmark" and "Playback Benchmark" in DXVA checker.
NikosD
16th August 2015, 20:20
For those interested:
I discovered today an Intel MediaFoundation decoder (DXVA2/D3D11) x86/x64 for M-JPEG using the DXVA2 decoder device with the id "91CD2D6E-897B-4FA1-B0D7-51DC88010E0A" and a description as "Intel Hardware M-JPEG decoder MFT"
Using DXVA Checker of course, I managed to measure the performance against LAV x86/x64 (latest 0.65.47) and built-in MS MFT M-JPEG decoder x86/x64 using:
Win 10 x64 - Core i7 4790 - HD4600@1.5GHz - Drivers 4256
Both LAV and MS decoders are single-threaded and SW only.
Test file:
MJPEG clip - 3840 x 2160 (292Mbps@50fps)
Decode Benchmark mode
GPU usage is dead zero, so the Intel DXVA2 MFT decoder is a pure HW decoder (not Hybrid), because Haswell supports MJPEG decoding in HW.
Intel DXVA2 MFT x64/x86 397/400/397 CPU 10%
MS MFT x64 57/59/60 CPU 12%
MS MFT x86 49/52/54 CPU 12%
LAV x64 43/45/46 CPU 13%
LAV x86 42/44/45 CPU 13%
I found out also Intel's MFT HW VP8 and VP9 decoders using the id "49761BEC-4B63-4349-A5FF-87FFDF088466" which is now called "VP9and8_VLD_ClearVideo" by the new DXVA Checker v3.6.0, but they seem disabled for Haswell and I didn't manage to enable them.
If I do, I'll report back.
P.J
18th August 2015, 19:45
DXVA Checker 3.6.0 is out :)
Yups
18th August 2015, 20:29
Gen9 details have been released.
http://abload.de/img/1y0qct.png
http://abload.de/img/233p4j.png
http://abload.de/img/3fmpet.png
http://abload.de/img/4udo9j.png
http://abload.de/img/5a4q2x.png
https://hubb.blob.core.windows.net/e5888822-986f-45f5-b1d7-08f96e618a7b-published/fe98b14c-347b-49a7-8094-bfe43d16f67c/SPCS003%20-%20SF15_SPCS003_103f.pdf?sv=2014-02-14&sr=c&sig=f%2BgeA8kQj0rC8gJXIn%2Fl5IvDY25fycAN3rsvP4v%2BJmU%3D&se=2015-08-19T17%3A25%3A06Z&sp=rwd
NikosD
18th August 2015, 20:55
I've just read in Intel forums that Broadwell already fully supports VP8 in HW (decode and encode using Windows, for Linux only HW decoding is supported and GPU accelerated (hybrid) encoding)
Also Broadwell supports already VP9 GPU accelerated (hybrid) decoding.
Intel has never advertised Haswell as VP8 capable for HW decoding, BUT the driver installs the video accelerator which is disabled.
VP8 accelerator could be used in hybrid mode for Haswell, like HEVC, but Intel decided obviously that VP8 support belongs to Broadwell and above.
nevcairiel
18th August 2015, 21:23
Its a shame they didn't build an official DXVA2 specification for VP8/9 decoding, or released their proprietary way to do it (as it clearly goes through some DXVA2 device), oh well. Only being able to use MediaSDK and not implement it using existing DXVA2 decoders is sad.
NikosD
19th August 2015, 14:48
Only being able to use MediaSDK and not implement it using existing DXVA2 decoders is sad.
I have asked Intel about that and I'm waiting for a reply.
In the meantime, how can you be sure that they don't support HW acceleration directly using DXVA but only via MSDK ?
Also, do you have any interest in implementing MJPEG HW decoder now that I'm sure that it uses pure HW decoding for all iGPUs from Haswell and newer ?
NikosD
20th August 2015, 14:10
This is not a place to advertise cards.
It is different to comment on cards, to compare/ review cards than pure advertising of the OEM's pages.
The links should be deleted.
P.J
20th August 2015, 21:28
Waiting for GTX 950's 4K benchmark :)
http://www.computerbase.de/2015-08/nvidia-geforce-gtx-950-test/5/
NikosD
20th August 2015, 21:47
It's interesting that those R9 285 AMD cards with the new 4K H.264 decoders are real screamers.
After Anandtech that wrote first that they are faster even than Nvidia's VP6/VP7 (Maxwell 1/2), now it's the second site saying the same thing.
AMD was the last company that brought us 4K H.264, but they are the fastest too (for discrete cards - Intel's QuickSync is unbeatable in pure HW decoding but looses a lot in real playback using a renderer due to low GPU power - still even after that remains the top H.264 decoder even in real playback)
nevcairiel
20th August 2015, 22:04
In that particular benchmark, in pure decode, the NVIDIA cards are faster at H.264, the R9 380 probably just has a lot more processing power to actually be faster during playback (including rendering)
Oddly enough, in 1080p, the AMD cards are actually slower in the pure decode benchmark rather than the playback benchmark. I wonder if they fuzzed something up while testing... Maybe the AMD numbers are flipped, between decode and playback? That would make more sense.
NikosD
20th August 2015, 22:10
How do you know that ?
The figures of the results say different things.
If you have done tests on your own or read it somewhere else, please repost the results here.
GTX 980 should be faster than R9 380 but still looses in real playback according to the charts.
If you challenge figures publicy available, you must provide proofs.
nevcairiel
20th August 2015, 22:13
I just read their charts (the computerbase.de P.J linked), nothing else. Some key numbers:
Playback 1080p, R9 380: 419.2 fps
Playback 1080p, GTX960: 334 fps
Decode 1080p, R9 380: 290.4
Decode 1080p, GTX960: 443.0
That seems like odd numbers to me, and make me question the test. NVIDIA gets faster when doing pure decoding, which is expected, and the FPS number matches what I know from my own tests on a GTX 960.
But AMD gets slower? Thats just weird.
I don't need to provide proof to mention that the numbers are looking weird. Maybe its normal that they act like that because of something special about AMD, but maybe not.
Can't we discuss results without calling for proof or sources for every opinion? :P
madshi
20th August 2015, 22:22
I've read somewhere that the very latest AMD GPUs now have hard wired processing for certain DXVA algorithms like chroma upscaling, scaling, color conversion etc (same as Intel), while NVidia probably still uses shaders for that. That would explain why AMD might be faster than NVidia when doing playback, but slower than NVidia when just decoding. However, if it's the same clip those numbers are from then it doesn't make a lot of sense that playback is faster than decoding on R9 380 - unless decoding involves copyback or something...
NikosD
20th August 2015, 22:27
@nevcairiel
Yeah..I've just seen the next page with decode results.
It looks like they did something wrong in testing or displaying the results.
But I remember for sure that anandtech had reported R9 285 as faster than Nvidia.
You can discuss anything, I hadn't seen the next pages I read it via my mobile phone with a google translator of Chrome.
I don't speak German.
@madshi
Nice catch If they changed to copy-back while testing the others in native.
That would explain the crazy results.
NikosD
20th August 2015, 22:35
I've noticed that most of the people here in Doom9 don't have recent cards like R9 285 or Carrizo or some other interesting AMD cards regarding fixed-function HW or even if they do, they don't know or not interested in testing them in benchmark mode.
I'm afraid the same thing is happening with professional HW review sites - as I've written recently - so there is lack of information regarding AMD fixed-function HW.
I can't buy everything to test it!
Yups
22nd August 2015, 10:25
i7-6700k HD 530 1.15 Ghz
10.18.15.4274
Windows 10 x64
bbb-3840x2160-cfg02.mkv (Big Buck Bunny 4k 60 fps 8 bit HEVC)
http://www.libde265.org/downloads-videos/
Decode Benchmark (video size was greyed out)
http://fs1.directupload.net/images/150822/mxr26oam.png
Playback Benchmark 1280x720
http://fs1.directupload.net/images/150822/zqqjrbbg.png
Does a Nvidia GTX 970 support 4k HEVC in hardware? I could compare.
nevcairiel
22nd August 2015, 10:36
Does a Nvidia GTX 970 support 4k HEVC in hardware? I could compare.
No, for NVIDIA its only GTX 960 and the newly released 950. All others do hybrid.
Yups
22nd August 2015, 10:43
i7-6700k HD 530 1.15 Ghz
10.18.15.4274
Windows 10 x64
LG_4K_View-the-Feeling.mp4 (4k 30 fps 8 bit HEVC)
http://demo-uhd3d.com/fiche.php?cat=uhd&id=101
Decode Benchmark (video size was greyed out)
http://fs2.directupload.net/images/150822/rrsi6imi.png
Playback Benchmark 1280x720
http://fs2.directupload.net/images/150822/trx6glxo.png
NikosD
22nd August 2015, 10:53
Looks like a winner.
P.J, JohnLai, Nevcairiel or someome else could add his Nvidia 960 result on the same clips.
I think Skylake is faster.
Looking at some previous results of Nvidia 960, I wouldn't call Skylake just faster.
I think it is almost 50% faster than 960, which has a 4K@120 FPS decoder for 10bit clips and Skylake looks like 4K@180 FPS decoder for 8bit clips.
nevcairiel
22nd August 2015, 11:13
I don't have the 960 setup for benchmarking right now, but Yups could benchmark some of the clips I used back in January:
http://forum.doom9.org/showthread.php?p=1706902#post1706902
Specifically the high bandwidth Samsung clip would be interesting (SamsungNX1.Leaves.2160p@30fps-80Mbps - direct link (http://www.imaging-resource.com/PRODS/samsung-nx1/FULLRES/yvid_SAM_0235-UHD_Sample1.MP4))
P.J
22nd August 2015, 11:17
GTX 960, Windows 10 x64
LG_4K_View-the-Feeling.mp4 (4k 30 fps 8 bit HEVC)
http://demo-uhd3d.com/fiche.php?cat=uhd&id=101
Decode Benchmark (video size was greyed out)
http://i.imgur.com/iTxohMY.png
Playback Benchmark 1280x720
http://i.imgur.com/kXbSUzQ.png
NikosD
22nd August 2015, 11:20
I will upload in a few minutes ( I have only 1Mbps upload) three HEVC 4K 8bit clips at 100Mbps, 200Mbps and 300Mbps (it's actually the same clip encoded with the same parameters besides bitrate) from some encoding tests I have done on February 2015.
nussman
22nd August 2015, 11:27
Nvidia results doesnt make much sense to me. Decoding and Playback FPS are almost the same? How can this be possible?
In german we say "wer misst misst Mist". ;)
What about 10bit clips on Intel Skylake with Hybrid Decoder? Has anyone made some tests yet?
NikosD
22nd August 2015, 11:27
@Yups and anyone else who is kind enough to post their results.
No need to post the pictures because they are huge! :)
Just write the results after 5 attempts removing the first one calculate the average of the four others (approximately)
It seems like a tie in Playback mode and Skylake is around 25% faster in pure Decode mode (the real processing fixed-function power is here - without GPU processing involvement)
Nvidia results doesnt make much sense to me. Decoding and Playback FPS are almost the same? How can this be possible?
In german we say "wer misst misst Mist". ;)
It is possible because it has a lot of GPU processing power and the EVR renderer is a piece of cake for 960.
nevcairiel
22nd August 2015, 11:29
Nvidia results doesnt make much sense to me. Decoding and Playback FPS are almost the same? How can this be possible?
Thats pretty normal if the GPU has enough power. It would only go down if the GPU isn't fast enough to process the full decoding speed for display (ie. scaling)
NikosD
22nd August 2015, 11:32
The first huge bitrate clip is here:
4K@50fps - 100Mbps (118MB to download)
https://www.sendspace.com/file/fvgk57
Second clip:
4K@50fps - 200Mbps (238MB to download)
https://www.sendspace.com/file/usyase
Third clip: (filedropper.com "kills" links in a couple of days, so you have to download it ASAP, if you 're interested)
4K@50fps - 300Mbps (360MB to download)
http://www.filedropper.com/crowdrun2160p50300mbps
or
https://mega.nz/#!RVNy0BhB!DpsJlf5n_TJV1lptFGH4mAZblTA9-vT0P12VikS3xko
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.