Алгоритм сжатия массива - PullRequest
       3

Алгоритм сжатия массива

2 голосов
/ 08 августа 2010

У меня есть массив из 10345 байтов, я хочу сжать массив, а затем распаковать его, пожалуйста, предложите мне алгоритм сжатия, который может уменьшить размер массива. Я использую язык c, а массив имеет тип unsigned char.

Перефразировано: Может ли кто-нибудь предложить универсальный алгоритм сжатия (или библиотеку) для C / C ++?

Ответы [ 2 ]

8 голосов
/ 08 августа 2010
3 голосов
/ 08 августа 2010

Это сообщение вики сообщества.Я не хочу никаких баллов за это - я уже проголосовал за закрытие вопроса.

Количество байтов для сжатия имеет очень мало общего с выбором алгоритма сжатия, хотя это влияет на реализацию,Например, если у вас меньше 2 ^ 15 байт для сжатия, если вы используете ZLib, вы захотите указать уровень сжатия менее 15. Уровень сжатия в элементах управления Zlib (один из двух таких параметров)глубина словаря «оглядки назад».Если ваш файл короче 16 Кбайт, тогда словарь 32 Кбайт никогда не будет заполнен наполовину;в этом случае используйте один меньший бит указателя при просмотре для 1/15-го ребра сжатия по сравнению с установкой ZLib в значение «max.»

. Содержимое данных имеет значение.Если вы отправляете изображения в основном с фоном, то вам может потребоваться кодировка длины выполнения (например, используемая в Windows .BMP).

Если вы отправляете в основном текст на английском языке, чем вы хотели бы использовать что-то вроде ZLib, которая реализует кодирование Хаффмана и сжатие словаря в стиле LZW.

Если ваши данные были зашифрованы, то попытка сжать их не удастся.

Если ваши данные определенного типасигнала, и вы можете допустить некоторую потерю деталей, тогда вы можете преобразовать его в частотное пространство и отправить только основные компоненты.(например, JPEG, MP3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...