0
shippy

S905/X/W/D video acceleration/GPU hw + multi core processing support

Recommended Posts

16 hours ago, TonyMac32 said:

I believe that all share the same video decoding hardware block.  Any of them should provide that ability assuming the kernel supports it. 

Well, since the most significant changes between S905 and S905X  affect the VPU, I didn't want to take that for granted. I'm glad about the news you tell me, because that means  there is a higher chance that S912 linux kernel will also support HW video dec.

 

The reason why I mentioned the C2 as the most promising board is because, when I was researching for the XU4, I saw that Hardkernel images had UDEV rules for the amlogic VPU nodes, which made me assume that they made it work in that board. I'm not so sure about LePotato and Vim1/Vim2. We must not forget that it is not enough to have the kernel nodes, you also need the userspace libs to make everything work.

 

And also, it seems like in Armbian we have different kernel sources for S905X and S905 (see https://github.com/armbian/build/blob/master/config/sources/meson64.conf  vs.  https://github.com/armbian/build/blob/master/config/sources/odroidc2.conf).  Does that mean that OdroidC2's kernel would not work on S905X (e.g. LePotato)?

Share this post


Link to post
Share on other sites
18 hours ago, shippy said:

If you could comment on my 4K@60/30fps questions numbered above for RK or Amlogic, I would appreciate much

I understand you mean to ask what are the HW decoding capabilities and Linux VPU support of the different SoC's. About the first, this is a summary*:

  • RK3288 can decode AVC & HEVC  up to 4K@30. No HDR support.
  • S905 can decode AVC & HEVC  up to 4K@60. HDR 10 supported.
  • S905X, S912, RK3328 and RK3399 can decode AVC, HEVC and VP9 up to 4K@60, with support for HDR 10. So you throw a dirty sock to these guys, and they'll figure out a way to decode it.

Regarding Linux support, here's another summary:

  • RK3288 has full Linux support, confirmed and tested.
  • I have good reasons to think that RK3328, RK3399 and S905 also have full Linux support, but I haven't tested it personally.
  • I have no idea about S905X or S912.

 

 

 

* (I skip some minor precissions, like AVC 4K@60 not being supported by some SoC's that support HEVC 4K@60)

Share this post


Link to post
Share on other sites
7 hours ago, JMCC said:

The reason why I mentioned the C2 as the most promising board is because, when I was researching for the XU4, I saw that Hardkernel images had UDEV rules for the amlogic VPU nodes, which made me assume that they made it work in that board.

I believe there is a simple command line player (c2play) that makes use of the VPU (similar to omxplayer on RPIs). Of course this does not integrate with FFmpeg/gstreamer and other applications that may want to use HW video decoding.

These libraries can be used to integrate with different apps like Kodi.

Share this post


Link to post
Share on other sites
11 hours ago, JMCC said:

Does that mean that OdroidC2's kernel would not work on S905X

 

It would, in theory.  This is actually a situation where the Hardkernel code base is significantly divergent from the others, due to their hard work early on to support the hardware.  It means things are done differently, not necessarily incompatibly.  Now, quite some time after Hardkernel, we have other boards, and Amlogic/others are pushing to get proper mainline support, so I'm sticking with that.

 

As for compatibility of VPU's:

https://elixir.bootlin.com/linux/v4.16.2/source/Documentation/devicetree/bindings/display/amlogic,meson-vpu.txt

Share this post


Link to post
Share on other sites
20 hours ago, JMCC said:

I understand you mean to ask what are the HW decoding capabilities and Linux VPU support of the different SoC's. About the first, this is a summary*:

  • RK3288 can decode AVC & HEVC  up to 4K@30. No HDR support.
  • S905 can decode AVC & HEVC  up to 4K@60. HDR 10 supported.
  • S905X, S912, RK3328 and RK3399 can decode AVC, HEVC and VP9 up to 4K@60, with support for HDR 10. So you throw a dirty sock to these guys, and they'll figure out a way to decode it.

Regarding Linux support, here's another summary:

  • RK3288 has full Linux support, confirmed and tested.
  • I have good reasons to think that RK3328, RK3399 and S905 also have full Linux support, but I haven't tested it personally.
  • I have no idea about S905X or S912.

 

 

 

* (I skip some minor precissions, like AVC 4K@60 not being supported by some SoC's that support HEVC 4K@60)

Thanks again for the explanation, especially bullet #3 re: S905X.

 

So Linux video hw decoding for S905X is same as for Android here. 

 

Thus it seems to me the VPU should easily handle 4 h264 720p streams with some overhead with Ubuntu multi-seat capabilities with AV and HDMI outputs on an S905X Android Box; plus handle light server/OpenWrt tasks via the quadcore CPU with SMP multicore processing.

 

Question: If balbes150 legacy Xenial v5.41 (April 6) Armbian runs on S905X, 

shouldn't this mean S905X has pretty good Linux support?

Share this post


Link to post
Share on other sites
3 hours ago, shippy said:

Question: If balbes150 legacy Xenial v5.41 (April 6) Armbian runs on S905X, 

shouldn't this mean S905X has pretty good Linux support?

I think, you're more driven by hope than by facts.. :P 

 

Facts:

@JMCC doesn't know it (at the moment, I'm sure he'll figure it out when he has the boards and time to play with it). 

23 hours ago, JMCC said:

I have good reasons to think that RK3328, RK3399 and S905 also have full Linux support, but I haven't tested it personally.

 

@TonyMac32 doesn't know it either:

Quote

I believe that all share the same video decoding hardware block.  Any of them should provide that ability assuming the kernel supports it.

 

@zador.blood.stained doesn't care much about videodecoding (if I quote once more from the first page of the thread, the editor just f* up and I've to rewrite everything).... 

 

If you read a bit through the forum you might realize that the TV-Box subforum is more or less an 'independent subculture'  of armbian. I think at the moment, nobody tested if it's possible to stream four h264 streams simultaneously on a S905x SoC. So, the only way to be sure is to buy such a board (like the LePotato) and figure it out by your own, ask @Da Xue cause they sold it and might be tested it or hope that somebody spends his spare time on doing 'your job' just to give you a appropriate answer which might be unlikely cause most people might be happy when they decode one stream at once. Armbian being multimedia capable is IMO in early adapters phase, means things and practical knowledge start to grow but as an early adapter you might do part of the work on your own cause you enter a field where nobody (@armbian) was before... 

 

914959c3f9e3b9d7e7091a49d8912ff6.jpg :lol:

Share this post


Link to post
Share on other sites
13 hours ago, TonyMac32 said:

It would, in theory.  This is actually a situation where the Hardkernel code base is significantly divergent from the others, due to their hard work early on to support the hardware.  It means things are done differently, not necessarily incompatibly.  Now, quite some time after Hardkernel, we have other boards, and Amlogic/others are pushing to get proper mainline support, so I'm sticking with that.

Cool. The main reason why I was asking is because I know that Hardkernel got to do real overclocking on the C2 up to 1.75 Ghz, and I haven't heard of anything like that for LePotato or Vim. So maybe that overclocking would also be possible in those other boards with Hardkernel's kernel.

Share this post


Link to post
Share on other sites

I would be careful with any claims of clock control on Amlogic devices.  I'm on my handy, but there is a thread here talking about that, the system is controlled via the trusted firmware, which is a closed source blob, and not always entirely honest.  

Share this post


Link to post
Share on other sites

Yes, I remember the conversation on Le Potato. I need to follow up on what the end result of that was.

As far as RAM, I believe it is also impacted, In would not attempt to move around bl31's.



Sent from my Pixel using Tapatalk

Share this post


Link to post
Share on other sites
12 hours ago, chwe said:

I think, you're more driven by hope than by facts.. :P 

 

Facts:

@JMCC doesn't know it (at the moment, I'm sure he'll figure it out when he has the boards and time to play with it). 

 

@TonyMac32 doesn't know it either:

 

@zador.blood.stained doesn't care much about videodecoding (if I quote once more from the first page of the thread, the editor just f* up and I've to rewrite everything).... 

 

If you read a bit through the forum you might realize that the TV-Box subforum is more or less an 'independent subculture'  of armbian. I think at the moment, nobody tested if it's possible to stream four h264 streams simultaneously on a S905x SoC. So, the only way to be sure is to buy such a board (like the LePotato) and figure it out by your own, ask @Da Xue cause they sold it and might be tested it or hope that somebody spends his spare time on doing 'your job' just to give you a appropriate answer which might be unlikely cause most people might be happy when they decode one stream at once. Armbian being multimedia capable is IMO in early adapters phase, means things and practical knowledge start to grow but as an early adapter you might do part of the work on your own cause you enter a field where nobody (@armbian) was before... 

 

914959c3f9e3b9d7e7091a49d8912ff6.jpg :lol:

 

As I feared in my opening sentence on this thread, there really isn't much doc or hard evidence one way or the other.

 

Btw, the "full Linux support" likely is different from multi-seat (and more concerning multimedia) which is a quite standard feature on Ubuntu. Also people have run multi-seat instances on both Mac and PC Windows as well.

 

In any case can we agree that, at least, on S905X/W,

 

1. Armbian (eg v5.41 legacy) can support 4K@60/30 fps video streaming as it does on Android (per JMCC) ?

 

2. It is the VPU that does this video streaming and is "single core" ( monolithic), but with H264, H265 and maybe VP9 partitions which can stream lower quality (720p, SD) multiple streams (per Zador)?

 

And on RK3288, 

 

3. The video support with Armbian, e.g., JMCC builds (hw decode), is as good or better than for S905X/W ?

 

***Forget about Multi-seat or SMP multicore processing for now.

Share this post


Link to post
Share on other sites
15 minutes ago, shippy said:

Btw, the "full Linux support" likely is different from multi-seat (and more concerning multimedia) which is a quite standard feature on Ubuntu. Also people have run multi-seat instances on both Mac and PC Windows as well.

Welcome to arm... Where the world is a bit different.. In X86 world, you've to deal with Intel & AMD, as soon as their VPU stuff is supported it works more or less on every linux.. (It's not that a modern CPU doesn't have some sort of VPU.. e.g. intel quick sync or amd VCE). Whereas on ARM there are a bunch of SoC makers, and they probably solve it all a bit different to each other... ). 

 

15 minutes ago, shippy said:

1. Armbian (eg v5.41 legacy) can support 4K@60/30 fps video streaming as it does on Android (per JMCC) ?

 

On 16.4.2018 at 12:34 PM, JMCC said:

I have no idea about S905X or S912.

 

 

15 minutes ago, shippy said:

2. It is the VPU that does this video streaming and is "single core" ( monolithic), but with H264, H265 and maybe VP9 partitions which can stream lower quality (720p, SD) multiple streams (per Zador)?

try it, post your findings and others can benefit from.. 

Quote

Usually it is not possible to run multiple decoding or encoding streams through the hardware VPU (though documentation suggests that simultaneous decoding and encoding is possible).

Quote

but most likely this means that if the engine supports i.e. up to 4k@60fps you may be able to pipe multiple smaller resolution streams through it given that available software libraries support this feature.

 

17 minutes ago, shippy said:

 

3. The video support with Armbian, e.g., JMCC builds (hw decode), is as good or better than for S905X/W ?

 

Quote

I am saying this only because I don't want too much time wasted here by talented people who can read:. All of the information we have that you need has been provided.  Mainline has no hardware enc/dec support.  All kernels have software support depending on the application.  

 

 

Feels like we're answering the same thing again and again... 

 

quotes from the page before just suck.. But this stuff quoted here came only from this thread.. Everything not answered should be adressed in the TV-Box subforum since we only provide mainline vor 905x and therefore no hardware accelerated videodecoding (at the moment). 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
0