[Kdenlive-devel] real-time preview?
Rolf Dubitzky
dubitzky at pktw06.phy.tu-dresden.de
Tue Nov 26 13:03:07 UTC 2002
Hi Reinhard,
On Tuesday 26 November 2002 01:22 pm, Reinhard Amersberger wrote:
> since my opinion is 'to have a real-time preview is the most important
> feature' I would like to ask you if kdenlive will be able to do that.
of course the goal is to have real time preview, but there are many steps
towards this goal.
> AVID impressed me VERY MUCH in this matter, because this tool offers you a
> real 'real-time preview'.
>
> For example, you put a transition between two clips, position your curser
> before this and hit space to start play and AVID show you DIRECTLY the
> result in a very high quality. And my machine isn't very fast, it's just an
> 1,2 GHz Athlon with 528 MB RAM!
1) piave is designed for _absolut_ minimum memcopy and optimal reuse of frame
buffers. The tree like approach makes it possible to render all effects 'in
place' where this is possible at all. This part is well designed (IMHO) and
operational. Only thing I can think of is a z-buffer like algorith to
discover parts of the underlying image which do not have to be rendered at
all. This is not in planning.
2) The effect algorithms themselves are mostly unoptimized. I am sure with a
little thought it is possible to improve their speed by factors between 1.1
and 100 ;-)
3) piave cannot display simple DV in realtime. even kino can't on my PC but
kino is much faster. piave does not use xv X-extension to display and libdv
is not a very fast decoder.
4) Right now, it does not much of a difference if I just display a video or if
I compute AlphaBlend / ShiftIn / framedecor / etc. filters. I canclude, that
we will be able to all this in realtime with no problem. Scaling for PicInPic
takes a bit, but I use gdk-pixbuf, which is _not_ optimized for this purpose.
My priority list is as follows and is subject to change and discussion:
1) Have any effects at all. No real time.
- I have some, most are proof-of-concept but need a finish (hint;-)
( e.g. shift in can only shift in from top, not from bottom, which is
trivial to implement etc.)
2) Be able to display DV video in realtime.
- right now, we cannot even play DV _without_ any effect
in realtime. I am working on libavcodec IFace. For writing this seems
doable and for reading it needs some work. dv decoding lin libavcodec
is maybe faster than in libdv but maybe poorer quality. When they
support audio it might be an option.
3) Prerender complex effets to a cache.
- given 2) we then can display in RT
4) Extend the render engine for different layers of
effect quality (I already though about this extension when
designing the who;e thing, it's no problem)
- every effect will then be available in different qualities, where
lower quality means faster. One can think of:
- lowest: use if not in cache
- medium: use to prerender to cache
- high: use for final production
especially -lowest is very challenging. I can think of all kinds of
OpenGL for your brand new 1024bit 2GHz 512MB graphic card.
I have no clue about GL, any help is welcome. If nobody steps up when
the time for this optimization comes, I plan to steel shamelessly from
jahkashaka as long as they are still GPL.
The effect does not necessarily need to look exactly the same. E.g.
I just implemented the text effect, and when using a dynamic effect
(changing size, rotation, glow, etc..) I have to rerender each letter
for every frame. for preview I could just render them once and cach the
bitmap as I do for static text effects.
Thoughts? Comments?
Cheers,
Rolf
***************************************************************
Rolf Dubitzky
e-mail: Rolf.Dubitzky at Physik.TU-Dresden.de
s-mail see http://hep.phy.tu-dresden.de/~dubitzky/
***************************************************************
More information about the Kdenlive
mailing list