
AudioAudio Echo EffectsPresents examples of code that exploit these SIMD instructions to add echo to existing audio data.
MPEG1 Audio Kernels CommunicationsPassband Echo CancellerThis application note presents an implementation of a common modem algorithm that takes advantage of the new Intel Architecture media extensions. The passband echo canceler is an adaptive filter that effectively cancels out the near and far end echoes allowing the transmitted signal from the remote modem to arrive more cleanly at the receiver. Baseband Echo Cancellation There are two sources of echo in a modem. The near end (NE) echo signal and the far echo signal. This application note presents an implementation of a common modem algorithm that takes advantages of the new MMX instruction, specifically the base band echo canceler. The base band echo canceler is an adaptive filter that effectively cancels out the near and far end echo allowing the transmitted signal from the remote modem to arrive more cleanly at the receiver. 1/3 T Equalizer One goal of a data communication system is to realize a maximum likelihood that a transmitted data sequence is received in the same way it is transmitted. An equalizer is used at the receiver end of a system to counteract the nonideal aspects of the communication system. 2/3 T Spaced Equalizer This document presents a code example using MMX instruction to implement an adaptive filter, specifically the 2/3 T Spaced Equalizer algorithm on complex arithmetic data. DSP KernelsEfficient Vector/Matrix Multiply RoutineThis application note demonstrates significant speed up of a vector dot product and a Matrix Multiply routine. It also shows, how loop unrolling can be used to optimize the performance of MMX™ technology based code. Matrix Transpose This application note demonstrates two approaches to transposing a matrix using MMX™ technology based code. Real 16bit FFT This document describes an implementation of a 16bit, complex Fast Fourier Transform (FFT) procedure using MMX instructions. An FFT provides a fast algorithm for transforming discrete data from the time domain to the frequency domain. This algorithm has a wide range of applications in the signal processing world, including V.34 modem data pump. Dot Product  16x16 > 32 Calculating the dotproduct of two vectors requires executing a large number of multiplyaccumulate operations. This application note shows how to use the MMXinstructions to significantly speed up 16bit vector dotproduct calculation. Real FIR  16 bit FIR (Finite Impulse Response) are filtering functions that operate on complex numbers. These functions are frequently found in digital signal processing applications. Modem applications typically make heavy use of such functions. This application note shows how to use the MMX instructions to significantly speed up computation of 16 bit FIR digital filters. Vector Arithmetic and Logic Operations This application note presents two examples which demonstrate the use of MMX technology (SIMD) instructions to perform basic arithmetic and logic operations on vectors of numbers. High Precision Multiply MMX technology instructions include support for very fast 16bit by 16bit multiplication, returning 32bit results. This document describes an implementation of a 16bit by 31bit multiplication operation using the MMX instruction set. Data Alignment This paper describes several simple techniques to guarantee data alignment for Assembly, C, C++, or Microsoft Windows with currently available software technology and tools. Graphics (2D)Fractals with MMX TechnologyIllustrates how to use the MMX technology to achieve better performance in generating Mandelbrot Set fractals.
Sprite Overlay Graphics (3D)MMX Technology for 3D RenderingIntel's MMX™ Technology processes multiple integer data items in parallel, 64 bits at a time. It can speed processing of pixels in 3D graphics, compared to straight Intel Architecture code which handles at most 32 bits at a time. Thus MMX technology may enable higher frame rates and/or higher quality images.
3D Bilinear Texture Mapping Image EffectsYUV12 to RGB Color ConversionDescribes the usage of the new Intel MMX instruction set to implement Color Conversion Kernels (CCK) from YUV12 to RGB color space. The MMX instructions are Intel's implementation of Single Instruction Multiple Data (SIMD) instructions.
2X 8bit Image Scaling MiscellaneousNew EMMS Usage GuidelinesGuidelines for EMMS usage have been changed due to significant side effect delay.
Survey of Pentium® Processor Performance Monitoring Capabilities & Tools
How to Use FloatingPoint or MMX Technology in Ring 0 or a VxD under Windows® 95 Speech RecognitionViterbi DecodingViterbi decoding is a Dynamic Programming (DP) algorithm that among other applications,is used in evaluating Hidden Markov Models. This application note presents a code example that implements the Viterbi decoding algorithm. L1 Distance Measure This document presents an MMX instruction implementation of a L1 distance measure. L1 distance measure is also known as "sum of absolute differences." L2 Norm Distance Measure This document presents a code example that uses MMX instruction set to implement a 16bit L2 norm function. L2 norm function,also known as the Euclidean distance, is often use as a distance measure to extract degrees of similarity between two vectors in speech compression. VideoIDCT 2D 8x8This document describes an implementation of a twodimensional Inverse Discrete Cosine Transform (IDCT) using MMX instructions. This transformation is widely used in image compression algorithms, most notably, the JPEG and MPEG standards. Motion Compensation This application note presents examples of MMX instruction set use to perform Motion Compensation (MC) for MPEG1 Video playback and specifically, techniques used for avoiding misalignment problem. Motion compensation is an operation where the motion vector is use to reconstruct the predicted block. Absolute Difference This document describes an MMX technology implementation of a procedure to perform an absolute difference on a 16x16 block of pixels. This procedure can be an integral part of a motion estimation kernel. Motion estimation is a technique used in video compression to try and predict movement between consecutive frames. Haar Transform  2x2 The 2x2 Haar transform is used to decompose an image into 4 bands whose spatial frequencies and information contents differ. These differences allows subband compression methods to control the bit rate by quantizing bands differently and to control the decode time by removing one or more bands from the bit stream. 2x2 Haar transform is computed by adding and subtracting adjacent image or array elements. This application note describe the MMX instruction set use to calculate the Haar transform. Get Bits This application note presents examples of instructions such as MMX technology shift instructions to manipulate a data stream. The performance improvement relative to Intel Architecture (IA) code can be attributed primarily to much faster shift instructions, and also due to the fact that MMX technology shifts instruction operate on 64 bit values instead of 32bit values shift instruction. Video Loop Filter Filtering or smoothing operations are used to reduce noise in imagery that is often characterized by high frequency components. This application note presents the basics of a loop filter implementation using MMX instructions.
