стандартные алгоритмы сжатия это конечно хорошо, но как правило самый лучший вариант это , особенно зная чего эти данные из себя представляет, придумать свой (не велосипед а именно свой)
Вот Вы говорите что данные это в основном цифирьки, вот и упакуйте их 2 цифры в 1 байт.
честно говорю

недавно была аналогичная проблема упаковывать данные - перепробовал кучу реализаций - ресурсов много жрут а сжимают не очень. В итоге дешево и сердито получилось
использовать банальный rle + разницу между значениями (благо данные у меня такие были)
p.s.
>>в основном цифры и _небольшой_ субсет латинских букв
например можно сделать таблицу перекодировки используемого словаря в непрерывну последовательность,
например, от 0 до 31 - уже можно жать 5 битами. ну и т.д.
Сообщение отредактировал Romario - Jun 22 2006, 15:06