Interesting, but my testing suggests that SplatHash is very weak at preserving global features, at least for synthetic images [1]. Both BlurHash and ThumbHash were able to preserve most of them, at the expense of worse (but still non-zero) local feature reproduction, but SplatHash simply discarded all global features! I guess you need to store both local features (Gaussian splats) and global features (cosine bases) for the best result. The currently unused padding bit might be useful for that...
Very cool. To my eye, the splats are sometimes having too much contrast -- implying more "stark" visual features that don't actually manifest in the real image. Presumably the radius and the opacity curve of the gradients can be tuned to taste at the decoding phase, to make the splats softer?
unsorted2270 2 hours ago [-]
adding to my roadmap
GaggiX 2 hours ago [-]
The 6 blobs of colors look very weird after testing a few images, I feel like ThumbHash is much more natural and the downsides are minimal compare to SplatHash.
therealdeal2020 2 hours ago [-]
so you turn images into colored bubbles? Why do people use this?
liamwire 1 hours ago [-]
Inline it into a website's HTML to provide a low-res preview of an image as opposed to a blank placeholder or layout shift.
esafak 1 hours ago [-]
For privacy preservation and progressive revelation.
k2xl 2 hours ago [-]
Thanks for sharing. I didn’t even know this type of thing had multiple algorithms.
Can you share what are the reasons someone may want to compress and image to 16 bytes?
montroser 2 hours ago [-]
For image placeholders while the real image is loading. At 16 bytes, that can easily be just another attribute on an html img tag.
lifthrasiir 2 hours ago [-]
These things are called Low-Quality Image Placeholders (LQIP) and frequently used for front-end performance engineering.
Rendered at 14:49:36 GMT+0000 (Coordinated Universal Time) with Vercel.
[1] I used my own avatars and icons as a test set. For example, https://avatars.githubusercontent.com/u/323836?s=400&v=4
Can you share what are the reasons someone may want to compress and image to 16 bytes?