HW video decode on VPU or GPU?

4,184 views
Skip to first unread message

romero

unread,
Jan 10, 2013, 4:54:36 PM1/10/13
to cubie...@googlegroups.com
Hi,

After some reading I'm a bit confused about video decoding. First I thought the Mali-400 was for all media needs, but it seems there's a CedarX for accelerating popular codecs. Some sites claim that the Mali-400 supports H.264, MPEG-2 and a few others though I can't find an official ARM source about this. Apart from current driver support, can the Mali accelerate video decode? How does it compare to CedarX?

Thanks

john jones

unread,
Jan 11, 2013, 2:47:55 PM1/11/13
to cubie...@googlegroups.com
I'm in the same boat. What codecs do Allwinner support for hardware/software decoding on Linux video or audio? Where is a list of support for H.264, DD, DTS...etc...etc.

romero

unread,
Jan 11, 2013, 3:07:56 PM1/11/13
to cubie...@googlegroups.com

Op vrijdag 11 januari 2013 20:47:55 UTC+1 schreef john jones het volgende:
I'm in the same boat. What codecs do Allwinner support for hardware/software decoding on Linux video or audio? Where is a list of support for H.264, DD, DTS...etc...etc.

According to the A10 user manual the VPU supports VP8, AVS, H.264 etc.

Supposedly the GPU supports some of these too, but it's difficult to find a good source about that.

George Ioakimedes

unread,
Jan 11, 2013, 4:07:30 PM1/11/13
to cubie...@googlegroups.com
How can we find out what can be hardware accelerated and with what software? Seems a bit odd that this type of information is not readily available.

john jones

unread,
Jan 11, 2013, 4:54:02 PM1/11/13
to cubie...@googlegroups.com
Very odd. I've dug around and can't find any concrete information on support in general.

George Ioakimedes

unread,
Jan 11, 2013, 9:14:33 PM1/11/13
to cubie...@googlegroups.com
Am I alone in thinking that it is odd to create and sell an "open source" board but then not provide some "basic" information about the hardware, especially after the questions have been asked?

Bastiaan van den Berg

unread,
Jan 11, 2013, 10:27:14 PM1/11/13
to cubie...@googlegroups.com
Cubieboard is not created, its an Allwinner A10 Implemented.

Besides that, you guys should check out
http://linux-sunxi.org/CedarXVideoRenderingChart

There are not many user oriented documents around for this platform,
most of the stuff is developer interest only .. Guess something we
could change? :)

George Ioakimedes

unread,
Jan 11, 2013, 11:28:22 PM1/11/13
to cubie...@googlegroups.com

Well I guess that's why we're here. I don't consider myself a hard core developer but on the other hand I'm far from a plug and play kind of guy.

Is it true that Tom Cubie works for Allwinner? If so, I would expect that we should be able to get some timely valuable information.

--
You received this message because you are subscribed to the Google Groups "Cubieboard" group.
To unsubscribe from this group, send email to cubieboard+...@googlegroups.com.
Visit this group at http://groups.google.com/group/cubieboard?hl=en.


jons...@gmail.com

unread,
Jan 11, 2013, 11:33:54 PM1/11/13
to cubieboard
The VPU and GPU are closed documentation. You have to work with binary
libraries. There has been work done to reverse engineer them but the
reversed implementation is incomplete. This is what I meant about it
being a mess to get video working in these CPUs when the IP holders
don't cooperate.

It is not Allwinner closing the documentation. The VPU is third party
licensed IP who has chosen a closed source route. The Mali ARM GPU is
also closed source.
--
Jon Smirl
jons...@gmail.com

George Ioakimedes

unread,
Jan 11, 2013, 11:44:28 PM1/11/13
to cubie...@googlegroups.com

Well I'm not sure for what I want that it matters if the GPU source is open. As long as you're able to write apps that take advantage of hardware acceleration I won't complain too much.

Dmitriy B.

unread,
Jan 12, 2013, 12:01:07 AM1/12/13
to cubie...@googlegroups.com
Are you serious right now? 
You want $1M Mali-400 IP-Core & DDK to be open? Or probably somewhat same value CedarX custom VPU engine built by Allwinner for their SoCs to be open too?
Be thankful that we have ARM that support opensource and provide drivers, that we had chance to get libraries from closed source DDK, that Tom convinced Allwinner to provide CedarX libraries for Linux and so on. Also he left Allwinner months ago to start this project.

You can write apps right now, we have drivers, SDKs/headers and etc., just read the wiki http://linux-sunxi.org/ and check the sources at https://github.com/linux-sunxi

If you still not happy - go buy yourself a BeagleBone for 75euro+35euro shipping form Farnell and enjoy support from TI.

2013/1/12 George Ioakimedes <georg...@gmail.com>

jons...@gmail.com

unread,
Jan 12, 2013, 11:38:29 AM1/12/13
to cubieboard
On Sat, Jan 12, 2013 at 12:01 AM, Dmitriy B. <rzk...@gmail.com> wrote:
> Are you serious right now?
> You want $1M Mali-400 IP-Core & DDK to be open? Or probably somewhat same
> value CedarX custom VPU engine built by Allwinner for their SoCs to be open
> too?

Obviously the silicon IP would not be open. What should be open is the
software programming manual for the VPU/GPU. We don't want to clone
the hardware, we want to write programs for the hardware we bought.

Intel and AMD/ATI have finally released the programming manuals for
the GPU's and the sky didn't fall. I wish the other GPU vendors would
do the same. I have wasted countless hours on Nvidia drivers that
didn't work with no ability to fix them, now I only run AMD/ATI or
Intel hardware.

Go check out how much trouble the XMBC people are having trying to
come up on the A10 without any documentation.


> Be thankful that we have ARM that support opensource and provide drivers,
> that we had chance to get libraries from closed source DDK, that Tom
> convinced Allwinner to provide CedarX libraries for Linux and so on. Also he
> left Allwinner months ago to start this project.
>
> You can write apps right now, we have drivers, SDKs/headers and etc., just
> read the wiki http://linux-sunxi.org/ and check the sources at
> https://github.com/linux-sunxi
>
> If you still not happy - go buy yourself a BeagleBone for 75euro+35euro
> shipping form Farnell and enjoy support from TI.
>
>
> 2013/1/12 George Ioakimedes <georg...@gmail.com>
>>
>> Well I'm not sure for what I want that it matters if the GPU source is
>> open. As long as you're able to write apps that take advantage of hardware
>> acceleration I won't complain too much.
>
>

George Ioakimedes

unread,
Jan 12, 2013, 12:42:39 PM1/12/13
to cubie...@googlegroups.com

+1 what Jon said, especially about nVidia, I hear from many developers how they hate them.

Gabor Molnar

unread,
Jan 12, 2013, 2:37:07 PM1/12/13
to cubie...@googlegroups.com
As like Linus said: "nVidia f*ck you!" :-)

2013/1/12 George Ioakimedes <georg...@gmail.com>:

john jones

unread,
Jan 12, 2013, 3:43:00 PM1/12/13
to cubie...@googlegroups.com
Thank you Jon for clarifying. It sounds like Allwinner doesn't want to support their products after digging through the XBMC information. This just will not work as a media player with hardware acceleration.

http://www.j1nx.nl/xbmc-allwinner-a10-update-5-last/

jons...@gmail.com

unread,
Jan 12, 2013, 4:14:00 PM1/12/13
to cubieboard
On Sat, Jan 12, 2013 at 3:43 PM, john jones <bdj...@gmail.com> wrote:
> Thank you Jon for clarifying. It sounds like Allwinner doesn't want to
> support their products after digging through the XBMC information. This just
> will not work as a media player with hardware acceleration.
>
> http://www.j1nx.nl/xbmc-allwinner-a10-update-5-last/
>

I don't have insight into the internals at Allwinner, but from what I
know Allwinner is not the party to blame. The problem company is the
developer of the Cedar VPU IP which Allwinner has licensed. That
company is refusing to allow the programming API to be published.
Allwinner is stuck in the middle. They want to release this API
documentation since it will sell more chips. Repeat this with
Mali400 and ARM, Inc.

The lesson Allwinner needs to learn is to never license this IP
without also securing rights to publish the programming API. Withhold
the licensing income from the IP house until they agree to release the
programming information.

This pattern has played out hundreds of times in the SOC CPU world.
SOC CPU ships. Developers start to program. Developers can't get the
hardware working (no doc or supplied blob doesn't function).
Developers complain to SOC manufacturer. SOC manufacturer complains to
IP house. IP house doesn't fix anything because their revenue is
coming from designing the next gen product and they don't care any
more about last gen. SOC CPU then slowly dies in the market place
since no one can get reliable software working on it.

The secrecy in graphics is caused by the idiotic patent system. All of
the graphics vendors are infringing on each other patents. That's
because there are too many broad patents existing in this hardware
field. So they hide everything to keep their competitors from
searching for patent infringement. Of course there are a bunch of
trolls too. I just signed a 10 page NDA (not for A10) of which about
eight pages detailed how none of the information being disclosed could
be used in patents suits. None of the information disclosed to me was
the least bit innovative, but it was necessary info for programming
their chips.

Henrik Nordström

unread,
Jan 13, 2013, 9:25:55 AM1/13/13
to cubie...@googlegroups.com
Mali-400 is only a GPU. It does not have media decoding capabilities.

Mali-600 adds some media decoding capabilities.

Regards
Henrik

George Ioakimedes

unread,
Jan 13, 2013, 12:28:12 PM1/13/13
to cubie...@googlegroups.com
So if the Mali-400 does not have media decoding capabilities is hardware accelerated video possible on the A10?

Michal Suchanek

unread,
Jan 13, 2013, 1:36:10 PM1/13/13
to cubie...@googlegroups.com
On 12 January 2013 17:38, jons...@gmail.com <jons...@gmail.com> wrote:
> On Sat, Jan 12, 2013 at 12:01 AM, Dmitriy B. <rzk...@gmail.com> wrote:
>> Are you serious right now?
>> You want $1M Mali-400 IP-Core & DDK to be open? Or probably somewhat same
>> value CedarX custom VPU engine built by Allwinner for their SoCs to be open
>> too?
>
> Obviously the silicon IP would not be open. What should be open is the
> software programming manual for the VPU/GPU. We don't want to clone
> the hardware, we want to write programs for the hardware we bought.
>
> Intel and AMD/ATI have finally released the programming manuals for
> the GPU's and the sky didn't fall. I wish the other GPU vendors would
> do the same. I have wasted countless hours on Nvidia drivers that
> didn't work with no ability to fix them, now I only run AMD/ATI or
> Intel hardware.

I don't know about Intel. They are actively developing their Linux
driver but it is not always very stable. Maybe the latest cards have
some non-trivial performace but all I used some time ago were really
weak for desktop cards.

As for Radeon docs for selected features of selected models of radeon
cards are available. Guess what? For parts that do have a media
enginge the docs about the media engine are *not* available. The cards
are powerful enough to decode video using shader programs, sure. But
the docs are not there and the sillicone designed for that purpose is
just dead sillicone. Also DMA engine docs are not available because
you could copy the decoded HDCP protected content or what. An AtomBIOS
blob is used for modesetting. The devs claim the modesetting works. On
all cards that I tried it's broken. It's like half a dozen so far.
Just unlucky they say. So unlucky that buying half a dozen cards none
works!

pffft

With that "fuck nVidia" approach it took way longer to get a driver
but today supposedly the cards have fully open driver including
firmware. No need to work around ancient firmware bugs. Cooperating
with a vendor like AMD? - broken driver, forever. The devs seem
cooperative and fix bugs and add features but when it comes to
fundamental bug that affects all cards they tell you you are "just
unlucky".

Hope that Lima makes it. Then A10 would be one of the few ARM SoCs to
get a real graphics driver.

Thanks

Michal

George Ioakimedes

unread,
Jan 13, 2013, 2:58:25 PM1/13/13
to cubie...@googlegroups.com
You lost me with "Lima", who/what are you referring to?

jons...@gmail.com

unread,
Jan 13, 2013, 3:02:01 PM1/13/13
to cubieboard
On Sun, Jan 13, 2013 at 2:58 PM, George Ioakimedes <georg...@gmail.com> wrote:
> You lost me with "Lima", who/what are you referring to?

Lima is the open source attempt at a driver for the Mali400 hardware.
http://limadriver.org/



>
>
> On Sun, Jan 13, 2013 at 10:36 AM, Michal Suchanek <hram...@gmail.com>
> wrote:
>
>> Hope that Lima makes it. Then A10 would be one of the few ARM SoCs to
>> get a real graphics driver.
>

George Ioakimedes

unread,
Jan 13, 2013, 4:03:37 PM1/13/13
to cubie...@googlegroups.com

Thanks, I wasn't aware of that effort. That's what is so painful about this stuff, info is spread all over the place!

Bastiaan van den Berg

unread,
Jan 13, 2013, 4:54:15 PM1/13/13
to cubie...@googlegroups.com
On Sun, Jan 13, 2013 at 6:28 PM, George Ioakimedes <georg...@gmail.com> wrote:
> So if the Mali-400 does not have media decoding capabilities is hardware
> accelerated video possible on the A10?

A10 has a core onboard called Cedar, its video decoder implementation is CedarX

I just got it working last night using that VLC port someone made.
See: http://linux-sunxi.org/VLC

The codecs seem a bit vague .. Xvid worked worse than h264, and WMV8
didn't work, but WMV9 did...
Haven't tried enough ..

--
Bastiaan

Simos Xenitellis

unread,
Jan 13, 2013, 5:18:23 PM1/13/13
to cubie...@googlegroups.com
On Sun, Jan 13, 2013 at 10:02 PM, jons...@gmail.com <jons...@gmail.com> wrote:
> On Sun, Jan 13, 2013 at 2:58 PM, George Ioakimedes <georg...@gmail.com> wrote:
>> You lost me with "Lima", who/what are you referring to?
>
> Lima is the open source attempt at a driver for the Mali400 hardware.
> http://limadriver.org/
>

Luc Verhaegen is leading the effort. It requires dedicated effort and
contributions from more people
to get a fully supported driver.

ARM has a website at http://malideveloper.arm.com/develop-for-mali/drivers/
At http://malideveloper.arm.com/develop-for-mali/drivers/mali-device-driver-model/
it mentions

«The Kernel Space Device Drivers are delivered through the Mali
Developer in source code form under various different open source
licences to allow system builders to integrate the Mali GPU and
drivers with the Linux and Android operating systems. The User Space
Libraries are __only available in binary form__ from the relevant SoC
manufacturer. The Kernel Space and User Space components are coupled,
so it is important versions of both match.»

The whole situation is not clear to me. Should be bug ARM to solve the
issue once and for all?

Simos

Simos Xenitellis

unread,
Jan 13, 2013, 5:27:12 PM1/13/13
to cubie...@googlegroups.com
To add to that, I am quoting from
http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-gpus-linux-exadri2-and-x11-display-drivers/

«Note that these components are __not a complete driver stack__. To
build a functional OpenGL ES or OpenVG driver __you need access__ to
the full source code of the Mali GPU DDK, which is provided under the
__standard ARM commercial licence__ to all Mali GPU customers. For a
complete integration of the Mali GPU DDK with the X11 environment
refer to the Integration Guide supplied with the Mali GPU DDK.»

So it's ARM that is controlling the full free software support of the Mali 400.

Simos

George Ioakimedes

unread,
Jan 13, 2013, 5:29:32 PM1/13/13
to cubie...@googlegroups.com

OK, that's good information. For me right now command line playing of h264 could work.

What image are you running?

Michal Suchanek

unread,
Jan 13, 2013, 5:33:41 PM1/13/13
to cubie...@googlegroups.com
On 13 January 2013 23:18, Simos Xenitellis <simos...@googlemail.com> wrote:

>
> The whole situation is not clear to me. Should be bug ARM to solve the
> issue once and for all?
>

You can try but I bet they would have solved it by now if they wanted.

Thanks

Michal

Henrik Nordström

unread,
Jan 13, 2013, 7:00:31 PM1/13/13
to cubie...@googlegroups.com
mån 2013-01-14 klockan 00:27 +0200 skrev Simos Xenitellis:

> So it's ARM that is controlling the full free software support of the Mali 400.

No. It's ARM that is controlling the full non-free software support of
the Mali 400, and our only access to that part is via the harware vendor
(i.e. Allwinner).

ARM have nothing to do with with the free software Mali effort.

Regards
Henrik

Bastiaan van den Berg

unread,
Jan 13, 2013, 7:20:40 PM1/13/13
to cubie...@googlegroups.com
On Sun, Jan 13, 2013 at 11:29 PM, George Ioakimedes
<georg...@gmail.com> wrote:
> What image are you running?

I started with http://dl.linux-sunxi.org/rellla/debian-unstable-armhf.tar.bz2
with most recent hwpack, but ended up now with selfbuilt kernel,
modded script.bin and heavily tweaked debian install...

When i redo this properly I will packaged the rootfs up around the start :)

--
Bastiaan

Dutchy

unread,
Jan 14, 2013, 1:15:57 PM1/14/13
to cubie...@googlegroups.com, simos...@googlemail.com
Responding to the question if H/W ascelleration is possible:

I installed MX Player on the pre-installed Android. There it is possible to select H/W or S/W decoding. Yes H/W decoding works.

Not sure were NEON stands for. In the Apps description they refer to NEON and not to Mali-400. So not sure what does the H/W decoding trick.

Cheers,
Dutchy.



George Ioakimedes

unread,
Jan 14, 2013, 1:20:26 PM1/14/13
to cubie...@googlegroups.com
Do you think this means if I use buildroot to create a NAND image and install mplayer I can get HW accelerated video playback?

jons...@gmail.com

unread,
Jan 14, 2013, 1:35:00 PM1/14/13
to cubieboard, simos...@googlemail.com
NEON is the SIMD floating point unit contained in an ARM Cortex CPU.
It is like MMX/SSE on the x86.

Cedar VPU is a MPEG encode/decode accelerator

Mali GPU is a OpenGL|ES accelerator.

>
> Cheers,
> Dutchy.

Bastiaan van den Berg

unread,
Jan 14, 2013, 3:27:22 PM1/14/13
to cubie...@googlegroups.com
On Mon, Jan 14, 2013 at 7:15 PM, Dutchy <crow...@gmail.com> wrote:
> I installed MX Player on the pre-installed Android. There it is possible to
> select H/W or S/W decoding. Yes H/W decoding works.

Afaik what MX player actually means is that its using HW accelerated
decoder, installed by MX player.

Cubie can do better :)

> Not sure were NEON stands for. In the Apps description they refer to NEON
> and not to Mali-400. So not sure what does the H/W decoding trick.

Neon is like MMX or SSE for x86, an extension on the general purpose CPU.

Cedar is the core inside Allwinner A10 actually ment to decode video.
This can be used with CedarX using libraries, like the VLC one I
linked earlier.

I have no idea about CedarX inside Android, anybody?

--
Bastiaan

Simos Xenitellis

unread,
Jan 14, 2013, 3:40:32 PM1/14/13
to cubie...@googlegroups.com
I meant to say that ARM is the standing block in having proper full
free software support.
ARM indeed is not assisting the Lima driver effort, and reverse
engineering by the Lima driver volunteers takes time and effort.

I am contacting them at
http://malideveloper.arm.com/engage-with-mali/contact-us/

Simos
Reply all
Reply to author
Forward
0 new messages