Алгоритмы сжатия для последовательности целых чисел - PullRequest
3 голосов
/ 15 апреля 2011

Существуют ли хорошие алгоритмы сжатия для большой последовательности целых чисел (данные аналого-цифрового преобразователя).Есть аналогичный вопрос

Но данные в моем случае разные.Это может быть отрицательным или положительным и изменяющимся как данные волны.

EDIT1: добавлены данные выборки

Пожалуйста, обратитесь к этому файлу для выборки данных

Ответы [ 4 ]

4 голосов
/ 15 апреля 2011

Как правило, если у вас есть знания о сигнале, используйте его для прогнозирования следующего значения на основе предыдущих. Затем - сжимаем разницу между прогнозируемым и реальным значением.

Если прогноз хороший, различия будут небольшими, а сжатие будет хорошим.

Что-то более конкретное вряд ли возможно без просмотра данных и знания их физической природы.

Обновление:

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

2 голосов
/ 15 апреля 2011

Может применяться практически любой стандартный алгоритм сжатия для байтовых строк;В конце концов, любой файл данных можно интерпретировать как последовательность целых чисел со знаком.Есть ли что-то особенное в ваших конкретных целых числах, которые, по вашему мнению, сделают их пригодными для какого-то более конкретного алгоритма?Вы упоминаете волновые данные;возможно взгляните на FLAC , который предназначен для аудиоданных;если ваши данные имеют сходные характеристики, эти методы могут быть полезны.

2 голосов
/ 15 апреля 2011

Вы хотите Delta Encode, а затем хотите применить RLE или код Голомба.Код Голомба может быть таким же хорошим, как и код Хаффмана.

1 голос
/ 15 апреля 2011

Вы можете различить данные, а затем применить RLE к подходящим субрегионам (т.е. между точками перегиба).

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