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

huhn
14th October 2014, 10:18
Now, about HEVC specifically I have to say that all those samples from ASTRA and HOTBIRD are real world samples of Satellite broadcast video.

What is more real file than that ?

I don't see a test channel 99.9% of all TV can't display as a real world problem at least not now.
after UHD BD specs and a way to watch these disc on a PC I see this as a real world problem.

cyberbeing
14th October 2014, 10:31
Look at the results to see what exactly I was saying about Null/ EVR/ EVR-CP renderers
...
Benchmarks:
LAV x64 CPU DXVA Decoding (Null) 47/62/66 CPU Usage 98%

LAV x64 CPU DXVA Processing (EVR) 33/49/52 CPU Usage 95%
...
Playback:
In realworld playback using MPC-HC x64 v1.7.7 and EVR-CP the clip has a jitter of ~9-10ms and it can't go more than 44fps-45fps and a few dropped frames.

You're EVR-CP perf is usually low, which suggests either a GPU problem or a MPC-HC settings problem. Try 'Right-click->Renderer Settings->Reset->Reset to Default Renderer Settings' and see if things improve.

No issue like that here on my 3570K @4.4Ghz.

LAV x64 CPU DXVA Decoding (Null) 57/68/72 CPU Usage 98%

LAV x64 CPU DXVA Processing (EVR) 57/67/72 CPU Usage 97%

Solid 50.000fps & 0ms jitter with EVR-CP Playback in MPC-HC x64 v1.7.7

NikosD
14th October 2014, 10:43
You're EVR-CP perf is usually low, which suggests either a GPU problem or a MPC-HC settings problem. Try 'Right-click->Renderer Settings->Reset->Reset to Default Renderer Settings' and see if things improve.

Solid 50.000fps & 0ms jitter with EVR-CP Playback in MPC-HC x64 v1.7.7

I did the reset to Default Renderer Settings and nothing changed.

I wouldn't call it a GPU problem, it's a performance issue.

The iGPU HD 4600 is simply not fast enough for EVR-CP and such clips which are in the upper limit of performance of CPU decoding (null).

The same processor with a faster GPU, would decode in software using EVR-CP that clip in realtime with no jitter.

Littleman
16th October 2014, 22:17
Hi there,
First post since 2008 (yay! had to create a new account...)

I've just bought a lenovo y50 with an nvidia GTX 860m card linked via optimus to an intel HD 4600 igp.

The laptop has a 4k screen, so I had this crazy idea that I would decode 4K files...

I've tried a variety of files and players but it's often a hit or miss so far.
Big Bucks Bunny (http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_2160p_60fps_normal.mp4.torrent) in 4k doesn't play smoothly for instance.
Activating the hevc option in players seems to have no effect whatsoever.

I've started digging further into the matter and it seems that all images from the nvidia card go through intel's igp anyway, except when using the hdmi port (no tv, can't try that). What's bugging me so far is that I can't seem to have a solution to force the nvidia chip to decode video and I don't know if it's a harware limitation / optimus limitation or driver limitation...

Any clue to get me started? (all drivers are up to date - intel generic driver, not lenovo and latest nvidia too).
I'm willing to experiment "exotic" solutions if needed.

NikosD
16th October 2014, 22:22
I think you can get more help there, after you read that thread:

http://forum.doom9.org/showthread.php?p=1687796

Littleman
17th October 2014, 08:08
I think you can get more help there, after you read that thread:

http://forum.doom9.org/showthread.php?p=1687796

Yeah, thanks for the link. I had already read the thread but found no solutions that work for me there, but I'll post in their thread and see if they can help.

P.J
24th October 2014, 00:50
I think the new Nvidia 344.48 driver works better.

NikosD
16th November 2014, 14:11
I have installed Windows 10 Technical Preview x64 on an old hardware (laptop) and today I installed latest build 9860.

Win 10 has built-in support of MKV and HEVC decoding but during my tests I found out these:


1) There is no DS support, only MFT, so you can forget all known codecs/players besides Windows Media Player and Microsoft's MFT decoders of course.


2) MKV is working for H.264 codec, but not for H.265. I couldn't manage to decode H.265 .MKV files with Microsoft's MFT decoders.


3) Microsoft's MFT H.265 decoder has only CPU support, no DXVA for HEVC yet.


Also I did some benchmarking tests with my laptop's CPU and DXVA Checker x64 v3.2.1

I used LAV x64 0.63.5 and Microsoft's MFT H.265 decoder using Merom T7600 CPU (Core 2 Duo@2.33GHz) and the Gravity 2048x864 HEVC trailer which is in .mp4 format.


DXVA decoding didn't work with Microsoft's H265 decoder so I used DXVA processing.


Gravity 2048x864 HEVC - DXVA Processing - 1280 x720


Microsoft's MFT H.265 20/34/59 CPU Usage: 90%


LAV x64 0.63.5 15/21/23 CPU Usage: 67%



Well, the numbers speak for themselves!

I can't believe such difference with LAV x64 which is very fast, but Microsoft made a miracle with its own decoder!

P.S
I managed to find another .mp4 clip and the difference is much smaller, but still MS MFT is faster again.

The huge difference of the file above is probably due to the encoding process and the not optimised decoding process of LAV for that specific clip.

huhn
16th November 2014, 16:51
Microsoft pays there programmer so this decoder is most likely a "finished" product and updates are more for bug not performance in the future. free decoder like openHEVC will catch up in the feature.
and the decoder in lavfilter for HEVC isn't very fast it is just a lot faster than the older version or a different decoder.

NikosD
17th November 2014, 06:55
Win 10 is in very early stages and it would be a very big surprise if HEVC decoder is at final stage.

I'll check again both decoders (LAV, MS MFT) in the future to see their progress on the same and other clips.

kasper93
17th November 2014, 17:38
Win 10 is in very early stages and it would be a very big surprise if HEVC decoder is at final stage.

If it is deployed that mean it is finished, and only fixes and smaller changes will be incorporated. It is not like open source, company like Microsoft can't afford spending time on improving something that works. It works, it is fast enough, job done.

huhn
17th November 2014, 18:58
they just release 9879. feel free to try it out.

NikosD
17th November 2014, 19:02
I have to repeat myself that Win 10 is in early stage of development.

Probably H.265 codec is in early stage too.

It's not in a ready state status.

Only RTM version is final product and still changes happen, even in performance not only bugs, via updates.

One thing that makes me sure that it's not final product, it's the fact that no DXVA acceleration is included in this version.

NikosD
17th November 2014, 19:04
Does anyone have .mp4 H265 files, but below 3840x2160 resolution ?

I have only two!

huhn
17th November 2014, 19:11
a software decoder has usually nothing to do with the DXVA version. the software for a DXVA decoder is just a software that talks to the "GPU driver".

about mp4 maybe ffmpeg can remux to it.

huhn
17th November 2014, 19:44
i did a test with the UHD beauty sample. using native resolution
ms mf 9879 85/94/97 76%
lavfilter x64 63.0 71/87/95 69%

doesn't look that special...

NikosD
17th November 2014, 20:59
Check Gravity trailer and you will confirm the performance difference above.

Unfortunately on my old laptop I can't check any 4K file, not even H.264

huhn
17th November 2014, 21:42
i don't have that file.

nevcairiel
18th November 2014, 08:20
There are plenty optmizations for SSE4 and AVX in ffmpeg/LAV, which a Core 2 Duo wouldn't be able to utilize, so its quite possible the performance gap may shrink quite a bit on a newer CPU.

NikosD
18th November 2014, 18:03
I don't think so.

I'm pretty sure that such optimizations are already included in MS MFT.

The performance gap will probably be the same regardless of CPU architecture.

The difference is in the clips and the optimizations of specific HEVC decoding parts of the algorithm.

huhn
18th November 2014, 20:51
TEARS OF STEEL remux 720p source http://www.h265files.com/

lav 63.0 with 16 threads 821 fps 66 % CPU usage
lav 63.0 with auto 842 fps 60 % cpu usage
ms mf 732 fps 67 % cpu usage

ShakeNDry_3840x2160_120fps_420_8bit_HEVC_RAW.hevc 300 frames remux to mp4 i got this file on a page with tons of samples in all size and codec even lossless YUV. is a long time ago can't find it right now.

lav auto threads 87 fps 76 % CPU
MS MF 90 FPS 85 % CPU

120 FPS game recoding created by HUHN

lav 63.0 366 FPS 53% CPU
ms MF 363 84%

i don't see a clear winner but huge potential in thread optimization for the decoder in Lavfilter

NikosD
18th November 2014, 21:24
I upgraded Win 10 to the latest build 9879 and I got a little performance boost for HEVC decoding:

Microsoft's MFT H.265 20/36/60 CPU Usage: 90%

LAV x64 0.63.5 15/21/23 CPU Usage: 67%

I tried LAV with Auto Threads and 8 threads with no performance difference.

I uploaded the clip tested here, in order more people to check it out.

https://www.sendspace.com/file/1aaex4

huhn
18th November 2014, 23:57
lav 63.0 117/159/405 61%
ms mf 150/204/292 72%

something about this file i haven't see something like this with every other file.

NikosD
18th November 2014, 23:59
Maybe because it's a 10 bit file.

If you have another one, you could try.

huhn
19th November 2014, 00:07
i don't have one time to create one.

xooyoozoo
19th November 2014, 12:21
This site (http://demo-uhd3d.com/categorie.php?tag=hevc) has a couple 20+mbps 10-bit 4K HEVC demos: Eutelsat (http://demo-uhd3d.com/files/4k/Eutelsat.Demo.HEVC.ts) and Astra (http://demo-uhd3d.com/files/4k/Astra.SES.Demo.HEVC.ts).

You may need to remux.

P.J
20th November 2014, 00:14
Interesting, would you try 10-bit 4K with both MS and LAV?

huhn
20th November 2014, 14:16
i try it later. but i haven't found a way to get hevc stream out of the TS. so i may go and simply create a 10 bit video should be faster.

P.J
20th November 2014, 16:08
Doesn't WMP play TS HEVC?

Kurtnoise
20th November 2014, 17:13
i try it later. but i haven't found a way to get hevc stream out of the TS.
did you try with the last version of TsMuxer ?

huhn
20th November 2014, 18:46
did you try with the last version of TsMuxer ?

yes it find the stream with Eutelsat.Demo.HEVC.ts but it can't find the fps of the file and an option for 50 is not part of the GUI.
i tried the CLI didn't got it working.
if i remux the stream to m2ts, mmg detects the video stream as AC3/EAC3 X-).

Astra.SES.Demo.HEVC.ts doesn't work at all the stream is not found only audio.

huhn
20th November 2014, 18:49
Doesn't WMP play TS HEVC?

no and would be pointless in this case. i don't need it to work in a player i need it to work with a benchmark tool and that's not the case.

xooyoozoo
20th November 2014, 21:28
It played in a Win10 VM through the Video app after

ffmpeg (http://ffmpeg.zeranoe.com/builds/) -i $FILE -map 0:0 -c:v copy -movflags faststart $FILE.mp4

.

Edit: Well, I uploaded a remuxed version of the Astra clip (https://mega.co.nz/#!RdlCCL7Z!MtXILmyRrMHE2n5TZJF6mqV24OWUCY8sYXBDJrqokGo).

huhn
21st November 2014, 00:00
astra mp4 remux
ms mf 52/58/66 63%
lav 63.0 57/74/117 77%
that's that i guess.
no i didn't mixed them up

xooyoozoo
21st November 2014, 03:30
The results for Astra looks great! But it brings up the question of why LAV does poorer on the 10bit Gravity clip.

something about this file i haven't see something like this with every other file.

So I went through and looked at the parameter sets in a few of the clips here, and compared to the others, that clip (Gravity Trailer) has two "unique" features: weighted-prediction and wavefront parallelism.

I hope that either one isn't the sticking point for the LAV decoder, but just to check, can you also try this clip (https://mega.co.nz/#!dEkTDKIC!BJuMB3Gu-Q_pgMnQ9zR6qrFHsoJFM2HbmCDilGqKblo)? It's a 90-seconds 10bit 16Mbps 4K encode with WPP and weighted-pred.

huhn
21st November 2014, 03:57
lav 63.0 46/56/68 93%
ms mf 36/48/54 85%

i guess it's wavefront parallelism then.

xooyoozoo
21st November 2014, 04:29
WPP is shorthand for wavefront parallelism, so that feature is already turned on.

In any case, the two 10bit-4K clips's results are enough to allay my doubts about LAV's decoder optimizations.

huhn
21st November 2014, 04:57
for some reason lav is a lot faster with UHD content but why.

maybe the cabac is faster in ms mf?

NikosD
21st November 2014, 13:08
I tried every clip posted here, but unfortunately as I have said before, my laptop probably due to graphics card or DXVA Checker's bug can't benchmark 4K HEVC files (not even 4K H.264), at least under Win 10.

But I uploaded for you another non 4K HEVC file to run a benchmark.

Once again for me, MS MFT 9879 is faster than LAV

TOS sample

MS MFT x64 9879 11/23/36 CPU: 91%
LAV x64 0.63.5 12/19/31 CPU: 91%

Same CPU utilization, MS MFT faster than LAV (about 21%).

You can download the clip here:
https://www.sendspace.com/file/uq8osh

NikosD
21st November 2014, 13:12
So I went through and looked at the parameter sets in a few of the clips here, and compared to the others, that clip (Gravity Trailer) has two "unique" features: weighted-prediction and wavefront parallelism.


How did you do that ?

How did you find the encoding parameters of the Gravity trailer and the other clips ?

Is there a tool ?

Thanks!

huhn
21st November 2014, 16:26
lav 63 85/120/136 76%
ms mf 102/131/174 93%

ms mf is faster with this file here but usage a lot more CPU.
this file use a lot of cabac with is avg 31 mbit up to 94 mbit unlike the gravity file that has 5 mbit in it name.

xooyoozoo
22nd November 2014, 12:01
How did you find the encoding parameters of the Gravity trailer and the other clips ?

Is there a tool ?

You'd need a bitstream analyzer that can read the various VPS/SPS/PPS flags. Pretty much all of them can do that, but you might have to read between the lines to match a flag to a colloquially-termed feature.

NikosD
22nd November 2014, 12:03
Can you name a few ?

Are there any free analysers capable of doing that ?

NikosD
22nd November 2014, 14:59
I have a new beta of DXVA Checker and for the first time I can benchmark 4K files with my old laptop under Win 10, in "Decode performance" as it's the new name of DXVA decoding.

I can't do the same thing with DXVA processing or "Playback performance" as it is called now, because my iGPU 945G can only output 4K files using VMR7 and not VMR9/EVR needed by DXVA Checker.

Beauty-2160p@30fps-12.3Mbps

MS MFT 9879 8/15/20 CPU usage: 92%

LAV x64 0.63.5 3/9/11 CPU usage: 95%


Once again MS MFT is faster than LAV (about 67% !) and it seems we have a clear winner, at least for Core 2 Duo HEVC decoding.

Dethis
22nd November 2014, 15:11
It would be interesting to include samples fron Samsung NX1 in the benchmarks HQ (40Mbps) and ProQuality (80mbps)
http://www.imaging-resource.com/news/2014/11/19/samsung-nx1-4k-video-samples-and-new-full-res-frame-grabs-available-for-do

NikosD
22nd November 2014, 17:31
I downloaded all 5 clips.

It's a little pity for the Mac users to have a new iMac with a 4GHz quad-core Core i7 and AMD Radeon R9 M295X, but still can't play the clips, according to the reviewer of the article.

With signature system and HD 4600@1500MHz I had problems using DXVA Checker and MPC-HC x64 v1.7.7.128 using HW decoding with Intel's HEVC decoder.

I got black screen or nothing.

But using latest official PotPlayer x64, I got DXVA acceleration for all 5 clips and I could play relatively easy all 5 clips, besides the ProQuality@80Mbps clip.

But even the other 80Mbps clip, could be decoded properly by HD 4600 in HW acceleration and ~20% CPU usage@4.0GHz.

I saw the GPU memory usage to 1.5 GB which is unexplainable because from BIOS I can assign up to 1 GB GPU memory!

Using CPU (SW decoder) all clips can be handled easily by all players.

Here is a benchmark for the most difficult clip with DXVA Checker x64 v.3.2.1 and LAV 0.63.5, using DXVA processing at 1280x720:

yvid_SAM_0230-ProQuality-UHD@30fps-80Mbps


LAV x64 0.63.5 CPU 20/43/47 CPU usage: 86 %

foxyshadis
26th November 2014, 11:06
Can you name a few ?

Are there any free analysers capable of doing that ?

HEVC Visa (http://hevcvisa.codecian.com/) is good when it works, but lately that hasn't often been the case. The free trial of CodecVisa long since ran out for me.

I thought there was a way to use gstreamer or ffmpeg to display all data, but nothing is working. I guess there's still room for someone to improve ffprobe.

NikosD
26th November 2014, 11:12
Thanks for the reply.

From all the apps you mentioned, I have only tried ffprobe which definitely is not enough for analysing HEVC.

Probably I'll have to wait for a more complete app to come up.

P.J
27th November 2014, 13:08
I downloaded all 5 clips.

It's a little pity for the Mac users to have a new iMac with a 4GHz quad-core Core i7 and AMD Radeon R9 M295X, but still can't play the clips, according to the reviewer of the article.

With signature system and HD 4600@1500MHz I had problems using DXVA Checker and MPC-HC x64 v1.7.7.128 using HW decoding with Intel's HEVC decoder.

I got black screen or nothing.

But using latest official PotPlayer x64, I got DXVA acceleration for all 5 clips and I could play relatively easy all 5 clips, besides the ProQuality@80Mbps clip.

But even the other 80Mbps clip, could be decoded properly by HD 4600 in HW acceleration and ~20% CPU usage@4.0GHz.

I saw the GPU memory usage to 1.5 GB which is unexplainable because from BIOS I can assign up to 1 GB GPU memory!

Using CPU (SW decoder) all clips can be handled easily by all players.

Here is a benchmark for the most difficult clip with DXVA Checker x64 v.3.2.1 and LAV 0.63.5, using DXVA processing at 1280x720:

yvid_SAM_0230-ProQuality-UHD@30fps-80Mbps


LAV x64 0.63.5 CPU 20/43/47 CPU usage: 86 %
HD4600 can't use more than 512MB as dedicated memory.
And the last clip (ProQuality) doesn't play good with PotPlayer.
(i3 4330) CPU: 25% GPU: 50% Dynamic memory usage: 850MB Dedicated memory usage: 24MB

NikosD
27th November 2014, 14:03
No, HD 4600 can use 1GB RAM, that's the max setting of BIOS and if you see my first post with the benchmark details, I have specific numbers for GPU RAM utilisation during benchmarking.

I did the test again monitoring real main memory RAM of my system and GPU RAM and during playing back of one of the samsung clips, GPU RAM went as high as 1.5GB

About Pro quality clip, did you read my post you quoted ?