Symbol code summary Gibbs inequality Symbol codes unique decodeability prefix codes and binary trees optimal symbol codes Huffman algorithm