4. The method as recited in claim 1 , further comprising a step of maintaining a dictionary including a mapping of a first codeword (c 1 ) and a second codeword (c 2 ) to a third codeword (c new ), wherein the first codeword (c 1 ) and the second codeword (c 2 ) are previous output codewords, and wherein the converting step includes converting each read message to an input codeword (c in ) based on the dictionary codewords.
1. A method for compressing an input ensemble of a plurality of messages from an alphabet of messages into a compressed output ensemble, the method comprising the steps of: assigning a mapping of the messages in the alphabet of messages to a plurality of codewords to create a mapping table; maintaining a dictionary of codewords generated from the mapping of two output codewords; reading the input ensemble of messages; converting each read message to an input codeword (c in ) based on the mapping table, wherein the converting step includes converting each read message to an input codeword based on the dictionary codewords; and outputting the converted codewords as a compressed output ensemble, wherein each output codeword is constructed only from one or more previously constructed output codewords.