[xiph-rtp] Interesting post on AVT list
David Barrett
dbarrett at quinthar.com
Wed Sep 7 13:35:15 PDT 2005
Aaron Colwell wrote:
> Can we please use a different term than "chaining". Chaining refers to an
> Ogg concept that can't be fully supported inside an RTP session. Perhaps
> "codebook switching" should be a better term.
Good idea; "codebook switching" is much more accurate and intuitive.
>> 2) If it is, can new codebooks be delivered on the fly?
>
> Does this mean a new codebook that wasn't known about at SDP generation time?
> If so then this potentially causes a problem where a codebook shows up that
> the client doesn't have resources to support. The server may not be in the
> position to determine whether the client can support the new codebook or not.
> I think the codebooks that are availble for switching should be negotiated up
> front.
I certainly agree this is a possibility. I'd say:
Servers SHOULD define all codebooks at SDP generation time. But servers
CAN send new codebooks at any time, and clients SHOULD support all
codebooks if possible. Packets encoded in a codebook the client cannot
support MUST be dropped.
Thus servers seeking maximum compatibility across the broadest range of
devices would pre-negotiate all codebooks up front. But servers that
know their clients can handle the full range of codebooks should have
the option of sending them "just in time".
To give a real-world example, I do live videoconferencing using Theora,
and I'd like to adjust the frame size depending on the size of the
playback window (ie, if it's full screen, send a big feed, if it's a
thumnail, send a small one, and anywhere in between). Thus rather than
pre-generating every possible codebook and sending over up front, I'd
like to generate codebooks "just in time" and send as needed.
> The client also has to manage it's own resources and only try to play something
> it knows it can play. The server is in no position to make this decision.
True. It's not without cost for the client.
>>Personally, I think the ability to change the parameters mid-stream
>>without the overhead of a total stream negotiation is a nice advantage
>>of the Xiph codecs. This in fact could be a selling point for streaming
>>situations where high-level adaptive encoding is valuable.
>
> Many video codecs (H.263+, MPEG4, RV, WMV) at least have this ability without
> the need to negotiate different codebooks. It is yet to be proven that there
> are significant gains to be had for different codebook selections. That is
> a seperate discussion though. I'm only pointing out that this funtionality has
> been supported without the need to reliably transmit large chunks of codebook
> data.
I certainly agree (and I'd like to hear the final logic on this, if
anyone knows it) that codebooks are a *big immediate cost* for only a
potential future gain. Has anyone done a rigorous cost/benefit analysis
demonstrating the value of dynamic codebooks?
Regardless, I'm accepting for the sake of progress that dynamic
codebooks are they way it is.
> It seems strange to me that implementations ignore a MUST inside a standard.
> I don't think we should bow to SIP implementations that aren't RFC compliant.
> With that said though, I agree that we should probably still have a solution
> for UDP.
I'll ask around the SIP/P2P community and see if my initial impression
is right. As for the SIP/TCP requirement, that was actually added quite
late (it was originally optional) so I'm not sure to what degree very
old or very new implementations support it.
-david
More information about the xiph-rtp
mailing list