> The naive way to do so would be to encode each value in chunks of five bits.
I briefly got hung up on the chunk*s* for a single value. Maybe something like "The naive way to do so would be to encode each value using five bits." ?
This feels somewhat confusing to me, since 15 is 0b1111 and 16 is 0b10000. Maybe it would be better to skip the binary (-looking) representation for 15 and 16?
But neither 0b1111 nor 0b10000 is shown here though. The bit strings are produced by walking down the tree, not the digit-to-binary conversion of the numbers. But maybe I should emphasize that a bit earlier in the text.
I think from this step on it's no longer necessary to show the entire tree. Zooming in on the lower right section (i.e., the parts that have changed) might help to reduce noise and increase the clarity of the visualization.