Hi, I'm fairly new to Speex, so please forgive me if this question has an obvious answer. I'm currently studying the source code to understand how Speex works and wondered, is there still a floating-point implementation I could look at as the fixed-point stuff makes it a little difficult to see what the code is doing. Regards, Matt.
> I'm fairly new to Speex, so please forgive me if this question has an > obvious answer. I'm currently studying the source code to understand how > Speex works and wondered, is there still a floating-point implementation > I could look at as the fixed-point stuff makes it a little difficult to > see what the code is doing.Actually, the floating-point implementation is the same as the fixed-point. The only change is that for float, operators like MULT16_16 just change into "*" and shifts disappear. Another option you have is to look at the 1.0.5 source code. In that case, just be aware that several things have been changed since then and that newer versions are computing some of the things differently (more efficiently). Of course, despite reworking some bits and removing redundant calculations, it's still the same overall algorithm (because it's perfectly compatible with 1.2beta2). Jean-Marc
Excellent, thanks for the info. Matt. Jean-Marc Valin wrote:>> I'm fairly new to Speex, so please forgive me if this question has an >> obvious answer. I'm currently studying the source code to understand how >> Speex works and wondered, is there still a floating-point implementation >> I could look at as the fixed-point stuff makes it a little difficult to >> see what the code is doing. >> > > Actually, the floating-point implementation is the same as the > fixed-point. The only change is that for float, operators like MULT16_16 > just change into "*" and shifts disappear. > > Another option you have is to look at the 1.0.5 source code. In that > case, just be aware that several things have been changed since then and > that newer versions are computing some of the things differently (more > efficiently). Of course, despite reworking some bits and removing > redundant calculations, it's still the same overall algorithm (because > it's perfectly compatible with 1.2beta2). > > Jean-Marc > >