Assuming I have recorded an HD video of a Monitor screen and I would like to verify if there is any screen tearing occuring. How would I do this?
I have thought of two naive approaches here -
1] I can compare a frame with the previous one and apply 'motion estimation' algorithm to detect if a part of the frame has shifted towards left/right, while the other part has not changed at all.
2] An even simpler approach would be to compare the current frame with the previous one and if there is any tearing then one part of the frame will be exactly the same (and leave it at that).
What would be a better way to detect this?
Update: I think the second approach would give a lot false positives and is not feasible.
If you have control over the content being displayed, it makes it much easier. I recommend you do something like FCAT (or just use FCAT): See http://www.anandtech.com/show/6862/fcat-the-evolution-of-frame-interval-benchmarking-part-1/2 and http://techreport.com/review/24703/amd-radeon-hd-7990-graphics-card-reviewed/2 and http://www.geforce.com/hardware/technology/fcat
Short description: It puts a different color bar down the left of each rendered frame. In the capture you can easily detect where the tears are.