[vorbis-dev] Peer-to-peer audio codec

Anthony Frazier afrazier at neo.rr.com
Thu Apr 4 20:19:59 PST 2002



On 3 Apr 2002 at 16:58, HALL CYRUS P wrote:

> broadband users are on cable modems, which unfortunately limit up-stream
> bandwidth to a fraction of what many DSL users get to experience (I know
> the technical issues the cable companies always taut, however, I've always

This (as I'm sure you know) varies wildly.  In my area (NorthEast Ohio/NorthWest 
PA), Residential DSL users are limited to 768 kb/s down, and 128 up.  My cable 
modem access (nothing special, just "standard" RoadRunner) is around 3.0 Mb/s 
down, 512 kb/s up.  (Yeah, yeah, I know about cable segments and shared bandwidth 
and stuff vs. DSL's "dedicated" bandwidth.  That's another discussion entirely 
though.  Point is, my box can handily stream out a 256k mp3.  :-)

> Now splitting stereo channels doesn't seem to get one very far.  But what
> about some sort of a "progressive" audio codec?  Let me at this point
> state I have no real experience with compression, so all of this off the
> hip.  A progressive audio codec that could "build" itself up would be a
  [...]
> If a P2P network could use such an audio codec to distribute its streams,
> it balance load and demand (number of higher quality
> "levels" for each stream goes down as demand goes up) and avoid the
> death of Internet radio.  Both of which are important. ;-)

Much like progressive JPEG images?  Actually, I believe that Intel's Indeo codec 
(whoever owns it now) supports exactly this thing.  Yeah, it's video, and yeah, 
it's closed source, but at least it's something we can point at and go "let's do 
that, only better."  

If I understand Vorbis's bitrate peeling correctly, it would also accomplish 
this.  The client would need to be able to take advantage of all the bandwidth 
that it was able to get at any given point in time.  This way the server could 
just stream out, say, a -q 6.00 stream to everyone, and if a client couldn't go 
that fast, then the decoder would use whatever data it got in a given interval 
(and at a lower quality, of course).  The big gimme here is that the technology 
is already designed into Vorbis, and ogg can handle the transport.  (I'm not 
thinking retarded here, am I?)

Now I don't know how you would integrate this with a swarming technique, like 
BitTorrent or something, but that would be exceptionally cool.  Think of it -- 
streaming clients serving each other, and taking load off of the main server.  
Sure, each "hop" would introduce a delay, but a reasonably intelligent design 
could minimize this.

Making this work with streaming would be difficult.

Making this work with live streaming and webcasting would be hella difficult.

How these ideas would "prevent the death of internet radio," I'm not sure.  You 
still have a single source stream, with many clients re-transmitting that same 
stream.  This could, in fact, accelerate the death of internet radio, because it 
would suddenly become very difficult to accurately track the number of listeners 
any given stream has.  Sure, "sub-stations" could have code to report their own 
usage statistics back up the chain, but if the software is open source, then that 
code could be hacked out easily.  This isn't to say that such code _couldn't_ be 
hacked out if it were closed source, but it would be more difficult.  (Of course, 
"more difficult" than "nearly trivial" may still be "really, really easy".)  Why 
are such stastics important?  For royalty payments, of course.  It's nearly my 
bedtime (so my girlfriend says ;-), so digging links on pending legislation (for 
those of us in the US) is left as an exercise for the reader.

Another problem is the trouble of receiving and playing such streams.  Are we 
writing some heavyweight plugins for Winamp and XMMS?  What about other players?  
Perhaps, if we're "swarmcasting", everyone could run a service to receive and re-
transmit a stream, and users could point their favorite streaming-enabled player 
at localhost to listen.  This is a bit ahead of the point at hand, but still 
important to consider.

Pax,

Anthony Frazier

--- >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 'vorbis-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 Vorbis-dev mailing list