High Frequency Speed digitalRead/Write (Arduino MEGA 2560)

640*480 = 307,200 pixels.
Is it 1 bit/pixel? Or 8?
Say 8, just for B/W data.
You can't store/buffer 1 frame's worth of data without extra hardware.
1 frame then takes at least 2,457,600 bits of data to come in.

http://www.voti.nl/docs/OV7670.pdf

I would say 8 bit processor at 16 MHz is really underpowered for this device.