Borgerding, Mark A.
2001-Jan-23 07:01 UTC
[vorbis-dev] Fixed vs. Floating Point primer. was: Implementing Vorbis in hard ware
Let me chime in with a few facts regarding DSPs. It may be review to anyone who has programmed DSPs, but some may find it informative. Fixed-Point vs. Floating Point DSP chips Floating Point DSPs make the best/easiest compiler targets. Most of the standard operations present in ANSI C translate fairly well into floating point DSP assembly. This reduces the need for assembly optimization. Fixed point processors, as the name would suggest, cannot deal with exponents directly. They are a pain to program, because at every operation, the programmer must keep dynamic range and overflow in mind. Something as simple as adding two floats c=a+b becomes a difficult task. if ( b.exp > a.exp ) { c.mant = b.mant + ( a.mant >> ( b.exp - a.exp )); c.exp = b.exp; }else{ c.mant = a.mant + ( b.mant >> ( a.exp - b.exp )); c.exp = a.exp; } /* overflow has not even been taken into account here, nor has post-scaling */ So why would anyone use fixed point DSPs? Cost) floating point hardware is more complicated than fixed point, thus more expensive. Energy) more transistors at a given feature size and clock speed require more watts The fixed point chips often supply specialized instructions to aid in floating point emulation. For example, TI 54x and 55x include a single-cycle instruction that gets the number of significant bits in an accumulator. I've programmed a couple of TI DSP chips. One float, and one fixed. The floating point was certainly easier to program, since I never delved into assembly (but I didn't get stellar performance either). Programming the fixed point (TMS320C54x series) was a little more difficult, but pretty rewarding. The assembly routines were 10-20 times more efficient than their C counter parts. So I guess my point is this: If we just want to say that Vorbis is available for a DSP chip, then start with a floating point platform (I've heard good things about ADI's Sharcs). But if we want to make it most attractive for portable player companies, then a fixed-point DSP algorithm will probably be better received. We should probably get vendor comments. What chips do they use? What do they plan on using? Are they willing to sponsor GPL development? For example, I might be willing to pledge some development time in exchange for an eval board. Berkely Design Technologies seems to be a good source for objective DSP info. Their official report is pretty costly, but the have summary material at: http://www.bdti.com/procsum/index.htm (On a personal note, the TMS320C55x looks really sweet.) --- >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@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Steve Underwood
2001-Jan-23 07:57 UTC
[vorbis-dev] Fixed vs. Floating Point primer. was: Implementing Vorbis in hardware
"Borgerding, Mark A." wrote:> [...] > So I guess my point is this: If we just want to say that Vorbis is > available for a DSP chip, then start with a floating point platform (I've > heard good things about ADI's Sharcs). But if we want to make it most > attractive for portable player companies, then a fixed-point DSP algorithm > will probably be better received.I think that is a really bad idea. With many very cheap MP3 players already in the market, the only thing anyone would be interested in is a competitively low cost Vorbis platform. Put Vorbis on any floating point DSP, and people will say its resource hungry. It would then be very hard to dispell that impression. It can be a Royal PITA programming fixed point DSPs (I've used many), but they are they only kind of DSP acceptable for consumer products, and the only ones low enough in power consumption for a portable player. The MP3 people already had mature implementations on energy efficient fixed point DSP architectures when the first MP3 players appeared - they had been working on them for ages for the MPEG video player field. That is what Vorbis needs to catch up on now. Monty said many MP3 players are currently using StringARM. That would be the easiest route to port Vorbis to a portable platform, as you can get a workable solution with a few tweaks and a recompile. Since it avoids the need for a separate management/control processor, StrongARM may be the most cost effective platform overall. Regards, Steve --- >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@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Possibly Parallel Threads
- Fixed vs. Floating Point primer. was: Implementi ng Vorbis in hardware
- Oggenc bug & other
- To calculate sample size based on generalized wilcoxon test or Tarone-Ware test
- How to deploy rails apps from a VM Ware Virtual Machine?
- Power ware 5110 "not the right sequence received"