[theora-dev] Support for layers and alpha channel?

Dennis SCP dennis.scp at SoftHome.net
Fri Mar 26 11:31:59 PST 2004

Ralph Giles heeft op woensdag, 24 maa 2004 om 18:06 (Europe/Amsterdam) 
het volgende geschreven:
>> Underneath It All
>> Remember the No Doubt video where the singer straddles and orgasms and
>> blinks of screen (to that happy place:-) to quickly return back on
>> screen? Perhaps it would easier for the codec if she would be on a
>> layer that simply jumps behind the background layer. Perhaps even more
>> so if the motion in that layer can be frozen in time and continue when
>> it is brought back to the front.
> While this sort of thing would help compression in this particular 
> case, such sequences are rare
> and it's not worth adding special case support for them. What you're 
> describing is a non-linear
> transition between two streams. From a technical point of view, this 
> belongs at a level above the
> Ogg transport stream, which only supports linear media, in something 
> like a SMIL file
> (http://www.w3.org/AudioVideo/). If we supported 'blinks' to an 
> alternate stream, why not the much
> more common fade and dissolve? Then wipes, weaves, of course jump 
> cuts, and so on? In an efficient
> design these things are of a package.

Why not support the furniture wipes as seen in Home Improvement? :-)
Just like you don't need to ask if a color video codec supports water 
or fire effects, you don't need to ask what types of transitions are 
possible between a movie with alpha channel and its background (video). 
Both answers are any effect that is in the movie.

An alpha channel is created (automatically) in editing software like 
Apple Final Cut Pro, and more complex in Apple Shake.

As for a video codec:
1 Once you have synchronized video layers support
2 You get alpha channel support for free (because that is done by the 
3 Once you have alpha channel support you have unlimited transition 
variety (because that is an inherent trait of alpha channel video)

An alpha channel is nothing more then a grey scale picture or frame 
which is used by the player as a transparency layer. White means 
transparent, black means solid and at 8 bit you have 256 steps to fool 
the eye into thinking that it is fluent.

You don't say in a video stream 'hard swipe transition left to right', 
no the alpha channel does that: the greyscale movie shows white filling 
the screen from left to right, revealing what is underneath (another 
movie, or scene, or the black background of the player, or the 
background of a desktop or a website). A completely white alpha channel 
means the movie is 100% transparent, you can stop streaming it. 
Actually you don't even have to clean up the mess, the video just can't 
be seen. It also means that if you use a 8 by 8 pixel coding, you don't 
care or code any information when any 8 by 8 pixel square has a white 
alpha channel.

You can also save some bandwidth because you don't have to stream or 
code what is 100% transparant and invisible.

Therefore it is important to have the codec support complete 
synchronisation between (at least) two video streams / frames; color 
video and its greyscale alpha video. You don't want a bright background 
color piercing through because the synchronisation is a frame off or 
the alpha video has white artifacts from encoding.

So I was wondering if this group is:
- working on and testing synchronous playback
- optimizing a grayscale movie encoding
- testing both in a alpha channel aware player

And if so is seeing any speed/space advantage in the examples I gave 
(which I agree some maybe implemented in the higher end of the complete 
multimedia package)

Dennis SCP
PS: the singer in the example would not move to the background (which 
maybe how I confused everybody) but would become 100% transparent 
because of the alpha channel video that would be part of the layer 
featuring the videorecording of the singer. Ther would be no actual 
transitions be made by the player, just playing multiple synced video 

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'theora-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

More information about the Theora-dev mailing list