Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

White frame perceptual progress can be significantly greater than 0 #48

Closed
patrickhulce opened this issue May 8, 2017 · 3 comments · Fixed by #49
Closed

White frame perceptual progress can be significantly greater than 0 #48

patrickhulce opened this issue May 8, 2017 · 3 comments · Fixed by #49

Comments

@patrickhulce
Copy link
Collaborator

patrickhulce commented May 8, 2017

The problem now that we're using real SSIM is that getPerceptualProgress normalizes the value relative to the global min instead of the SSIM of the white frame with the target frame. This creates some very unintuitive histograms based on the fact that a page with a white background can be quite structurally similar to a white frame.

A recent trace of CNN highlights this issue. Their home page loads content with header, image, and text before an ad pops in above that pushes all the content down. The frame before the ad has a structural similarity with the target of ~18% while empty white has a structural similarity of ~30% which results in the following histogram.
image

This artificially deflates the perceptual speed index for credit before first paint, and does not appropriately punish the site for progressively rendering toward a target that is abruptly changed. The histogram should instead look like the following if normalized to the first frame:
image

Before Ad After Ad
image image
@pahammad
Copy link

pahammad commented May 8, 2017

We explicitly addressed this issue (in VisualMetrics repository) earlier by starting the pairwise frame comparison from firstPaint frame instead of time=0 (white) frame. The modified PSI equation looks like: PSI = firstPaint + sum (from firstPaint to end) {Perceptual_pairwise_FrameDifference}. This means you don't have to compute pairwise frame differences upto firstPaint. This may make the compute faster as well. In this formula, Perceptual_pairwise_FrameDifference is computed using SSIM.

@patrickhulce
Copy link
Collaborator Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants