Сжатие любого формата изображения с использованием сжатия Fractal

Я новичок в сжатии изображений или в этом отношении обработки изображений. Я пытаюсь научиться фрактальному сжатию изображений из известной книги Ювала Фсихера. В конце книги он дал весь код сжатия-распаковки на C. Я в основном работаю в CUDA. Настоящий код C от Fisher имеет дело только с необработанными изображениями.

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

Итак, у меня есть следующие проблемы:

Нужно ли изучать формат изображения BMP, прежде чем приступить к его сжатию, или я могу рассматривать его как матрицу и сжимать его с помощью Fractal Image Compression. Фрактальное сжатие работает над концепцией нахождения сходства в картах области диапазона с использованием IFS (Итеративная система функций), которая в основном представляет собой набор аффинных преобразований.

1 ответ

Решение

Fractal Compression полностью не зависит от формата хранения исходного файла. После того, как вы загрузили BMP в изображение или буфер, это будут необработанные пиксели (так же, как если бы вы читали PNG или JPEG). Если ваш BMP несжатый, его очень легко прочитать; это необработанные пиксели после прохождения заголовка. Но гибкий ридер также поддерживает различные глубины пикселей и степень сжатия, поэтому лучше найти библиотеку, которая сделает это за вас, если только вам не нужно работать только с собственными тестовыми изображениями.

Другие вопросы по тегам