The recently adopted V.42bis standard for data compressing modems is discussed from algorithmic, experimental, practical, and marketing standpoints. V.42bis is a conservative and economically-implementable scheme, one that compresses text about as well as the LempelZiv-Welch algorithm of the Berkeley Unix "compress" utility. Other Ziv-Lempel variants are discussed briefly. Even though better compression ratios can be obtained by these variants, V.42bis is shown to be eminently suitable for implementation on a contemporary modem with an 8-bit microprocessor, 40 Kbytes of RAM, 32 Kbytes of ROM, a 9.6 KBaud V.32 modemmodem connection, and a 19.2 KBaud EIA-232-D modem-terminal connection.
I IntroductionIt is now possible to buy a modem with the following characteristics. I will call such a device a V.42bis modem, although I caution the reader that other uses of the V.42bis standard are possible. The implementation and pricing information correspond to a MultiTech MT932EAB, introduced in late 3uly 1990. Six similar products are currently being offered by other manufacturers, according to an informative set of product reviews in PCReaders who are unfamiliar with the communication standards in the list above will find some information in Section 2 below. Should that discussion prove insufficient, I heartily encourage "Research supported by the National Science Foundation, through its Design, Tools and Test Program under grant number MIP 8706139. 1 you to read the PC Magazine reviews [7] and to obtain a copy of Black's excellent compendium and discussion of the V-, EIA-, and X-series standards [5].It is worth noting at the outset that the V.42bis modem's throughput is often limited by its EIA-232-D connection to the terminal or computer, or by the terminal or computer itself. At the 3:l compression ratio observed on some transmissions, a V.42bis modem has a potential throughput of 3200 characters per second. Unfortunately, throughputs of this magnitude are rarely observed in practice, for the reasons listed in Section 2.In Section 3, I describe the data compression method of V.42bis. Briefly, it is a textual substitution scheme based on Ziv and Lempe17s second algorithm [27, 121. V.42bis incorporates Welch's coding scheme [25, 111, as well as Miller and Wegman's (and, independently, Storer's) idea for incremental modification of a full dictionary using a least-recently-used (LRU) heuristic [16,17,22,8,23, 151. V.42bis also has an efficient "cleartext" escape mechanism, differing in implementation but not in spirit from that proposed by Fiala and Greene [13].Section 4 lists the compression ratios obtained by a sample V.42bis implementation, as well as the ratios obtained on the same files by the 4.3 bsd Unix "compress" utility, and by state-ofthe-art Ziv-Lempel codes by Miller and Wegman [16], Rogers and Thomborson [20], and Fiala and Greene [13]. My data shows that a well-implemented V.42bis modem will acheive 2.3:l compression on English text, 1.6:l compression on binaries, and 3.2:l compression on source code...