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

mariush
19th December 2016, 18:44
I'm using this Firefox extension : https://addons.mozilla.org/en-US/firefox/addon/youtube-video-and-audio-dow/?src=api
Adds an orange button under the videos, when clicked it overlays all the video and audio options over the video and allows you to select specific formats.

The version I downloaded 2160p 60fps is about 460 MB (~458 MB + 2 mb opus track automatically selected by extension to mux with the video)

Is it the HRD one or the 8bit one?

How would the html 5 code of the player detect that you have a HDR (or non-HDR) monitor installed, is there even some way for the browser to retrieve that information and give html players or javascript code on some page acccess to that information?

--

I should get an XFX RX 470 in a few days, waiting for the courier to drop it off.
If anyone will be interested by then, I can post power consumption numbers as I have a kill-a-watt type of device and a decent power supply (Seasonic X-650, 90+ efficiency), so the measurements should be pretty accurate.

Could be interesting as I have two monitors with different resolutions (1920x1200 for primary, 1920x1080 for secondary) and in the past from what I heard, there were problems in drivers like increased power consumption at idle when two monitors with mismatched frequencies or resolutions were used.

NikosD
19th December 2016, 19:23
The one with that size is the 8 bit.

Use the youtube downloader app to download the 10bit version.

I don't know how they recognize the monitor.

About RX 470, don't forget to undervolt it and measure again.

sneaker_ger
19th December 2016, 19:26
I don't know how they recognize the monitor.
Pretty sure they don't. The client is responsible for advertising its codec support (or only accessing the codecs it supports - however their JS logic works). I doubt any PC browser will do that at the moment. They expect you to buy a Chromecast Ultra and connect it to a HDR10-compatible HDMI display or use a SmartTV with the feature built-in.

P.J
19th December 2016, 20:47
We need some benchmark charts :rolleyes:

CruNcher
20th December 2016, 03:10
Can
RX 470
GTX 1080
Intel Kabylake


Playback this without any issues ?

https://mega.nz/#!ilgxWaJA!sjqwfIWuCknm4o_mQibD_xRHFV7yliiVP0-jSCLv05I

Trevonn
20th December 2016, 04:54
Can
RX 470
GTX 1080
Intel Kabylake


Playback this without any issues ?

https://mega.nz/#!ilgxWaJA!sjqwfIWuCknm4o_mQibD_xRHFV7yliiVP0-jSCLv05I

The video is longer than the metadata says (22 secs), there's some small corruption within the 1st second of playback but after that the video seems to plays fine. This is on a GTX 1060 with MPC-HC. I don't think it was encoded 100% correctly

Aleksoid1978
20th December 2016, 07:04
File encoded incorrectly - video resolution change some seconds after start.

baii
20th December 2016, 15:22
Have a rx 460 in htpc, but vp9 decode is no where to be found with latest driver:confused:

Do the 1060/70/80 does hardware vp9?

huhn
20th December 2016, 15:30
even some maxwell cards have VP9 so yes they do.

mariush
20th December 2016, 16:36
I had some spare time to download some of the videos mentioned in the last few pages on this thread and put them on one of my dedicated servers. Here's download link (FTP, anonymous) : HIT ME (ftp://helpedia.com/pub/multimedia/testvideos/)

The anonymous transfers may be limited to 1 MB/s per IP but resume is supported and from memory I think i capped the ftp server at 3 simultaneous connections per IP ... anyway, point is you can feel free to download them as long as you won't complain they're not blazing fast downloads.

I've also set up an upload ftp account, in case someone here wants to submit more test files. I'll keep it active for a couple of days or something like that.

Host : helpedia.com User : testvideos Password : upload

Everything uploaded will show up in the _uploads folder and if the files are good i'll move them in main folder eventually.

The account supports creating folders and appending to files (to resume uploads if your connection is crap) but no deleting (to prevent people from deleting other users' videos if more than one people care to upload). You can pm me if you screwed something and want it deleted.
So the idea is that if someone has an interesting test file or finds a good one, i wouldn't mind getting a copy uploaded there.. or have someone upload it there and link to it from here, instead of sites like mega which sometimes ask for registration or have loads of ads on them.

// There's about 60 GB of free disk space on the drive with that folder but i can make more room if need be.

CruNcher
20th December 2016, 22:46
File encoded incorrectly - video resolution change some seconds after start.

I don't think so nothing states that it is out of spec changing anything at all at encoding runtime and the decoder could accept it.

Many of the Sat test streams change all kind of properties from one sample to the next.

It would be mainly the fault of the demulitplexer, decoder and renderer if they can't do it in a efficient manner without braking and dynamically adapting to the different stream properties signaled appropriately at runtime.

nevcairiel
20th December 2016, 22:54
Many of the Sat test streams change all kind of properties from one sample to the next.

Test streams do that, but actual consumer broadcasts typically do not, because its not a seamless transition. All sorts of things need to re-init to change properties like frame size or bitdepth, which is just going to disrupt playback and possibly glitch a bit.

In this case all you get is a bit of lagging/hiccuping, which is common in such a case because generally the decoder and the renderer need to finish with the old sequence before they can start the new one, so any pre-buffering goes out the window - and you get a hiccup.

Yups
20th December 2016, 23:20
The World in HDR_VP9

This 10 bit VP9 video is demanding, even with hardware decoding with my GTX 1080 there is a CPU load of ~20% on my i7-7700k at 4.2 Ghz. I don't see such CPU load numbers with HEVC videos.

nevcairiel
20th December 2016, 23:22
The World in HDR_VP9

This 10 bit VP9 video is demanding, even with hardware decoding with my GTX 1080 there is a CPU load of ~20% on my i7-7700k at 4.2 Ghz. I don't see such CPU load numbers with HEVC videos.

The GTX 1080 doesn't have 10-bit VP9 hardware decoding, and if you are decoding on the Intel GPU and transfering it to the 1080 then you have a bit of load just from that.

CruNcher
20th December 2016, 23:22
Could be the Cuda Decoder, as i said it would also make a lot of sense for the higher shader count cards to save the asic logic (or just do it when the asic is not ready yet the cuda decoder gives faster target hit times) this is actually a fascinating strategy, not new at all though ;)

Now if we get the same result for the GP107 and it shows lower utilization overall it would be pretty confirmed ;)

@yups

Which actuall Nodes get utilized on it ?

Btw 20% CPU is also what i see on the HEVC Cuda Decoder on it's peak possible decoding complexity on GM204 at 1266 on a i5-2400 though

and i also correlated the overall decoding power vs that 4 cores on software alone (avcodec) the Decoder is from that point weaker overall then the CPU alone but obviously more power efficient then the old CPU generation at certain complexity stages (use cases) alone ;)

Yups
20th December 2016, 23:35
The GTX 1080 doesn't have 10-bit VP9 hardware decoding, and if you are decoding on the Intel GPU and transfering it to the 1080 then you have a bit of load just from that.


Does it have a Hybrid decoder? It should have because disabling hardware decoding results in over 90% CPU load.


CruNcher, what nodes?

nevcairiel
20th December 2016, 23:40
Does it have a Hybrid decoder? It should have because disabling hardware decoding results in over 90% CPU load.


Not with current drivers. (unless its hidden somwhere where I have not found it yet)

Which decoder/hardware decoding mode are you using? LAV Video should be able to tell you which GPU its running on, for example.

CruNcher
20th December 2016, 23:48
Does it have a Hybrid decoder? It should have because disabling hardware decoding results in over 90% CPU load.


CruNcher, what nodes?

GPU Nodes from the Windows NT 6 API (Longhorn (Vista) upward)

http://www.geeks3d.com/20111205/process-hacker-2-25-gpu-monitoring/

You can see all of them either via Process Hacker or Process Explorer.

https://msdn.microsoft.com/en-us/library/windows/hardware/dn265449(v=vs.85).aspx

http://www.ozone3d.net/public/jegx/201107/process_explorer_gtx460_gt240_furmark.jpg
http://www.ozone3d.net/public/jegx/201112/process-hacker-2-gpu-usage.jpg

Yups
21st December 2016, 01:43
Not with current drivers. (unless its hidden somwhere where I have not found it yet)

Which decoder/hardware decoding mode are you using? LAV Video should be able to tell you which GPU its running on, for example.


There is no iGPU involved, looks like CPU decoding with lav is much stronger than I expected.

CruNcher
21st December 2016, 01:44
This LG View the Feeling sample makes me headache why is it named as .mp4 and in reality a transport stream.

What is also really interesting a big bunch of all samples that are currently floating around are actually from Atemes Titan Encoder Core then we have Fraunhofers/HHI Encoder and some others that are rather hard to identify :)

Samsung absolutely exclusively using Atemes Titan

LG pretty much also the latest LG Chess which is the absolute top new version of the HDR Encoder ATEME Titan KFE 3.7.1 (4.7.1.0).

I wonder if LG View the Feeling was done by LG @ all the way it floats around in that x265 version ;)

also makes no sense why LG should use x265 1.3+206-199e8f2e0d54abd1 • Compiling by snayper [x265.ru]

looks like a user transcode but from which original LG input source ?


@Yups

It is nice to see some results of it to correlate to from your Kaby-Lake 20% is nice :)

Not undisturbed realtime Playback Capable @ 60 FPS (lot of jitter parts where cpu dies) with that complexity level here on the i5-2400

http://i1.sendpic.org/t/vx/vxY2hkbjDLkCyHFQt5F46xdZB9p.jpg (http://sendpic.org/view/1/i/7hQpVigALfJnTJjaYVdsbo1bb9K.png)

50 FPS might work though :D

could you limit the core count to 2 and let us see the result ? :)

@nevcairiel

i think you don't really want to expose decoding tricks (cheating) via the lav video gui to its users ?

NikosD
21st December 2016, 14:11
By using the registry hack from this thread https://community.amd.com/message/2768536 you can force the use of VP9 OpenCL acceleration as the registry key says: (change the value from 0 to 1)

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000\UMD\DXVA\VForceOCLVP9


The DXVA Checker says:
https://s28.postimg.org/u4yxc6w59/RX_470_VP9v3.jpg

LAV doesn't seem to support VP9 acceleration using this hack but PotPlayer drops the CPU utilization of Sandy Core i5-2400 to ~30% even in the most demanding VP9 4K 60fps clips.

The problem is the framerate is very low 7 fps to 13 fps and the GPU utilization/clocks not very high.

Probably AMD has a reason of not activating yet the VP9 HW decoder.

Let's hope that when they do it, it will work OK even as a clearly GPU and not HW based decoder.

NikosD
21st December 2016, 14:23
New 16.12.2 driver fixed:


Chromium may fail to utilize hybrid decode for VP9 content.


but it's not working according to the reports.

I'll give it a try.

NikosD
21st December 2016, 15:02
After a clean install the registry "hack" disappeared (that's a good sign that the installation of the new driver was really clean) but unfortunately, still VP9 acceleration is not working for the latest Chrome v55 x64 even using Crimson 16.12.2.

The "World in HDR" gives a 90+ % CPU utilization of Sandy Core i5-2400.

sneaker_ger
21st December 2016, 15:20
Maybe it just sucks? Open a second tab "chrome://media-internals/" while playing a Youtube VP9 video. Click the blob and look for "video_decoder". "VpxVideoDecoder" is software AFAIK.

NikosD
21st December 2016, 15:23
Using chrome://gpu it says hardware accelerated.

It was the first thing I checked.

sneaker_ger
21st December 2016, 15:28
But is chrome://gpu showing the current status of the specific video or only showing the general availability of accelerated VP9 decoding?

NikosD
21st December 2016, 15:31
The general availability...It means that hw acceleration is present and ready to be used (and compatible)

Now, why it's not used is another question.

It's a bug probably or not ready for release.

Yups
21st December 2016, 16:17
VP9 decoding doesn't work either with Chrome 55 for Kabylake, but it works with Chrome 56 Beta. Edge works out of the box, Firefox doesn't support it in version 50. LAV also doesn't support it. Works out of the box with MPC-BE, no idea what decoder they are using.

sneaker_ger
21st December 2016, 16:18
The general availability...It means that hw acceleration is present and ready to be used (and compatible)

Now, why it's not used is another question.

It's a bug probably or not ready for release.
So what does "video_decoder" say in the respective chrome://media-internals/ blob? You still didn't say.

NikosD
21st December 2016, 16:23
The card is not mine.

I do some tests when I and the owner have some time.

I'll try again.

NikosD
21st December 2016, 17:59
Maybe it just sucks? Open a second tab "chrome://media-internals/" while playing a Youtube VP9 video. Click the blob and look for "video_decoder". "VpxVideoDecoder" is software AFAIK.

Yes, it says "VpxVideoDecoder" while using AVC codec says "GpuVideoDecoder"

It looks like SW mode for VP9.

BTW, Edge gives me always the H.264 stream, not VP9.

NikosD
21st December 2016, 18:43
GPU Nodes from the Windows NT 6 API (Longhorn (Vista) upward)

http://www.geeks3d.com/20111205/process-hacker-2-25-gpu-monitoring/

You can see all of them either via Process Hacker or Process Explorer.



No GPU module and some others I see in your post. Only CPU, Memory, I/O.

I don't have a discrete card, only Core i3-4170 and the built-in iGPU HD 4400.

I run the portable version.

huhn
21st December 2016, 20:32
So what does "video_decoder" say in the respective chrome://media-internals/ blob? You still didn't say.

GpuVideoDecoder:
https://abload.de/img/vp9amdgzu79.png

NikosD
21st December 2016, 23:42
From the above link of the AMD forum someone says that this is the solution for fluid playback of VP9 4K 60fps using Chrome and Youtube:

chrome.exe --enable-accelerated-vpx-decode=2

I'll try it tomorrow though.

huhn
21st December 2016, 23:57
works fine. with the advanced parameter and bad without but both are using GPU decoding.
UHD 60 hz VP9 is doable with it.

CruNcher
22nd December 2016, 00:21
Is the Rendering mainly working over ANGLE via Chrome so wrapped DX11 ?

They had allways a real benefit with it even supporting down to XP with 3D Acceleration with it when Mozilla failed ;)

it will be interesting when slowly Vulkan takes over the Rendering overall :D

How does the overall utilization looks like via Chrome currently on the World in HDR sample with Crimson driver on the RX ??? ?

and are the 60 FPS also holdable in a window running within Chrome (not fullscreen) scaled to a slightly lower resolution or the entire Render surfface as a background video playing for example ?

huhn
22nd December 2016, 00:35
i can't properly test full screen because webbrowser are still unable to deal properly with high DPI screen.

i can't watch the HDR version and external video are not hardware decoded for what ever reason.

GPU usage is unreadable on the RX 480 like always. it jumps between 0- 100% like crazy

CruNcher
22nd December 2016, 00:39
Most probalby only over mediasource for DRM Reasons maybe over the Protected Media Path which might add some more overhead currently, most probably AMD will only release it if they absolutely sure it works reliable encrypted over the trusted zone.
On diffferent capable setups so far only Intel has the only reliable working solution via their AES stack and Netflix enabled that for Kaby-lake Windows 10 but only on EDGE so far.

Especialy on the discrete parts latency problematic getting everything right and if we ad Hybrid to it even more problematic ;)

huhn
22nd December 2016, 00:41
my TV can't do it anyway.

Vp9 profile2 isn't listed anyway.

and the h264 blocking issues are removed from the known issue.

CruNcher
22nd December 2016, 00:54
and the h264 blocking issues are removed from the known issue.

Nice can someone confirm it works ?

huhn
22nd December 2016, 01:05
i can confirm it doesn't work.

and i can't find the issue here: http://support.amd.com/en-us/kb-articles/Pages/Radeon-Software-Crimson-ReLive-Edition-16.12.2-Release-Notes.aspx

Aleksoid1978
22nd December 2016, 01:41
H.264 interlaced MBAFF still picture corrupted with DXVA.

P.S. RX460 - force registry key "VForceOCLVP9" to "1" don't work for me. Windows 10 ENT x64, 16.2.2 Crimson.

CruNcher
22nd December 2016, 02:21
Hmm so maybe a mistake removing it ?

Even the current cheapest Kaby Lake should reach reatime like YUPS I7 with marginal higher Utilization for the World in HDR

also

i5-7400
i5-7600

should look well in the current CPU Decoder state already :)

The cheapest Kaby Lake vs ZEN @ same price will be very interesting :)

NikosD
22nd December 2016, 07:56
BTW, Edge gives me always the H.264 stream, not VP9.

In order for Edge to use the VP9 stream you have to do these steps:

1.Open Edge and type "about:flags" in url bar.
2.Find "Enable VP9 video format" and set it to "Always On".
3.Restart Edge then open the online videos you want.

huhn
22nd December 2016, 12:44
H.264 interlaced MBAFF still picture corrupted with DXVA.

P.S. RX460 - force registry key "VForceOCLVP9" to "1" don't work for me. Windows 10 ENT x64, 16.2.2 Crimson.

maybe a performance reasons a 480 is about 2.5-3 times as fast as a 460.

NikosD
22nd December 2016, 15:31
H.264 interlaced MBAFF still picture corrupted with DXVA.

P.S. RX460 - force registry key "VForceOCLVP9" to "1" don't work for me. Windows 10 ENT x64, 16.2.2 Crimson.

The first one is true, AMD hasn't said yet that H.264 interlaced bug is fixed.

We have exactly the same platform: Windows 10 x64 Ent - Crimson 16.12.2

By using the registry hack and your player (MPC-BE) I can see that DXVA is used according to the stats (Ctrl-J) and the low CPU utilisation, but the performance is awful.

The card works at highest state 7 (1300MHz/8000MHz) with a GPU utilisation of 80% - 96% and it barely reaches ~10fps for 4K VP9 clips (8bit)

Exactly the same situation with PotPlayer.

On the other hand, even without the registry hack, if you run chrome with the above parameters you can watch 4K30fps in window mode with <30% CPU utilisation of Core i5-2400.

Edge, on the other hand, when you force the use of VP9 stream with or without the registry hack, fails to use hybrid acceleration - it's always SW.

Also, if you do the registry hack you can run chrome without the extra parameters and still have GPU (hybrid) decoding.

In all cases that Chrome works with hybrid acceleration, media internals say "GpuVideoDecoder"

As a last comment I would say to give AMD a little more time to see if they can give general availability of hybrid VP9 acceleration to all browsers and Media Players with proper speed.

Chrome seems to work, but it's the only one so far and not out of the box.

baii
22nd December 2016, 15:57
Can confirm the chrome thingy work on rx 460 and this is on 16.12.1.

I remember pot player internal dxva decoder can auto do vp9 at low framerate in an older driver.

So in all, no youtube + madvr as of yet for AMD.

CruNcher
22nd December 2016, 23:31
It's a pity we don't see Ateme in any Encoder Compare anymore they really rock the boat hard on HEVC even more so as they did already on AVC :)

They also continuously improving their PSY Core, i love their very unique psy work results they improved them a lot since the AVC Encoder and their complexity balancing is awesome even in the early core, hard contender and all that in a very rough Realtime environment :)

http://i1.sendpic.org/t/dX/dXYCQ1FZxLtfQdHx8oH1QvMbPmz.jpg (http://sendpic.org/view/1/i/gvLe9jrnhT67ejpifsevMIZkVqf.png)

Their 10 bit path Strobing Volumetric results are just awesome to watch in motion, Broadcast (Realtime) limited awesome work.

http://i1.sendpic.org/t/lN/lNCQpe06bkYEr24CBOhvf9gTiio.jpg (http://sendpic.org/view/1/i/vipN8qiUymWDaVCeWa62w16wmSa.png)

http://i1.sendpic.org/t/yb/ybRgJUVK8uxFGoKQOCtifWFH1mw.jpg (http://sendpic.org/view/1/i/tIVNb6pl487oldrOgsACQHcWUsk.png)

But as the Borg said once upon a time "Resistance is Futile" ;)

NikosD
23rd December 2016, 01:31
P.S. RX460 - force registry key "VForceOCLVP9" to "1" don't work for me. Windows 10 ENT x64, 16.2.2 Crimson.

Try this one:
chrome.exe --ignore-gpu-blacklist --enable-accelerated-vpx-decode=2

Aleksoid1978
23rd December 2016, 04:46
Try this one:
chrome.exe --ignore-gpu-blacklist --enable-accelerated-vpx-decode=2

I meen using DXVA for VP9. Chrome don't interesting for me :)