How about the processing speed ?


SpotRemover was programmed with the performance in mind.
Its core is written fully in assembly language and works only because of the MMX and SSE.
It was optimized for the Pentium III architecture and on my PIII-500 it does about 5 frames/second for a 640x480 frame size.

Some of the optimizations include:

1) Use of MMX and integer SSE extensions.

2) Minimal use of conditional jumps to avoid branch mispredictions. The core routine (smoothing, locking, spot detection, filtering, marking, and color adjustments) uses only about a dozen of jumps!

3) Compact allocation of data to minimize cache misses.

4) Instruction reordering and resizing to optimize the instruction fetching and decoding.



See also:

Requirements