Adaptive Huffman coding: Difference between revisions

Content deleted Content added
No edit summary
m Example: clean up, typo(s) fixed: Vitter’s → Vitter's (2)
Line 88:
Step 3:
 
NYT spawns two child nodes: 252 for NYT and 253 for leaf node, both with weight 0. Increase weights for 253, 254, and root. To maintain Vitter’sVitter's invariant that all leaves of weight w precede (in the implicit numbering) all internal nodes of weight w, the branch starting with node 254 should be swapped (in terms of symbols and weights, but not number ordering) with node 255. Code for "b" is 11.
 
For the second "b" transmit 11.
Line 96:
Step 4:
 
Go to leaf node 253. Notice we have two blocks with weight 1. Node 253 and 254 is one block (consisting of leaves), node 255 is another block (consisting of internal nodes). For node 253, the biggest number in its block is 254, so swap the weights and symbols of nodes 253 and 254. Now node 254 and the branch starting from node 255 satisfy the SlideAndIncrement condition<ref name=":0"/> and hence must be swapped. At last increase node 255 and 256’s256's weight.
 
Future code for "b" is 1, and for "a" is now 01, which reflects their frequency.