[PD-dev] call for discussion: native video for Pd
Christian Klippel
ck at mamalala.de
Sat May 27 20:02:12 CEST 2006
hello miller,
Am Samstag, 27. Mai 2006 19:40 schrieb Miller Puckette:
> To Pd developers,
>
[...snip...]
>
> To begin with at least, I'm hoping to be able to do all video operations
> except storage using floating-point numbers, thereby re-using the usual
> tilde objects. The disadvantage of this approach is that, if you want to
> "sample" an image, to get decent cache behavior you'd want the possibility
> of storing it in a data-reduced way, as 8-bit integers or perhaps using
> YUYV packing. (for example, a 512x768 color video frame takes almost 5MB
> to store in floating point, but only about 0.7 MB in 8-bit YUYV.)
>
> So there will probably have to be a suite of new objects for storing 2D
> arrays in fixed point formats, variously trading off memory compaction with
> processing time needed to get the data in and out. There will probably
> also want to be a choice of interpolation strategies. Probably the design
> can look like the
> table/tabwrite/tabread/tabread4/tabwrite~/tabread~/tabread4~ objects.
>
uhm .... are you sure about that? first, it doesnt make much sense to use
floats on images. signed 16 bit integers would be _more_ than sufficient to
represent a colour channel in a pixel. even film footage doesnt have that
dynamic range.
using floats would make _every_ processing of video in realtime almost
impossible, at least on current machines. its just too much data if you
really want to do some f/x and stuff with it.....
secondly, what do you gain by _storing_ them in the native format, but
_using_ them as floats? exactly nothing, instead you have the big penality of
converting back and forth each time. add to that the fact that ram prices are
really low, so there is no problem anymore to put 2 gigabyte or more into
your computer.
instead it could pass a void* pointer to the data, that gets casted by the
processing object to the format it has, and at the same time supplying an
additional field, like a struct streaminfo{ width, height, current_pos,
format, whatever.... } that gets evaluated then .... this would also allow
for streams with different sizes to be used. imagine a stream of a 768x576
video where you add a 320x240 image ....
[...snip...]
> ideas and opinions welcome!
>
> cheers
> Miller
>
that was my 0.02 euro-cent .... ;)
greets,
chris
> _______________________________________________
> PD-dev mailing list
> PD-dev at iem.at
> http://lists.puredata.info/listinfo/pd-dev
More information about the Pd-dev
mailing list