GAPI Video Render Performance on Windows Mobile


I am developing a DTV playback software running on Windows Mobile.

I used an ARM optimized H264 decoder (from a Professional codec vendor), and
process AV sync and SDL video/audio render by myself.

Thanks to, it is a very good guide to handle
these stuff.

Now the software works on Windows Mobile Phone (I use a HTC touch diamond
with Qualcomm ARM11 inside), except CPU seems overloaded for both H264
decoding and Video Rendering. I have to drop some decoded frames from time
to time to keep AV synchronized, so that the user experience is bad.

I checked and make sure Hardware YUVOverlay is not supported on this ARM11
based qualcomm platform. So I use GAPI which is already well supported by
Considering H.264 decoder is ARM optimized, I think what 's left to optimize
should be video render.

In a few details, it includes:

– YUV2RGB (YUV420 to RGB565)
– Scale (2x , this HTC touch features VGA resolution screen)
– Rotation (to Landscape, DTV H264 video is 320 * 240 )
– copy processed YUV data into video framebuffer

The current SDL implementation of YUV2RGB is well optimized by lookup

I have no idea whether the algorithm for other steps can still be optimized
much for ARM.

Hope anyone can input something.

What’s worth mentioned is I have tried another commercial playback software
(incl. decoding/av sync/av render ) on the same mobile phone, the
performance is really amazing , even a lot of CPU MIPS still available.
Hard to figure out how they can make it.

Thanks in advance.
I am not English-native and hope you can catch me. I may explain more for
anything unclear.