1

So I was reading about Java Convolve and someone said that it may be faster than the MMX / SSE implementation. In it one of the comments had a kernal array and said it was seperable.

  1. What is a seperable kernel? How is this useful for image processing?
  2. What is MMX/SSE? The wikipedia page lists them as instruction sets. Are they specificially designed for image processing?
  3. How would you transmit a MMX/SSE format (I assume) data set through TCP?

Thanks.

1 Answers1

1

MMX/SSE is a set of instructions built into Intel processors for applying a single operation simultaneously to several numbers. In other words it is a form of parallelism. I don't think the statement "Java Convolve is faster than MMX/SSE" implementation" makes any sense as a general statement. You'd have to compare a specific Java implementation to a specific MMX/SSE implementation. Heck, there's nothing to keep the Java Virtual Machine on a chip supporting MMX/SSE from using MMX/SSE instructions, so it isn't an either/or situation. It also doesn't make sense to ask about an MMX/SSE format. MMX/SSE operates on integers and floating point numbers.

A 2-dimensional kernel is separable if it can be split into two independent, one-dimensional kernels. This can be used to speed up the calculations involving the kernel.