On Friday, July 15, 2016 4:27:04 AM CEST, Brian Matherly wrote:
> JB,
>
> I think this optimization could be made in frei0r.cairoblend.
>
> Could you compare the performance of frei0r.cairoblend with 
> transition_qtblend when the top frame has transparency?
>
> Seems like the transition_qtblend would be worth keeping 
> regardless of whether its performance is better.

I did make some further optimisations to my qtblend transition, and 
performance seems quite similar to cairoblend when doing a composite 
operation.

qtblend can easily be modified to also use opacity and affine like 
transformations by applying a QTransform to the QPainter.

I did spend some more time looking at cairoblend, composite and affine 
transitions though, and here are my quick thoughts:

* composite transition: like Dan said, using the Kdenlive's monitor zoom I 
can clearly see the luma  bleed

* affine transition: when used as a filter, it does not correctly handle 
alpha channel (see picture in http://j-b-m.ch/affine-bug.png ). I tried to 
fix it but non trivial to fix for all cases

* frei0r.cairoblend: if we want to optimize it as I did for qtblend, it 
would require modifications to transition_frei0r.c, since this helper 
always requests RGBA images for the A and B frames. Making it retrieve only 
B frame if it has no transparency does not seem easy since as Dan noted 
some frei0r transition might want to use A frame even when B frame is fully 
opaque, so it would require some kind rules depending on which 
transition/parameters.

So in conclusion, despite the fact that I agree it's better to fix the 
problems rather than adding a new solution, in this case - thinking about 
Kdenlive - I think the best option would be to enhance my current 
implementation of qtblend to allow affine like transform and use it as a 
replacement for composite/affine/cairoblend in Kdenlive.

Regards
jb









------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel

Reply via email to