better (especially inside a double nested loop) than:
d = *(frame+x+(y-1)*width) - *(frame+x+(y+1)*width) ;
min = d < 0 ? -d:d;
d = *(frame+x+(y-1)*width) - *(frame+x+(y+1)*width) ;
min += d < 0 ? -d:d;
Also do a bit of tidying (unused/unneded ABS macro removed)