commit | 8d0ec65a3d5fc0524d4bae7f075d51076def03ff | [log] [tgz] |
---|---|---|
author | Amin Hassani <ahassani@google.com> | Tue Jun 05 16:02:28 2018 -0700 |
committer | Amin Hassani <ahassani@google.com> | Wed Jun 06 13:59:21 2018 -0700 |
tree | 633cd3a9efa37338599e29899e5f8f575360b91f | |
parent | dd24d5c8b778677717520c6c2f25bb44bee5582c [diff] |
Use Puffer (instead of zlib library) to find deflate locations Currently, we are dependent on zlib to find deflate locations in gzip and zip archives. This means we have to pass a deflate stream one time to zlib library and two times to puffer (to find deflate subblocks locations and puff locations). This patch changes the puffer function to terminate the call when the final block is reached. Hence, it can be used easily to identify the location of deflate subblocks by only one pass (plus one pass for puff locations). This will reduce the delta payload generation time. Bug: 80148379 Test: unittests Test: test_corpus.py Test: measure_patch_size.py Change-Id: I4e7e6ed1edc2d5636124600d41f776332cda570a
Source code for Puffin: A utility for deterministic DEFLATE recompression.
TODO(ahassani): Describe the directory structure and how-tos.
Alphabet A value that occurs in the input stream. It can be either a literal:[0..255], and end of block sign [256], a length[257..285], or a distance [0..29].
Huffman code A variable length code representing the Huffman encoded of an alphabet. Huffman codes can be created uniquely using Huffman code length array.
Huffman code array An array which an array index identifies a Huffman code and the array element in that index represents the corresponding alphabet. Throughout the code, Huffman code arrays are identified by vectors with postfix hcodes_
.
Huffman reverse code array An array which an array index identifies an alphabet and the array element in that index contains the Huffman code of the alphabet. Throughout the code, The Huffman reverse code arrays are identified by vectors with postfix rcodes_
.
Huffman code length The number of bits in a Huffman code.
Huffman code length array An array of Huffman code lengths with the array index as the alphabet. Throughout the code, Huffman code length arrays are identified by vectors with postfix lens_
.