Orc and conversion from I420 to BGRA/RGBA

Peter Maersk-Moller pmaersk at gmail.com
Tue Jun 21 14:17:13 UTC 2016


Hi.

Noticing that conversion from I420 to BGRA and RGBA still uses different
amount of CPU with conversion to BGRA being the fastest (lowest CPU load).

Looking into gst-plugins-base-1.8.1/gst-libs/gst/video/video-converter.c I
have identified the Orc enabled function video_orc_convert_I420_BGRA() used
for converting to BGRA, but I can't seem to find the similar function for
RGBA. What function is used for conversion to RGBA?

Is there a quality difference in color quality between converting I420 to
BGRA respectively RGBA ? I seem to remember mentioned the "fast path
conversion" for I420 to some variant of RGB/BGR. Is fast path conversion
the video_orc_convert_I420_BGRA() ?

In case there is a color quality difference between fast path conversion
and non fast path conversion (slow/normal path conversion?), is it the
possibly to quantify this difference either specifically or loosly (like a
little degradation, a lot, about 10% or these color ranges gets wrong etc) ?

Looking into the Orc code for video_orc_convert_I420_BGRA(), I see this can
be modified to convert to RGBA with just copying the
video_orc_convert_I420_BGRA() function and then make it save in another
order for the color components. Wouldn't that be a low hanging fruit for
GStreamer since the conversion, as it is now, can be done in almost half
the time for BGRA compared to RGBA .... or is there a quality aspect I
don't now about, making the current conversion to RGBA preferred?

best regards
Peter Maersk-Moller
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160621/b1206a3c/attachment.html>


More information about the gstreamer-devel mailing list