docs: public static void process(GrayU8 orig, GrayS16 deriv) {
  		final byte[] data = orig.data;
  		final short[] out = deriv.data;
  
  		final int width = orig.getWidth();
  		final int height = orig.getHeight() - 1;
  		final int stride = orig.stride;
  
  		BoofConcurrency.loopFor(1,height,y->{
  			int index = orig.startIndex + stride * y + 1;
  			int indexOut = deriv.startIndex + deriv.stride * y + 1;
  			int endX = index + width - 2;
  
  			for (; index < endX; index++) {
  
  				int v = data[index - stride] & 0xFF;
  				v += data[index - 1] & 0xFF;
  				v += -4 * (data[index] & 0xFF);
  				v += data[index + 1] & 0xFF;
  				v += data[index + stride] & 0xFF;
  
  				out[indexOut++] = (short) v;
  			}
  		});
  	}