Robert,
If you are getting timeouts, it is my guess this is happening where you are waiting for the next buffer to be extracted or copied. If this is the case, you may consider using a form of status checking to only call the extract when an image buffer is available. I have attached an example of this. Also note, that I use a "Vision IMAQ Copy" to copy the image to a new location before doing processing. This is so the buffer can be replaced into the ring while we do processing on the image in another location. As for speeding up the processing, I would suggest that you narrow down to the smallest ROI so you are not doing processing on unneeded portions of the image.
Best Regards,
Chris D
NI Applications Engineer