MMX
MMX, or "MultiMedia eXtensions", are extra instructions on CPUs that enable various (usually multimedia) tasks to be performed faster and simpler on those CPUs than on a non-MMX CPU. One common example are the MMX "saturation" commands, useful in areas such as Audio manipulation and Visual effects such as colour brightening / darkening.
For example, in a colour the values Red, Green and Blue each have a range of 0 (none) to 255 (full) "brightness". Thus the colour R=0, G=0, B=0 is black, and R = 255, G = 255, B = 255 is white. If an image processing operation wanted to increase the brightness of an image by say 10, it would add 10 to each of R,G and B. Unfortunately, when a value exceeds 255 it reverts back to 0. So 250 + 10 = 5. This is bad because, if you have a very light gray image and brighten it, instead of becoming white, it will become very very dark gray!! So normally you have to perform checks like this:
begin addred := 10; addgreen := 10; addblue := 10; if (red + addred) > 255 then addred := 255 - red; if (green + addgreen) > 255 then addgreen := 255 - green; if (blue + addblue) > 255 then addblue := 255 - blue; red := red + addred; green := green + addgreen; blue := blue + addblue; end;
As you can see, that is a lot of work to do for just one pixel of colour! The MMX "saturation" instruction, however, means that the CPU itself will "limit" the value to 255, so that it won't overflow and become 0. This means the code can just be:
begin red := red + 10; green := green + 10; blue := blue + 10; end;
Which, as you can see, is a lot simpler and therefore faster to execute.