The most recent unincombered improvement I’m aware of is asymmetric numeral system (ANS) entropy encoding, which doesn’t limit symbol frequencies to powers of two: https://arxiv.org/abs/1311.2540

It’s quite clever and efficient, but it requires encoding in the opposite direction as encoding.

I implemented table-based ANS with a markov-chain of tables to take advantage of context in order to encode player inputs for a multiplayer game, once. If the previous key press was up, then the probability assigned to the next key press being up was very high, and so it would take less than a bit to encode. It was complete overkill compared to a delta encoding scheme, but it was a great project for learning about entropy encoding.

The most recent unincombered improvement I’m aware of is asymmetric numeral system (ANS) entropy encoding, which doesn’t limit symbol frequencies to powers of two: https://arxiv.org/abs/1311.2540

It’s quite clever and efficient, but it requires encoding in the opposite direction as encoding.

I implemented table-based ANS with a markov-chain of tables to take advantage of context in order to encode player inputs for a multiplayer game, once. If the previous key press was up, then the probability assigned to the next key press being up was very high, and so it would take less than a bit to encode. It was complete overkill compared to a delta encoding scheme, but it was a great project for learning about entropy encoding.