3 ms·
The first compression algorithm I implemented (on and IBM PC/AT in the mid '80s) was LZW. It's my favorite type of algorithm - elegant but hard to get your hea
by smoyer 6y ago
The first compression algorithm I implemented (on and IBM PC/AT in the mid '80s) was LZW. It's my favorite type of algorithm - elegant but hard to get your head wrapped around. Once you "get it" it seems so obvious.
- ip26 6y agoMany good inventions are like that.
- saltedonion 6y agoNearly all break through inventions seem obvious in hindsight. I guess putting the pieces together and connecting the dots looking forward is what’s incredibly hard. The search space can still be immense.
- beagle3 6y agoLZW is just a (nontrivial and very effective) trick to improve on the early behavior of LZ78; they are both asymptotically optimal. LZ78 is incredibly simple, elegant AND easy to get your your head around. I had implemented it once in 2 lines of Python. some 25 years ago. If I can shake the rust maybe I'll be able to rederive it.
- jimis 6y agoI had implemented it once in 2 lines of Python. some 25 years ago. If I can shake the rust maybe I'll be able to rederive it. Please do! I would love to see a concise and readable implementation in Python.
- user-the-name 6y agoIt's a bit of a shame that the LZ78-LZW linage of algorithms basically died out at that point. Most of modern lossless compression is instead based on the LZ77-LZSS-... linage, which has a massive number of different improvements and variations.