I420 to BGRA unaccelerated/unoptimized on ARM?

Nicolas Dufresne nicolas.dufresne at collabora.com
Fri Aug 8 05:42:08 PDT 2014


Le vendredi 08 août 2014 à 11:49 +0200, Peter Maersk-Moller a écrit :
> Hi.
> 
> 
> I'm running GStreamer 1.5 Git Master on ODroid-U2 (4 core ARMv7 with
> Neon). It should be ORC enabled as far as I know.
> 
> When I try to use videoconvert for converting I420 to BGRA I see an
> excessive CPU load. Is that to be expected? Can we expect any
> significant improvement in a near future?
> 
> 
> This is the baseline pipeline I run to see the load:
> 
> gst-launch-1.0 videotestsrc is-live=true !
> 'video/x-raw,width=1280,height=720,format=I420' ! queue !
> videoconvert ! fakesink sync=true
> 
> 
> I see a CPU load of approx. 45%. A bit higher than expected though.

This is expected overhead of videotestsrc.

> 
> 
> This is the pipeline with the I420 to BGRA conversion
> 
> gst-launch-1.0 videotestsrc is-live=true !
> 'video/x-raw,width=1280,height=720,format=I420' ! queue !
> videoconvert ! 'video/x-raw,format=BGRA' ! fakesink sync=true.
> 
> 
> I now see a CPU load of 141% and even suspect it may not run at
> framerate though I can be wrong.
> 

This is reasonable considering the slow memory bandwidth of the U2. The
CPU is mostly waiting on that from what I remember. Should should
consider using the HW accelerated converter, see gst-inspect-1.0
video4linux2 for complete list of HW accelerated elements. And an
example:

gst-launch-1.0 videotestsrc ! v4l2video10convert ! fakesink.

cheers,
Nicolas



More information about the gstreamer-devel mailing list