
It seems like the trend in image processing is to avoid using indexes in the inner loop if at all
possible.
Which is a non sensical way of doing stuff cause code using pointer arithmetic and "leet" stuff like *(ptr++ + x*width) makes code hard to decipher and > to parallelize afterward. I wish you a good deal of fun to block a pointer based IP code into SMP or SIMD :/ It's preferable to stick to indexes as it works fine on both side (parallelization and performances).
But with a index you need two variables, the base pointer + index. And unless your compiler + instruction set allows you to addess a memory location using a base pointer + index then you are going to loose much in performance. IMHO a pointer is always faster, it let you write the algorithm in a different way avoiding probably the example you gave above.