Tuesday, August 29, 2006

Connecting to the HTPC

Today most computers communicate with external soundcards using a USB or FireWire connection. Other technologies that might become popular in the future include Audio over Ethernet (AoE) and some new varieties of FireWire like VersaPHY, S800BaseT and POF with IEEE 1394. Our conceptual prototype uses a FireWire connection, which works very well. However, we are looking very closely at other technologies to make sure we provide the best solution for our users.

I also know that some pro-audio external soundcards like M-Audio's Delta 66 and Delta 1010 or Echo Audio's Layla and Gina use a proprietary connection to a dedicated PCI adapter card. Both of these manufacturers are now using either USB or FireWire on all of their newer external soundcard products. We will not be using a proprietary PCI adapter card solution.

USB is the most common method used to connect peripherals to a computer. USB 1.1 was originally meant as a replacement for legacy ports, and a user-friendly, low-cost way to connect peripherals such as keyboards, mice, and printers to a PC. USB was never designed to handle intense multimedia data loads. USB 1.1 is limited to a data rate of only 12Mbits/sec, which is enough bandwidth for CD audio (1.4Mbits/sec). However, it might be difficult for USB 1.1 with it's associated overhead to handle multiple streams of CD audio or DVD-Audio (with 6 channels of 24 bit audio at a sample rate of 96KHz) which requires up to 8.6Mbits/sec. USB 2.0, which is backwards compatible with USB 1.1, provides the fastest data rate currently available at 480Mbits/sec. However, USB uses a host/client (or master/slave) architecture. The PC takes on the role as the host, which requires some overhead to handle all of the arbitration functions and dictate commands to the clients, thus reducing the overall data rates. Data rates are reduced more if addition communication between other clients is required. The maximum length of a USB cable is 5 meters, greater lengths require USB hubs.

Many of the manufacturers of pro-audio soundcards offer an external solution using FireWire (IEEE 1394). FireWire is based on a peer-to-peer technology where each "intelligent" peripheral communicates with each other to provide sustained data rates. Unlike USB, no additional PC overhead (system memory or CPU) is needed to sustain the data rates. FireWire includes support for memory-mapped devices, which allows high-level protocols to run without forcing numerous interrupts and buffer copy operations on host CPUs. The most common FireWire in use today, IEEE-1394a, provides data rates up to 400Mbits/sec with cable lengths limited to 4.5 meters, but up to 16 cables can be daisy chained using an active repeater, external hub or internal hubs included in many FireWire devices. The maximum length possible with any configuration of IEEE-1394a is 72 meters. A newer FireWire standard, IEEE-1394b (sometimes called FireWire-800) provides a data rate of 800Mbits/sec (but promises to support speeds of 1600Mbits/sec. to 3200Mbits/sec. in the future) and cable lengths of 100 meters when using optical fiber or CAT5 cabling. However, if you read the fine print, these longer lengths only support data rates of 100Mbits/sec when using CAT5 cabling. A future version of FireWire, p1394c is suppose to provide data rates of 800Mbits/sec for cable lengths of 100 meters.

Theoretically USB 2.0 should be faster than FireWire IEEE 1394a. Each FireWire device has to negotiate for bus access and the FireWire bus must wait until a given signal has been sent to all devices on the bus. The more devices on the bus the lower the performance. While USB is only limited by the host-client branch, not the whole network. USB's host-client technology also allows the host to allocate more bandwidth to higher priority devices. Even though the USB 2.0 spec of 480Mbits/sec is higher than FireWire's (IEEE 1394a) 400Mbits/sec, the increased CPU and host overhead due to the host/client technology of USB 2.0 reduces its sustained throughput to rates lower than those of IEEE 1394a. USB comes standard on over 90% of computers shipped today (probably more than 90%, now). Unfortunately, FireWire does not come standard with most new PCs. However, I've noticed that it is included on many of the motherboards that are popular with people who build their own HTPCs. Anyhow, both FireWire and USB 2.0 can handle the audio throughput needs of an external soundcard.

Looking into the future, it appears that the performance of USB isn't really going to change much. The only references to a future version of USB talk about wireless USB (WUSB). Wireless USB sounds interesting. You'll get USB 2.0 performance within a range of 3 meters. Between 3 and 10 meters, WUSB can operate at 110Mbit/sec. The future versions of FireWire are even more interesting. I'm not sure exactly what the bandwidth requirements will be for future audio formats like HD-DVD and Blu-Ray (probably, not much more than DVD-Audio's 8.6Mbit/sec, but you never know). And who knows, maybe there will be something better after these two formats kill each other off. Anyhow, the speed improvements of future versions of FireWire might be very useful. What's even more exciting is the fact that the cable lengths will let us support features like whole-house multi-zone audio much easier. With S800BaseT maybe we will be able to have an HTPC in the family room with our soundcard/amp, and others in the kitchen or dining area and bedrooms. All of the PCs are connected via FireWire to either multichannel soundcard/amps or stereo soundcard/amps. They are also connected to each other over the S800BaseT network. Because of the network connection, any of the PCs will be able to recognise all of the other soundcard/amps on the network. That is, your PC will actually have every soundcard on the network in its list of audio devices. With the appropriate software, like J.Rivers Media Center, they'll be able to set up multiple zones. From any one of the PCs you'll be able to pipe music all over the house. For parties, the same tune can play in every zone. However, you will still be able to control each soundcard from the local PC. Hopefully the software will be able to manage when the soundcard is under local control or is available across the network. Anyhow, the possibilities are very exciting since you should be able to connect all FireWire devices up to distances of 100 meters and still maintain S800 (800Mbits/sec) speeds.

After reading several articles or papers describing Audio over Ethernet, I'm not sure if it will ever come into the mainstream. First, there are a lot of proprietary solutions and without a standard, it's unlikely to move beyond its niche. The technology is really geared to professional applications like auditoriums or large recording studios. Second, if S800BaseT takes off, it looks like there will be no need for audio over Ethernet. Anyhow, it is another technology that we will keep an eye on.

I'm sure some people reading this post are wondering why I haven't included HDMI in this discussion. It's because I don't think HDMI (High Definition Multimedia Interface) will ever replace USB or FireWire as a way to connect to external soundcards. Instead, it will probably replace S/PDIF because it is also basically just a one way connection. It is a much higher bandwidth digital connection. Instead of the S/PDIF limits of 2 channel PCM or multichannel Dolby Digital or DTS compressed audio, HDMI can handle 8 channels of uncompressed audio (in addition to all of the HD video). We are considering using an HDMI input instead of/or in addition to S/PDIF as our digital input option. We are already beginning to see HDMI connectors on graphics cards, high resolution displays and A/V receivers. In the next few months HDMI connectors will be included on new motherboards. Another big part of HDMI is content protection and HDCP, but I don't really want to cover that in this blog entry. Maybe some other time.

No comments:

Post a Comment