Похоже, вы сейчас смотрите на алгоритмы сжатия общего назначения.Самый эффективный способ сжать небольшие порции данных - это создать специальный компрессор, который знает структуру ваших данных.
Важно то, что вам нужно согласовать код, который вы используете, с распределением значений.вы ожидаете от своих данных: чтобы получить хороший результат от гамма-кодирования Elias, вам нужно убедиться, что значения, которые вы кодируете, являются маленькими положительными целыми числами ...
Если разные целые числа в одном и том же блоке не являются полностью независимыми (например, если ваши массивы представляют собой временные ряды), вы можете использовать это для улучшения сжатия (например, различия между последовательными значениями во временных рядах, как правило, имеют небольшие знаковые целые числа).Тем не менее, поскольку каждый блок должен быть независимо сжат, вы не сможете воспользоваться этим преимуществом различий между последовательными блоками.
Если вы беспокоитесь, что вашКомпрессор может превратиться в «расширитель», вы можете добавить начальный флаг, чтобы указать, сжимаются ли данные или нет.Затем, в худшем случае, когда ваши данные вообще не соответствуют вашей модели сжатия, вы всегда можете скопировать и отправить несжатую версию;ваш наихудший случай - размер флага ...