Ваш вопрос, по-видимому, связан с энтропийным кодированием Порядка-0: http://en.wikipedia.org/wiki/Entropy_encoding
Самый известный алгоритм этого семейства - кодирование Хаффмана: http://en.wikipedia.org/wiki/Huffman_coding
Хаффман не только скажет вам, чтоиспользуются только 64 символа, и поэтому необходимы только 6 битов на символы: это также будет иметь значение между частыми символами, такими как (пробел), и редкими, такими как (;).Затем он создаст код, в котором частые символы используют меньше битов, чем более редкие, что приводит к лучшему сжатию (обычно 4,5 бита на символ в текстах на английском языке).
Кодирование Хаффмана - это метод всестороннего сжатия, используемый какчасть многих алгоритмов сжатия, в том числе zip.Вы можете найти демонстрационную программу, которая применяет только один проход сжатия Хаффмана здесь (Huff0), это поможет вам определить, сколько можно получить, используя эту технику для ваших вводных примеров: http://fastcompression.blogspot.com/p/huff0-range0-entropy-coders.html