3 ms·
Great article! I wish I would have had this a couple of years ago when I was working on improving a very old lossy image compression algorithm. I don't want to
by michaelrpeskin 6y ago
Great article! I wish I would have had this a couple of years ago when I was working on improving a very old lossy image compression algorithm. I don't want to into great detail here, but there's a highly compressed image format that's designed so that it's super easy for low power (think 1990's embedded processors) to read and render. Basically the decompression is a bunch of LUTs - not just palette lookups, but also pattern lookups. The hard part is creating the LUTs which can be done on fast computers.
As the images we were trying to compress got more detail in them we had to redo the compression algorithm so that we could keep as much detail as possible. The key was to do the compression in a new color space and then undo the color space transform before we saved the LUTs.
I ended up creating an empirical color space that was the best for each tile we were compressing (think PCA), but now that I look at this, it might even do better since the perception is so consistent.
- nitrogen 6y agoReminds me that back in high school my programming competition team won an image compression challenge by implementing RLE compression in a YUV-ish colorspace (the competition template provided colorspace transforms and we picked the one that worked best). Somehow that looked terrible but fooled the automated grading program. Another team had attempted JPEG, but they couldn't get their codec to work. They probably would have won otherwise.