[xiph-rtp] My impressions about the discussion about codebook
delivery.
Phil Kerr
phil at plus24.com
Tue Nov 9 06:27:45 PST 2004
Hi Ramon,
I'm back on-line from the death of my iBook, but in an email I sent to
Ralph yesterday to say I was off-line I mentioned using a 32 bit field
in the RTP header for codebook identification.
What we need is an identifier for the codebook used and to an extent
producing a CRC32 hash seems to fit the bill. The only problem is CRC32
is not very collision-proof and I was wondering if as a test it would be
possible to check, from a large'ish Ogg collection if it was possible to
generate a list of CRC32 hashes and if there are any duplicates we could
then check to see if the matching codebooks are the same, or different.
If the matches are the same then this would be great as hash collision
isn't a problem. If there are hash clashes with different codebooks,
and the frequency which this happens is high, then we need to think of
another way of creating an unique identifier for a codebook, but not
using a large hash value like MD5.
For codebook transmission I think the best option is by HTTP, for
reliability reasons. I think the best way is to have a SDP attribute
which gives an URI of a codebook package which may contain one or many
codebooks - which could be all of the codebooks needed for the session life.
An idea is to use a custom VORB RTCP message which can send a message to
clients to refresh their codebook cache. This would allow for the
situation where new files are chained for transmission and the client
may not have the codebooks cached.
One of my motivations for having the codebooks sent as a VORB RTCP
message in the -03 draft was the project we were hoping to use Vorbis
for was satellite-based. The AVT-WG did not like this idea as it could
push the RTCP bandwidth usage above outside its normal range. To an
extent I prefer having the main RTP stream to be for data-only.
So, are there sufficient real-world usage scenarios for having an
unidirectional stream to try and incorporate this feature or should we
stick with the usage scenario which is bi-directional (which is required
for client RTCP messages anyway).
-P
Ramón García wrote:
>[Message repeated because it was bounced, apparently because of a DNS update]
>
>This is an attempt to summarize this discussion. I do not want to look
>like an authority to say the final word. This is just the impression
>that one has arrived after listening all of us.
>
>After listening all this discussion, it looks like the best posible
>method is to include in every RTP data packet an identifier of the
>codebook needed for decoding this packet (16 bits or 32 bits) . As
>Aaron demonstrated, including off-line messages for changing codebooks
>is not reliable, and could lead to wrong decoding. The overhead of a
>codebook identifier is not large taking into account that the RTP
>header already adds 128 bits.
>
>For actual codebook delivery, HTTP is in my opinion the best option.
>The session descriptor should have a pattern that tells how to
>retrieve any codebook giving its identifier. This avoid shipping an
>URL after the codebook changes. HTTP takes advantadge of the
>transparent web proxies already used by most Internet providers.
>
>One drawback of using HTTP is that it does not work with
>unidirectional links. For these cases, a special type of RTP data
>packets can be used. These packets can use marker bit of the RTP
>header to be distingished from other packets. They should be sended
>periodically by the server.
>
>There are some issues that have not yet been discussed enough. Is it
>necessary to provide dynamic changing of sampling rate? How should be
>chained OGG files handled? I think that they should be handled like
>playlists.
>
>Ramon
>_______________________________________________
>xiph-rtp mailing list
>xiph-rtp at xiph.org
>http://lists.xiph.org/mailman/listinfo/xiph-rtp
>
>
>
More information about the xiph-rtp
mailing list