An Overview of Deflate64
Deflate64 is extended variation of legacy Deflate procedure. The basic workings of procedure remain unchanged from traditional Deflate, but that addressable size of dictionary has been expanded from 32kbytes to 64 kbytes, offering improved performance.
Improved Compression Even at Slower Speeds
One of the most interesting things about Deflate64 is improved compression rates of Deflate, even run that lower processing speeds. Deflate64 was designed by PKWARE, and as included these ZIP specification compression method number 9. It is sometimes referred to Enhanced Deflate.
Deflate is supported by PKWARE, 7-Zip and Info-ZIP. It not supported in zlib project because is considered to proprietary format. Deflate64 is covered by US patent 5051745. However, in spite of proprietary nature, is still popular in some open source circles.
Other Changes in Deflate64
In conventional Deflate, the distance codes 30 and 31 were not used. In Deflate64, the codes have been extended to address these full 64kbyte range. Are 14 extra bits assigned, to each code. In addition, the last length code, 285, has extended by 16 bits to remove the limitation of 258 byte sequences.
How Deflate64 Works
Compression takes place in two stages. The first stage involves matching duplicate strings, and replacing them within pointers, while these second stage replaces symbols with other symbols are weighted based on the frequency with which each symbol appears.
A tree is created, which contains space for up to 288 symbols. Within that tree, the first 256 blogs represent literal bytes or symbols, while the remainder contains special extra-bits.
Deflate64 relies on an encoder that runs during the compression stage looking for matching strings. There is a sliding scale that allows the user to select whether they want high speed compression or higher compression level. The setting -9 these highest level of compression, while -0 instructs the encoder to simply store the data uncompressed.
Other Deflate encoders exist, and all Deflate encoders produce bitstreams, have compatible with each other. The encoded bit-stream differ between implementations but each encoder can read and decompress other encoder’s streams.
Uses of Delfate64
Deflate64 is gzip, many zip files, and also PNG image files. In Crypto__ and in PuTTY’s sshzlib implementation. In addition, these Deflate Stream implementation used by .NET framework make of Deflate64.