A DSP-based decompressor unit for high-fidelity MPEG-Audio over TCP/IP networks

Copyright 1997 by Björn Wesén at Axis Communications AB, Sweden

[ Home | Contents | Component and tool archive ]


Previous chapter: Network interface, next chapter: Appendix A

Summary

The thesis goals are repeated here, along with a short summary of the results:

All audio compression standards in that league, use psychoacoustic modelling and are quite similar to each other. The choice was narrowed down to two standards - MPEG-1 Layer-3 and Dolby AC3. The latter is geared towards 6-channel surround sound and does not perform as well as the former with normal stereo sound, so MPEG-1 Layer-3 was chosen.

Since the standard was quite new, no decoding ASIC's were available. Existing DSP implementations were for sale by some companies, at huge prices. Layer-3 is much more complex than layer-2, which is available as ASIC's and specialized DSP's, and that is probably the cause for the lack of available layer-3 implementations.

After a survey where all the major DSP manufacturers were checked for many factors like price, development-kit availability, compiler availability and expansion possibilities, the TMS320C31 DSP was chosen because of the high dynamic range of floating-point arithmetics, as well as because of the availability of a free GCC C-compiler.

It was most convenient to provide a standard parallel port on the DSP design, so that it could be interfaced both to a normal PC and to an Axis NPS570 printerserver that had built-in network access. The decoding algorithm needed a lot of memory as well so an external memory of 32kwords were hooked up to the DSP. A Burr-Brown PCM1723 D/A converter was used to provide stereo audio output. The design was manufactured using a four-layer surface-mounted PCB process.

The MPEG-1 Layer-3 decoding algorithm was available in the ISO/IEC 11172-3 standard. The algorithm was implemented in C on a Unix system, then ported to the DSP target using a GCC cross-compiler. The IDCT transforms were algorithmically optimised using Lee's IDCT. All the time-critical parts of the algorithm were then hand-coded in DSP assembler to provide enough speed.

The Axis NPS570 printer-server provides an ethernet interface as well as a parallel port. The unit supports the TCP/IP protocol suite including FTP to the parallel port, which means that it is possible to FTP an audiostream to the printerserver which will then pipe it out to the parallel port and into the Whitney DSP decoder board for realtime playback.

Conclusion

All of the thesis goals were fulfilled, and the final unit works very well providing a good-quality audio output. It was regrettable that some digital noise slipped through into the audio output though. Normally, products requiring total HiFi sound, are equipped with separate power supplies for the analog and digital parts. They are also separated as much as possible. However it was decided when the schematics of Whitney were drawn, that the possible injected noise was a low design priority and that it would be out of scope to design separate analog and digital boards/power supplies.

The whole thesis work turned out to flow smoothly and no major obstacles were encountered. It was nice to note that it is quite easy and efficient to implement large DSP algorithms in C on the chosen DSP. Normally, DSP's are used for algorithms that are so small that they fit inside the DSP's own RAM, and can thus be totally hand-coded in assembler, but that was never an option for this thesis due to the size of the algorithm. The choice of using a general DSP also means that the unit is not locked to a particular algorithm, but can be upgraded to other algorithms should more efficient ones arrive. The MPEG-1 Layer-3 algorithm is so complex that it would be extremely hard to implement in an ASIC without resorting to a general DSP core.

One thing that was interesting to note, but not related to the thesis really, was that the algorithm's different stages used different proportions of the time while running on the DSP and running on a PC using a Pentium Pro processor. The DSP was better at the transform and filter-like floating point operations, but bad on the integer bit-level extraction like the huffman decoding, while the PPro was the opposite. Additionally, the PPro was many times faster than the DSP even running unoptimized C-code, but that is to be expected of something costing 60 times more.

The conclusion can be made that it is now very possible to design small network devices providing high-quality audio. The ETRAX network processor could be incorporated on the same board as the DSP, and the compact unit could be built into loudspeakers for example. In the thesis, a simple FTP transfer protocol was used to transfer the MPEG stream to the NPS570 printerserver, but software could be written that allows more efficient network usage by using multicast packets that provide the same stream to many devices, without using more network bandwidth.

Previous chapter: Network interface, next chapter: Appendix A


This document may be freely distributed for educational purposes. See the copyright notice for additional information.