
Butteraugli – a tool for measuring differences between images - aorth
https://github.com/google/butteraugli
======
aorth
For reference, I found this tool mentioned in an interesting Medium post:

[https://medium.com/@duhroach/reducing-jpg-file-
size-e5b27df3...](https://medium.com/@duhroach/reducing-jpg-file-
size-e5b27df3257c#.58x5cckba)

~~~
chriswarbo
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.

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

------
tauchunfall
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](https://github.com/mapbox/pixelmatch-cpp)

------
ComputerGuru
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.

------
tveita
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/](https://ece.uwaterloo.ca/~z70wang/research/ssimplus/)
comparing human assigned scores against different similarity metrics.

~~~
lpaone
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.

------
electic
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.

~~~
ratsbane
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.

------
Florin_Andrei
Sounds interesting, but some examples would be nice.

