[Theora-dev] Re: [ogg-dev] OggYUV
jkoleszar at on2.com
Tue Nov 8 09:36:44 PST 2005
>We will only be doing [A]YUV ordered planar encoding, no other order, not
>packed using one of several methods. You're right, there's simply too many
>different possibilities, and the software implementation is too complex.
>This is primarily an interchange format, something that the Theora codec can
>output for the media player to receive, or the webcam can send to Theora to
>encode, or raw video to be stored in such that it can be encoded to a new codec
>in testing while reliably keeping a/v sync.
If you want cameras to source this format someday, it'd be wise to
support the packed formats. A lot of cameras, DV in particular, use YUY2.
>Media players don't have to support every format, nor does any video codec. If
>a video codec (ie, DV) can only output 4:1:1 and the media player only takes
>4:4:4 then an intermediary plugin will be needed to do the convertion.
Agreed.. But the problem becomes how to send data to the color
conversion plugin. If you don't specify a way to put other formats into
this stream, your plugin has to do the work of extracting the data from
the original stream and performing a color conversion. All stream
extraction plugins would have to support converting the source material.
I think the design is cleaner if you have a stream extraction plugin
just extract the data from whatever the source is
(decodec/http/whatever) and put it into an ogg stream, then you let your
plugin negotiation find the "one true xxx->theora/yv12" converter.
Greatly simplifies writing extraction plugins if you don't have to
understand anything beyond bytes and buffers.
>So what I propose for OggYUV is to cover the capabilities of Ogg video codecs,
>everything Theora is capable of and prehaps a bit more that we've seen from
>other codecs. 4:4:4, as I recall, is supported by the Theora spec (even if the
>current implementation doesn't).
I can't speak for what Theora can support today, but the VP3 source it
derived from supported UYVY, YVYU, YUY2, and RGB24/32 source data as well.
More information about the ogg-dev