DSP Algorithms, porting, optimization, consulting, hardware design
We provide DSP solutions for speech and signal processing. Our larger experience is audio DSP for music, telephony, speech recognition. We have algorithms for beamforming, noise reduction and echo cancellation. We can quickly produce run-time efficient filters for audio or RF, FIR, IIR and other techniques. Our business model is typically an hourly fee, in some cases, you will pay a small fixed fee for pre-built algorithms. Never a royalty or license fee. Often we are cheaper than recruiting and maintaining a DSP for simpler requirements. Very comfortable with fixed point or float, C or assembly. Speedy development, Also we can port efficient public domain codecs, or support internal proprietary matlab or python code translations. |
Got Noise?
If the noise can be differentiated from the signal based on some criteria (frequency, stationary spectrum, noise correlation, or spatial, then it can be reduced or removed altogether. We have solutions for beamforming and wiener filtering (adaptive noise floor removal), echo cancellation, homomorphic filters and of course notch filters, bandpass filters etc. Having performance problems? We have many novel and efficient solutions to filters and sample rate converters that significantly beat industry norms, if you need a filter or src to run faster - you should talk to us. We have a variety of techniques including phase linear, phase non-linear, FIR or IIR, a well as narrow passband comb filters. Further we can optimize our solution in assembly to take full advantage of SIMD or VLIW instruction architectures, and we have extensive experience on a variety of DSP engines. Knowing the underlying architecture of the compute engine is important to getting the optimum performance. Before adding that 2nd or 3rd DSP, use our DSP Consulting services to see if the solution performance can be improved. Architectures
We have lots of experience coding DSP solutions on a variety of architectures, including *Cadence/Tensilica HiFi*, *Qualcomm, *ARM, *TI C64x family and *Intel SSE. This experience insures fast porting and optimization of your code to a particular platform using our DSP Consulting services. * - These trademarks are owned by the respective owners. |
Got code?
Sometimes you already have your own code, or licensed rights to code, but you need it converted from floating point to fixed (a delicate and error prone task) or have other porting requirements. If your code is in matlab we can port this code to C for you. We can also provide optimization consulting services. Got Batteries?
If your device is mobile, then you should be concerned about power consumption. DSP optimization isn't just about run time performance, it can also affect battery life. How much improvement depends on the static leakage current of your DSP engine verses the dynamic behaviors. This can be hard to measure, and you should expect some support from your silicon vendor. But DSPWidgets can help you ask the right questions. More importantly by using our consulting services, we can optimize your solution. This can benefit you in several ways that save power, such as: 1. Doing more with the data, once its fetched, convolution revisits the same data again and again, so if I can reduce how many times the same data is fetched, I can reduce power. This gets even more dramatic if the data is off chip. The worst offenders for overfetching, a multichannel to single channel mix. 2. Reduction in the number of multiplications. This can be accomplished by more efficient filters and SRC algorithms, especially if we take advantage of advanced multirate techniques, or phase linear IIR methods. In some cases, simple multiplies turn into shifts. 3. Better use of branch prediction and zero overhead loops. If a branch occurs in a pipelined architecture, then there is a stall, and partially complete work has to be dumped. This uses power. Paying attention to branch prediction or zero overhead loops can keep the pipeline running smoothly, less wasted instruction fetches, less branch stalling equals less power consumption. 4. Reduced data working set size keeps the power consumption lower by generally lowering the cache evictions and refills. This is especially true if there are other applications running in a pipe that must evict data. It saves power when returning to our DSP application if the working set size that must be refetched is smaller. If your DSP Consulting firm is not concerned about performance and power optimizations, you should consider using DSPWidgets.com, LLC |