-
Notifications
You must be signed in to change notification settings - Fork 755
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
Some VIFp adjustments proposal #826
Comments
Thanks for looking into this. We plan to have a thorough investigation of the accuracy-speed tradeoff later this year, and will be considering your proposal. |
VIFp Python script with my adjustments (took it from here). Also fixed error<1 when comparing identical images and simplified.
Accuracy improvement with all the changes: Noise 0.79->0.846, Actual 0.823->0.875, Simple 0.902->0.929, Exotic 0.546->0.645, Full 0.611->0.686 |
Accuracy with fine scale sigma_nsq = 128 (maximum reasonable value, ~16 in Lab color space): Noise - 0.871, Actual - 0.897, Simple - 0.953, Exotic - 0.728, Full - 0.745. Would be higher than MS-SSIM if not for Exotic. |
Calculating variances in Lab color space looks like is slightly more accurate. |
1. Use N/3 to calculate the standard deviation of Gaussian filter instead of N/5.
Float weights:
Integer weights:
2. For downsampling use size=5, sigma=1.08 Gaussian filter for all scale levels (similar to binom5 that used in IW-SSIM) to speed up processing and reduce aliasing:
0.06760634, 0.24462097, 0.37554539, 0.24462097, 0.06760634
4431, 16031, 24612, 16031, 4431
3. Hard-code
sigma_nsq
for coarse scales.Accuracy drops with
sigma_nsq
>2 or <1. Almost no difference with values in range [1;2]. So just hard-code it to 1 (experiments show this to be optimal). Makes adjustablesigma_nsq
much more flexible.The text was updated successfully, but these errors were encountered: