Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Butteraugli – a tool for measuring differences between images (github.com/google)
71 points by aorth on May 9, 2016 | hide | past | favorite | 11 comments


For reference, I found this tool mentioned in an interesting Medium post:

https://medium.com/@duhroach/reducing-jpg-file-size-e5b27df3...


Slightly off-topic, but it annoys me when Windows filename conventions (e.g. a ".jpg" suffix) are used in lieu of a format's name (e.g. JPEG). Especially when such names are short, well-known, etc.

If, for example, I saw an article titled "Parsing HTM with BeautifulSoup", I'd be a little wary of the content.


You might have a point in another context, but '.jpg' is so completely ubiquitous that you come off as pointlessly pedantic.


Thank you for linking it! Great post.


Would be interesting how this compares to tools like pixelmatch [1] which basically compares each pixel within YIQ color space using euclidian color distance.

[1] https://github.com/mapbox/pixelmatch-cpp


This couldn't have come at a better time (for me). I'm playing with a genetic programming library to recreate images from some basic rules and I've been really unhappy with the fitness equality functions I've been able to find. This looks like it may have been made for the job.


There is definitely room for better and less gameable quality evaluation functions than PSNR and SSIM, but I would have liked to see at a minimum a description of how the algorithm was designed and a practical evaluation against other similarity metrics.

See e.g. the graphs in https://ece.uwaterloo.ca/~z70wang/research/ssimplus/ comparing human assigned scores against different similarity metrics.


Thanks for the link. Very interesting.

I agree with you about PSNR and SSIM. There are plenty of times where they do a less than stellar job and a quick eye test makes it obvious. Unfortunately the VPxs and h.26xs of the world tune their internal comparison metrics for these to make their codecs score better on comparison tests. Consequently, this can sometimes lead to less than optimal video quality.

If this can be applied generally, work better than PSNR/SSIM and be made to run fast enough, it would be interesting to see if this could be used to improve block matching in video codecs.

*Edit grammar.


How is this better than phashes? I am new to this, would love for someone with expertise to explain what the best way to hash images are.


phashes compute a hash on one image which you can then compare with the hashes for other images; butteraugli computes the difference between two images. If you're trying to find duplicates among a set of images, phashes will work in O(n log n) time and this will run in O(n^2) time, but with more accurate results.


Sounds interesting, but some examples would be nice.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: