Как я могу использовать алгоритм сжатия JPEG для 1D данных (например, строки)? - PullRequest
0 голосов
/ 21 марта 2019

У меня есть данные (временные ряды), которые выглядят как {21,21,22,23,24,23, ....}, и я пытаюсь реализовать алгоритм jpeg в JAVA, чтобы увидеть, как сжатие jpeg работает с такими одномерными данными (мой план - сравнить все виды алгоритмов сжатия).

Я знаю, что использование JPEG в текстовых данных (или вообще сжатие с потерями в текстовых данных) не имеет особого смысла, но моя цель - увидеть, какие типы промежуточных шаблонов генерируются (например, «автомобиль» становится «qwses») и сколько из этого промежуточного шаблона напоминает исходные слова по сравнению с увеличением степени сжатия. Итак, идея примерно такая: https://www.youtube.com/watch?v=meovx9OqWJc&t=1s

Мой входной файл, как я уже говорил выше, представляет собой матрицу 1x458 и содержит числа от 10 до 300; например {10, 13, 14, 14, 15, 12, ...., 247, 247, 249, .., 284, 283}

Моя основная проблема заключается в том, что я не совсем уверен, как мне теоретически преобразовать алгоритм JPEG (изображение 8x8, умноженное на матрицу коэффициентов DCT 8x8 и т. Д., Адаптировано для данных 1xN (строка) и какую часть реализации следует изменить в формате JPEG (например, как я должен иметь dct-коэффициенты для таких данных и т. д.)? Если кто-то может объяснить это псевдокодом, это тоже было бы неплохо.

1 Ответ

0 голосов
/ 22 марта 2019

Вам необходимо предоставить больше информации о природе ваших одномерных данных и о том, почему вы думаете, что они сжимаются. Какие шаблоны вы ожидаете увидеть?

Например, если это действительно похоже на последовательность, которую вы показываете (21,21,22,23,24,23), то простая модель, использующая разность последовательных значений, приведет к получению данных, которые сжимаются по стандарту компрессоры без потерь типа gzip. Например. (21,0,1,1,1, -1).

Чтобы воспользоваться корреляциями более высокого порядка, вам может потребоваться БПФ. Вы можете эффективно выполнять БПФ для любой последовательности из 2 n сэмплов (не только восьми сэмплов, как это делает JPEG DCT). Существуют библиотеки, которые делают целочисленные БПФ без потерь, а также другие преобразования, такие как вейвлеты, которые вы можете попробовать.

...