Lempel-Ziv-Welch algorithm