Pekka Väänänen
banner
pekkavaa.bsky.social
Pekka Väänänen
@pekkavaa.bsky.social
Avid reader, computer graphics fan and atmospheric jungle beats enjoyer. Demoscene: cce/Peisik.

Blog at https://30fps.net/
Whoops here's a fixed link en.wikipedia.org/wiki/Color_a...
Color appearance model - Wikipedia
en.wikipedia.org
November 17, 2025 at 8:24 PM
My apologies, I only tested the download links locally. Should be fixed now. And thanks for the interest.
November 10, 2025 at 9:53 PM
It's a good question. Fabien Sanglard's book suggests the palette conversion was done on a NeXT workstation before being transferred to a DOS machine for a Deluxe Paint clean up. But no mention of the palette origins.
October 31, 2025 at 9:14 AM
Really makes it sound like a bigger deal than it is
October 27, 2025 at 7:42 PM
Perhaps in that case it's also possible to fit some kind of better weights of the filter kernel? At least if you focus on a selected corpus of images.
October 14, 2025 at 9:01 AM
After these improvements the median split position works surprisingly well and the only thing I've consistently seem to improve the result (MSE-wise) is Celebi's 2012 "VCL" method that splits at the mean but runs k-means with two clusters afterwards to finetune the split plane in 3D.
October 9, 2025 at 11:03 AM
Sure I've tried a lot of things. These help: Give more weight to green, RGB weights like (1,1.2,0.8) work OK, split the cluster with largest variance (sum of squared errors), split the axis with the most marginal variance, run 1-10 k-means iterations at the end, pixel map in Oklab space (maybe).
October 9, 2025 at 11:01 AM
Uneven or messy line art is another such detail, in illustrations I mean. When drawing with the target resolution in mind it's possible to adapt the style the constraints. Hard to do when converting.
October 3, 2025 at 9:48 PM
OK I see, perhaps "sensitivity" or "density" would fit. Sometimes it's surprisingly difficult to find names for simple things, for example the "black&white" intensity of a color we can call "luminosity" or "lightness" but what is its opponent? Colorfulness? Chromaticity?
October 3, 2025 at 9:07 PM
Works super well! And doesn't sound like it's hard to implement after the ramps have been detected.
October 3, 2025 at 9:01 PM
I think here I had a 2D array, so x[i] returned a *view* to a row. And however the a,b=b,a syntactic sugar is implemented, it fails to make temporary copy (how could it know?) and writes the same value twice instead. Advanced indexing is handled by NumPy internally and it could be still in Python.
September 28, 2025 at 12:20 PM