PDA

View Full Version : 'Alpha channel' on Indeo


niceguydave
18th June 2002, 03:35 PM
There is a video codec called Indeo which is pretty widespread, probably as a result of being published by Intel. This is a quote from their site http://indeo.ligos.com:


"The Indeo video codec supports... transparency. During encoding, a compression application can send information to the codec describing a color or range of colors that represent a transparent background (such as the blue wall in the meteorologist example). Indeo video 5 then analyzes each frame, separates the background pixels from the foreground, and makes the background pixels transparent, encoding only the foreground objects as compressed video.

The Indeo video 5's transparency encoding is flexible, allowing for arbitrarily-shaped multiple foreground objects. Foreground objects can also move from frame to frame, allowing you to create what might be called video sprites. Video sprites are transparent video objects that can overlay other video or bitmap backgrounds. During playback, foreground objects can be composited dynamically over different backgrounds. For example, the meteorologist can appear over different weather maps on PCs with sufficiently powerful Pentium processors. A foreground object can even appear over another video stream, as in the case of a tornado."


So it's basically a codec with a built-in automatic alpha channel. Unlike an alpha the transparency appears to be permanently applied, but the possibilties of use with VJ softs are immense. Has this been tried and discarded? What do the developers here think?

Dave

sleepytom
18th June 2002, 04:46 PM
its quite troublesome
I've not found any sencible way of making indeos with an alpha channel - i've had a quick look at the help but couldn't get it to work in premiere (it doesn't work like uncompressed does where you simply set the colour depth to be 32bit - rather it anilizes the video and trys to create an alpha channel based on what it percieves as the background based on the first frame) also as far as i know no software supports alpha channels yet so its possibly a bit next generation

robotfunk
18th June 2002, 08:11 PM
Yes its frustrating.. the alpha in indeo isnt a proper alpha channel, more of a mask. It would be nice if video formats and more programs supported alpha. I think people generally use sequentially numbered targas (tga) when they need alpha.

Lacking a format that does proper alpha, I made a hack in flowmotion that generates an alpha layer on the fly by copying a greyscale version of the image to the alpha layer. Not a real alpha layer but still fun.

infopocalypse
19th June 2002, 01:02 AM
luminance key than alpha layering. We're working on alpha @ the moment, as well as luminance/chrominance... oogles of fun but once we're done with that then it breaks down the wall to another hundred filters and combinations... plus then we can do quite a few interesting things, like fully emulate a video mixer or use irregular shapes. Resolume cheats on this big time, using something closer to an if statement on a mask (their custom transition).

If (this bit on the mask < luminance) then source 1, else source 2

However creating a luminance fade (which we're working on) would be incredibly cool, as it would allow the same functionality as the above in a chain, as well as some interesting coolnesses:

i.e. you could actually jerry-rig emulation of an MX-Pro's shape transitions. A single bitmap of a star, one color black one color white, luminanced faded and chained and BAM. With this an a true rasterization algroithmn, custom built, you can fully emulate every VJ app on the market.

We'll definately have all of them, how long it takes to make is another question, but once we have them... :-)

P.S. Robotfunk: downloaded FlowMotion's demo last night... not bad.

P.P.S: am currently talking about implementing that luminance gradient filter we tiff'd about earlier.

yoy
19th June 2002, 08:40 AM
softimage XSI can save alpha channel and also z buffer, but it's save it in list of picture. we need to find a converter that don't loose alpha chan...

robotfunk
19th June 2002, 08:53 AM
yeah being able to do luma keying is one of the main reasons I added 'generate alpha' hack in flowmotion. luma keying is fun. I'm working on being able to use different images/movies for the 'alpha' , ie not derived from the movie itself.

Nema
5th October 2002, 08:28 PM
whow thats really interesting!

also the "video access protection" seems to be an important thing for professional vjs (protecting your avis with a password).

no wonder you coudln't take an advantage of thei bluescreen-feature, that's because you can only access as coder.

i will try to implement this for the visualJockey avi-player plugins(and proove once more that visualJockey is on top! :-))

infopocalypse
6th October 2002, 08:49 AM
Actually...

Ok personally I've become a little obsessed with fast Alphas... so far ours is down to something like about 30 opcodes/4 pixels, which is still pretty fast and I think I'll be able to beat it down to 20/4, but our chroma alg which can also do a luma is 6/4 or 5/4 for exacts... so I'm guessing your luma-alpha hack is something involving two lumas and then recombinance... which is where I'm hitting problems... this is an open programmers challenge to make an extrodinarily fast alpha... but if we do this the best method will private emails/chats and shared patency.

Anyone game?

James

Nema
6th October 2002, 02:07 PM
visualJockey features multiple ways for chroma-keying, hard to say how many cpu-cacles per pixel. the only thing i can say is that it works with about 30fps in 800x600 together with compley background realtime-effects.

but the importance about keying live-videostreams is that you deal with flickering video-input, and you must do someting more clever than just tracking a color x.

however, indeo offers a completely new way of chroma-kaying because it features an in-line chroma-keying-decompression, probably with some clever algoright inside (FFT i suppose) to even care about non-constant flicker-colors and artefacts.

infopocalypse
7th October 2002, 08:29 AM
The 5/4 chroma is a specific color... the 6/4 is a 1 key range, a 2-key range, which I haven't yet written, would be 7/4.

To give an idea of speed on this: For a ranged chroma, @ 800 by 600 by 30 fps

21,600,000 cycles or 21.6Mhz dedicated to task... this is also @ true 800/600 resolution, which would be uncommon and rare. At common resolution:

740/480 (DV)

15,984,000 cylces ~ 16 Mhz

640/480

13,824,000 cylces ~ 13.9 Mhz

320/240

3,456,000 cycles ~ 3.5 Mhz

In other words all of these on your average off the shelf Ghz system have about 950 Mhz + Hardware to figure out any other effects.

James