[Kdenlive-devel] XML representation for effects.

Dan Dennedy dan at dennedy.org
Mon Mar 15 17:47:05 UTC 2004


On Mon, 2004-03-15 at 10:54, Jason Wood wrote:
> On Saturday 13 March 2004 20:46, Dan Dennedy wrote:
> > P.S. You guys should take a look at the luma transition in Kino's timfx
> > plugin for a generic, extensible wipe processor. It applies a time
> > varying threshold filter over the luma channel of an image (grayscale
> > bitmap) to determine which parts of clip A vs B to use. You can get
> > download additional luma maps from http://mlt.sf.net/ Warning: my bar,
> > bardoor, and box wipe collections are 16bit PGMs, which can not be read
> > by many apps (try 'display' from ImageMagick). I do not recommend the
> > partial.tar.bz2 as it was created in Photoshop with dithering enabled,
> > which produces dirty edges.
> 
> That sounds cool. 
> 
> I haven't looked at the code but if your description above is correct, here 
> are two thoughts on how to make it a more generic effect :
> 
> The first is to make the time-varying threshold variable a simple scalar value 
> that relies on something else to keyframe it. A simple linear keyframing from 
> 0-1 would then provide the current threshold filter effect, but  a non-linear 
> keyframing would give more control over the effect.

In mlt, we actually do have keyframable "progress" in our composite
transition where the wipe is combined with the alpha channel of the B
frame combined with positioning and scaling. We do not yet have generic
keyframable parameters; only composite is at the moment.

> My second thought - make the grayscale bitmap into a third video input to the 
> effect (that can still be a bitmap), then we can have some funky wipes that 
> move about while transitioning between the two videos :-)

I thought about this, but determined that it is not practical enough
because the results are too unpredictable as time is already represented
by the grayscale levels of the map. However, in mlt, we do support
anything that can produce a YUV image, where we simply use Y with
appropriate luma value offset and scaling, in addition to 16bit PGM
support. I simply do not ask this yuv producer to seek. For example, we
have a gdk-pixbuf producer, and there is a librsvg pixbuf loader
commonly available. So, one can use simple to author SVG to define
wipes. However, one must bear in mind that the luma wipe maps are
spatial too. So, a yuv producer can only produce 220 levels (16-235) 
and the resulting image will have more banding resulting in less
effective spatial resolution when the threshold is applied.

Also, if you have not noticed, there is a softness parameter on this
effect that is very useful. Basically, with a softeness applied, the
threshold has two levels or edges to evaluate against. If the current
"progress" value falls between the edges, then a resultant alpha level
is interpolated between the edges.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://mail.kde.org/pipermail/kdenlive/attachments/20040315/1a2b5070/attachment.sig>


More information about the Kdenlive mailing list