Date of Award
Department of Computer Science
John M. Danskin
One of the most commonly used graphics protocol is the X Protocol, enabling programs to display graphics images. When running the X Protocol over the network, a lot of structured data (messages with fields) need to be transmitted. Delays can be detected by human users when connected through a low-bandwidth network. The solution is to compress the X protocol. XRemote, a network version of the X Protocol, uses Dictionary-based compression. In XRemote, strings are recorded in the dictionary. When a string repeats, its index in the dictionary is transmitted. Higher Bandwidth X (HBX) uses statistical modeling techniques instead. A context model, which depends on the nature of the field in a particular type of message and the frequencies of the values of the field, is associated with each field. XRemote is much faster than HBX, but HBX achieves better compression than XRemote. The KLZ system is developed to take advantage of our knowledge about the fields in the XMotionNotify packet (what X sends when the mouse moves) and fast Dictionary (LZW) compression. In essence, KLZ reorders and rewrites fields in the XMotionNotify packet so that the fields will be more easily compressed by the fast LZ coder. My experiments show that KLZ compresses this packet nearly as well as HBX, and 5 times better than pure LZ. KLZ is slightly faster than pure LZ, and and 10 times faster than HBX. Since many modems already implement LZ compression, KLZ could also be used to reorder data before passing them to the modem with LZ compression for transmission. This reordering would lead to vastly improved compression almost for free.
Lo, Ka-Tak, "KLZ: A Prototype X Protocol Compression System" (1997). Dartmouth College Undergraduate Theses. 180.