This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Which Mali packages are required for the best graphic performance of video playing on Direct FB?

Hi,

I have few basic questions about Mali packages.

Please understand my lack of understanding in this field.

My company designed a new board in purpose of playing HD videos on Linux DirectFB envionment.
And the video player would may be VLC player.

In my case which packages are required for the best graphic performance?

OpenGL ES can enhance the graphic performance?

Does it because fbdev uses 3D APIs?

If 3D APIs are not required, can I replace OpenGL ES with OpenCL?

Additionally do I need to port OpenCL to enable NEON? Or NEON can be utilized without OpenCL or OpenGL ES?

PLEASE please help me.

Project time schedule is quite desperating..

Thank you.

Parents
  • Hi Moonami,

    NEON is a co-processor and the only requirement is that you have compiler support to be able to compile code which uses it. NEON has no dependency on any APIs, and works the same as SSE on Intel, for example. Write NEON in either assembly or intrinsics, or use a vectorizing compiler, and it will run on any processor with NEON.

    OpenGL ES is a 3D graphics API, and OpenCL is a compute API. Both use the GPU to accelerate workloads, but only for applications which target the API (VLC probably does not, but ffmpeg can optionally be built with OpenCL support for some filters https://trac.ffmpeg.org/wiki/HWAccelIntro)

    In the case of VLC, I don't believe OpenGL ES or OpenCL are necessary at all for video decode. I'm not familiar with exactly how VLC works, but my money would be on it using ffmpeg, or OpenMAX (or ffmpeg uses OpenMAX) or something along those lines to decode the video. OpenMAX is an API which grants access to hardware blocks designed specifically for decoding video, so if your SoC has such hardware there should be a userland library, possibly OpenMAX, providing access to it, but this is treading into territory I'm not so familiar with.

    Hope this helps,

    Chris

Reply
  • Hi Moonami,

    NEON is a co-processor and the only requirement is that you have compiler support to be able to compile code which uses it. NEON has no dependency on any APIs, and works the same as SSE on Intel, for example. Write NEON in either assembly or intrinsics, or use a vectorizing compiler, and it will run on any processor with NEON.

    OpenGL ES is a 3D graphics API, and OpenCL is a compute API. Both use the GPU to accelerate workloads, but only for applications which target the API (VLC probably does not, but ffmpeg can optionally be built with OpenCL support for some filters https://trac.ffmpeg.org/wiki/HWAccelIntro)

    In the case of VLC, I don't believe OpenGL ES or OpenCL are necessary at all for video decode. I'm not familiar with exactly how VLC works, but my money would be on it using ffmpeg, or OpenMAX (or ffmpeg uses OpenMAX) or something along those lines to decode the video. OpenMAX is an API which grants access to hardware blocks designed specifically for decoding video, so if your SoC has such hardware there should be a userland library, possibly OpenMAX, providing access to it, but this is treading into territory I'm not so familiar with.

    Hope this helps,

    Chris

Children