Data Compression Algorithms of LARC and LHarc Haruhiko Okumura* *The author is the sysop of the Science SIG of PV-VAN. His address is: 12-2-404 Green Heights, 580 Nagasawa, Yokosuka 239 Japan --------------------------------------------------------------- 1. Introduction In the spring of 1988, I wrote a very simple data compression program named LZSS in C language, and uploaded it to the Science SIG (forum) of PC-VAN, Japan's biggest personal computer network. That program was based on Storer and Szymanski's slightly modified version of one of Lempel and Ziv's algorithms. Despite its simplicity, for most files its compression outperformed the archivers then widely used. Kazuhiko Miki rewrote my LZSS in Turbo Pascal and assembly language, and soon made it evolve into a complete archiver, which he named LARC. The first versions of LZSS and LARC were rather slow. So I rewrote my LZSS using a binary tree, and so did Miki. Although LARC's encoding was slower than the fastest archiver available, its decoding was quite fast, and its algorithm was so simple that even self-extracting files (compressed files plus decoder) it created were usually smaller than non-self-extracting files from other archivers. Soon many hobby programmers joined the archiver project at the forum. Very many suggestions were made, and LARC was revised again and again. By the summer of 1988, LARC's speed and compression have improved so much that LARC-compressed programs were beginning to be uploaded in many forums of PC-VAN and other networks. In that summer I wrote another program, LZARI, which combined the LZSS algorithm with adaptive arithmetic compression. Although it was slower than LZSS, its compression performance was amazing. Mi...