[Bug 721701] New: Performance penalty for videoscale and I420 to BGRA for 1.2.0-1.2.2 and common ubuntu
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Tue Jan 7 05:13:56 PST 2014
https://bugzilla.gnome.org/show_bug.cgi?id=721701
GStreamer | gst-plugins-base | 1.2.2
Summary: Performance penalty for videoscale and I420 to BGRA
for 1.2.0-1.2.2 and common ubuntu
Classification: Platform
Product: GStreamer
Version: 1.2.2
OS/Version: Linux
Status: UNCONFIRMED
Severity: major
Priority: Normal
Component: gst-plugins-base
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: pmaersk at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
It appear that version 1.2.0-1.2.2 and perhaps previous versions introduce a
dramatic performance penalty for video scaling and video format conversion of
I420 to BGRA when compared to version 0.10.36. This performance penalty is
present for common Ubuntu installations ranging from 12.04 until 13.10 as well
as with a newly build version of GStreamer 1.2.2 with orc-0.4.18. It is checked
that Orc is enabled when building gst-plugins-base.
The following examples are all executed on Ubuntu 13.10 with GStreamer 1.2.2
for version 1.0 and GStreamer 0.10.36 for version 0.10. The system is a dual
Xeon Quad core configuration with a total of 8 cores.
First we create two test samples of 60 seconds each (just hit ctrl-c after
running 60 seconds:
$ gst-launch-1.0 -e -v videotestsrc pattern=18 is-live=true ! 'video/x-raw,
width=1024, height=576, format=I420' ! videoconvert ! x264enc ! 'video/x-h264,
profile=main' ! avimux ! filesink location=video1024x576.mp4
$ gst-launch-1.0 -e -v videotestsrc pattern=18 is-live=true ! 'video/x-raw,
width=1280, height=720, format=I420' ! videoconvert ! x264enc ! 'video/x-h264,
profile=main' ! avimux ! filesink location=video1280x720.mp4
Now we start top in another window to check cpu load and try decode and convert
the latter file with 0.10 and 1.0
$ /usr/bin/gst-launch-0.10 -v filesrc location=./video1280x720.mp4
do-timestamp=true ! decodebin2 name=decoder ! ffmpegcolorspace !
'video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321,
red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216,
width=(int)1280, height=(int)720' ! queue ! fakesink silent=true sync=true
and
$ /usr/local/bin/gst-launch-1.0 -v filesrc location=./video1280x720.mp4
do-timestamp=true ! decodebin name=decoder ! videoconvert ! 'video/x-raw,
format=(string)BGRA, width=(int)1280, height=(int)720' ! queue ! fakesink
silent=true sync=true
On my system, the 0.10 version will happily run at roughly 24-25 % CPU load
while the 1.0 version runs at roughly 51%
Now we add videoscaling by using the first file we created and scale it before
converting it:
$ /usr/bin/gst-launch-0.10 -v filesrc location=./video1024x576.mp4
do-timestamp=true ! decodebin2 name=decoder ! videoscale ! ffmpegcolorspace !
'video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321,
red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216,
width=(int)1280, height=(int)720' ! queue ! fakesink silent=true sync=true
and
$ /usr/local/bin/gst-launch-1.0 -v filesrc location=./video1024x576.mp4
do-timestamp=true ! decodebin name=decoder ! videoscale ! videoconvert !
'video/x-raw, format=(string)BGRA, width=(int)1280, height=(int)720' ! queue !
fakesink silent=true sync=true
On my system, the 0.10 version will happily run at roughly 33-34 % CPU load
while the 1.0 version runs at roughly 101%
Here is what I see when building the plugin base:
configure: *** Plug-ins without external dependencies that will be built:
adder
app
audioconvert
audiorate
audioresample
audiotestsrc
encoding
gio
playback
subparse
tcp
typefind
videoconvert
videorate
videoscale
videotestsrc
volume
configure: *** Plug-ins without external dependencies that will NOT be built:
configure: *** Plug-ins that have NOT been ported:
configure: *** Plug-ins with dependencies that will be built:
alsa
cdparanoia
ivorbisdec
libvisual
ogg
pango
theora
vorbis
ximagesink
xvimagesink
configure: *** Plug-ins with dependencies that will NOT be built:
configure: *** Orc acceleration enabled.
So I assume Orc acceleration for video scale and videoconvert is enabled.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list