Currently the heuristic to detect a scene change is to use a custom perceptual hash, that tries to detect when a large portion of the image changed.
Even after many fine tuning, this perceptual hash is not very good: it tends to have many false positives (changing a scene when the scene is actually the same) and false negatives (not changing a scene when it did actually change).
I guess this is, despite by best efforts, the function is still too sensitive to scrolling (which makes a large part of games).
Ideas for improvements:
Try to find a perceptual hash less sensitive to scrolling (maybe like the sum of all luminance, instead of working per neighbouring blocks?)
Or just change the scene when the screen goes all black or all white (because most games will fade to black or white when changing a scene anyway).
Currently the heuristic to detect a scene change is to use a custom perceptual hash, that tries to detect when a large portion of the image changed.
Even after many fine tuning, this perceptual hash is not very good: it tends to have many false positives (changing a scene when the scene is actually the same) and false negatives (not changing a scene when it did actually change).
I guess this is, despite by best efforts, the function is still too sensitive to scrolling (which makes a large part of games).
Ideas for improvements: