A variable length code is a data compressioncode in which the length of the output of the code is dependent not only on the length of the input of the code, but also the content of the input. This definition is somewhat ambiguous, however. It is usually taken to mean a fixed-to-variable length code such as a Huffman code, but it could also include other codes that have a variable length output per compression operation, such as the variable-to-variable length LZ77 and LZ78 codes. In its widest sense, it could also include variable-to-fixed length codes, which have fixed output per compression operation but variable output per input symbol. Taken in this sense, all codes achieving some form of lossless data compression are variable length codes. In computer science and information theory, data compression or source coding is the process of encoding information using fewer bits (or other information-bearing units) than an unencoded representation would use through use of specific encoding schemes. ... In communications, a code is a rule for converting a piece of information (for example, a letter, word, or phrase) into another form or representation, not necessarily of the same type. ... In computer science and information theory, Huffman coding is an entropy encoding algorithm used for lossless data compression. ... Lossless data compression is a class of data compression algorithms that allows the exact original data to be reconstructed from the compressed data. ...