[Libva] Add coefficients yuv to rgb conversion

Gilles Chanteperdrix gilles.chanteperdrix at xenomai.org
Fri Nov 6 12:37:08 PST 2015


On Thu, Nov 05, 2015 at 10:23:58PM +0000, Emil Velikov wrote:
> On 5 November 2015 at 21:00, Gilles Chanteperdrix
> <gilles.chanteperdrix at xenomai.org> wrote:
> > On Thu, Nov 05, 2015 at 02:13:29PM +0000, Emil Velikov wrote:
> >> On 4 November 2015 at 00:54, Gilles Chanteperdrix
> >> <gilles.chanteperdrix at xenomai.org> wrote:
> >> > On Tue, Nov 03, 2015 at 04:56:14PM +0000, Lionel Landwerlin wrote:
> >> >> Hi,
> >> >>
> >> >> Following your comments on the previous patch, here is an serie to add
> >> >> support for coefficients passed down to the EUs for the vpp yuv to rgb
> >> >> conversion path.
> >> >
> >> > Hi,
> >> >
> >> > sorry for intruding on the mailing list, but this is a topic on
> >> > which I worked recently. First question is: I implemented yuv to rgb
> >> > conversion using GLSL shaders (only for yuv420p, but this could be
> >> > easily implemented for other pixel formats), and the code is
> >> > relatively simple:
> >> > https://git.click-hack.org/vplayer.git/tree/lib/yuv420p_frag.glsl
> >> > What is the gain of using libva instead?
> >> >
> >> I'm no expert in the libva code so take this with a grain of salt.
> >>
> >> For doing things the GLSL way - you have an extra GL context
> >> creation/management not to mention the overhead of
> >> parsing/compiling/linking etc the GLSL shader. While the result (from
> >> a hardware's perspective/instructions emitted) may be almost
> >> identical, doing things within i965 libva driver should be less
> >> CPU/memory intensive.
> >
> > Well, compiling/linking the GLSL shader happens only once at
> > initialization. The advantage I see with a GLSL shader is that it
> > looks more portable, OpenGL with GLSL is almost universally
> > available, whereas libva runs on Linux only.
> >
> If you're looking for a cross-platform (*nix, Windows, OSX) solution
> then obviously libva won't cut it. There are plenty of projects that
> do colour transformations in GLSL. If you're on a platform that works
> with libva (should be most *nix) then keeping this within the actual
> backend (driver) is the way forward for the above mentioned reasons.
> 
> So you balance things out and pick the one that suits you :P
> 
> -Emil
> P.S. Working on Mesa (and its GLSL compiler) I can tell you that the
> overhead is not trivial ;-)

Ok, thanks for the clear answer. I guess what I would like is access
to shaders in libva without GLSL for things such as zooming/cropping
and blending sub-titles, then.

-- 
					    Gilles.
https://click-hack.org


More information about the Libva mailing list