Technology – The SRC and DSP
Many audio effects like doppler, echo (reverb), chorus, and pitch effects are achieved through sample rate conversion. For example, a chorus effect is achieved by changing the sample rate slowly in real-time to give the illusion of many audio sources (voices or instruments), and pitch changes are done by increasing or decreasing the sample rate. Traditionally, sample rate conversion has been a big CPU hog, so much so that Microsoft specifically mentions sample rate conversion as one of the biggest problems in designing games. Creative Labs aims to change all this with their new sample rate converter or “SRC”.
By having sample rate conversion a dedicated process and fed by a large number of data paths, the sheer processing power increases the speed at which these operations are done. Creative Labs touts a massive 300x performance increase in conversions compared to the older Audigy.
The consequence of having a strong sample rate conversion process is that the X-Fi can take any input it receives and convert it to a 24-bit / 96kHz signal instantaneously. This results in all audio being a clear 24-bit / 96kHz internally which is then easily converted to other sample rates, or directly output to digital receivers (which expect 24-bit / 96kHz signals). Creative Labs has also used the SRC to their advantage in creating the “24-bit Crystalizer”. Since not every signal passing through the sound card is 24-bit / 96kHz, the extra bits added through the up-conversion process can carry extra enhancing information. We will examine and test the 24-bit Crystalizer more shortly.
The DSP is the brains of the card and is responsible for processing the signals sent through the X-Fi for output (or input). It is capable of performing processing using 4 hardware threads (hence their marketing name “Quartet DSP”) and 2 SIMD (Single Instruction Multiple Data) data paths.
Seperately, the two SIMD data paths are important as they are chiefly responsible for applying a single operation across large quantities of data (i.e. multiplying datapoints on a signal to increase sample rate). The four hardware threads means that it can perform up to four memory moves per instruction. When combined together the output from the two SIMD data paths can be output along two of the hardware threads, and then inputted back into the SIMD using the reamining two hardware threads – effectively feeding itself the data to operate on without any lag to the overall system.
The DSP is not a traditional DSP by definition. A DSP is typically a processor with a fixed instruction set, but the SIMD design allows the X-Fi to be more general in use allowing it to be programmed by others. So technically if a game developer wants to do an effect not natively supported by the X-Fi card, it can be programmed to perform such operations through the DSP. Now that’s flexibility!