<feed xmlns='http://www.w3.org/2005/Atom'>
<title>halibut/huffman.c, branch master</title>
<subtitle>My halibut tree</subtitle>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/'/>
<entry>
<title>Fill in a truncated comment in huffman.c.</title>
<updated>2017-09-29T13:06:29+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2017-09-29T13:04:42+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=12107a73eff6b6f6a861ba156e94e13d9bcdbe56'/>
<id>12107a73eff6b6f6a861ba156e94e13d9bcdbe56</id>
<content type='text'>
I just happened to run across this clearly unfinished paragraph in
build_huffman_tree(), and when I wrote the rest of it, I realised that
there was actually an implicit input constraint which I hadn't
documented, relating the size of the symbol alphabet to the upper
bound on Huffman code length. (Fortunately, Deflate never violates
that constraint, because both of those values are constant in every
Huffman tree it builds.) So I've also added a pair of assertions, one
of which enforces that constraint.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I just happened to run across this clearly unfinished paragraph in
build_huffman_tree(), and when I wrote the rest of it, I realised that
there was actually an implicit input constraint which I hadn't
documented, relating the size of the symbol alphabet to the upper
bound on Huffman code length. (Fortunately, Deflate never violates
that constraint, because both of those values are constant in every
Huffman tree it builds.) So I've also added a pair of assertions, one
of which enforces that constraint.
</pre>
</div>
</content>
</entry>
<entry>
<title>Factor LZ77 and Huffman routines out of deflate.c.</title>
<updated>2017-05-13T17:22:09+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2017-05-10T06:10:14+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=715a3bef377aeee898c427be99b1acf440b4a5e5'/>
<id>715a3bef377aeee898c427be99b1acf440b4a5e5</id>
<content type='text'>
The general routines for analysing a buffer into an LZ77ish stream of
literals and matches, and for constructing a Huffman tree in canonical
format, now live in their own source files so that they can be reused
for other similar compression formats. Deflate-specific details like
the exact file encoding are left in deflate.c.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The general routines for analysing a buffer into an LZ77ish stream of
literals and matches, and for constructing a Huffman tree in canonical
format, now live in their own source files so that they can be reused
for other similar compression formats. Deflate-specific details like
the exact file encoding are left in deflate.c.
</pre>
</div>
</content>
</entry>
</feed>
