Библиотеки C/C++ для сжатия двумерного массива целых чисел

Вопрос или проблема

У меня есть два двумерных массива целых чисел. В основном эти целые числа являются значениями пикселей изображения FITS. Я хотел бы применить легкие безубыточные техники сжатия, такие как подавление нулей (SIMD-BP128) и т.д. к файлу FITS.

Я хочу знать, какие библиотеки доступны на C/C++, которые я могу использовать для применения этих техник сжатия.

Компания, в которой я работаю, имеет библиотеку для работы с изображениями LEADTOOLS C/C++, которая поддерживает сжатие изображений в различных форматах, включая более одного типа безубыточного сжатия. Библиотека поддерживает загрузку и сохранение изображений FITS. Вы можете использовать ее для загрузки несжатого изображения FITS, а затем сохранить его в другом формате, который использует безубыточное сжатие, таком как PNG, TIFF/LZW или даже безубыточный JPEG (который является допустимым, но не очень распространенным форматом, так как обычный JPEG является сжатым с потерями).

Если вы хотите попробовать, на этой странице есть бесплатная оценка.

Ответ или решение

При работе с двумерными массивами целых чисел, представляющими собой значения пикселей изображений в формате FITS, важно выбрать подходящие библиотеки для сжатия данных. В данной статье мы обсудим несколько библиотек на языке C/C++, которые могут помочь в реализации легковесных алгоритмов без потерь, таких как нулевая установка (null suppression) и SIMD-BP128.

1. LEADTOOLS

LEADTOOLS предоставляет мощный SDK для работы с изображениями, в том числе и поддерживающий формат FITS. Данная библиотека позволяет загружать не сжатые изображения FITS и сохранять их в других форматах, использующих безлопастные компрессии, таких как PNG и TIFF с LZW-кодированием. Это может быть полезно, если вам нужно быстро и эффективно сохранять изображения, соблюдая при этом целостность данных.

Преимущества:

  • Поддержка множества форматов изображений и методов сжатия.
  • Профессиональная документация и активное сообщество.
  • Возможность оценки функции перед покупкой.

Ссылка: LEADTOOLS SDK
Пробная версия: LEADTOOLS Downloads

2. Zlib

Библиотека Zlib является популярным выбором для сжатия данных и широко используется в различных приложениях. Она предлагает алгоритм DEFLATE, который может быть эффективен для сжатия двумерных массивов данных. Вы можете реализовать сжатие с помощью Zlib непосредственно для массива целых чисел, сохраняя при этом высокую степень сжатия.

Преимущества:

  • Высокая степень сжатия и скорость выполнения.
  • Простота интеграции и использования.

Ссылка: Zlib

3. LZ4

LZ4 – это библиотека сжатия, которая славится своей скоростью и эффективностью. Хотя она не предназначена для достижения максимального уровня сжатия, LZ4 предоставляет хорошие результаты благодаря высокой скорости сжатия и разжатия. Это может быть отличным выбором, если скорость имеет первостепенное значение.

Преимущества:

  • Очень высокая скорость сжатия.
  • Простота интеграции и использование.

Ссылка: LZ4

4. Brotli

Brotli – это современный алгоритм сжатия данных, который разработан Google. Он обеспечивает сжатие с хорошей степенью эффективности и может быть применен в различных сценариях, включая изображения. Библиотека также доступна для интеграции в C/C++.

Преимущества:

  • Высокая степень сжатия и эффективность.
  • Отличные результаты при сжатии текстовых и двоичных данных.

Ссылка: Brotli

5. SIMD-BP128

Если вы хотите реализовать специфические алгоритмы, такие как SIMD-BP128, необходимо самостоятельно написать часть кода, используя библиотеки SIMD (например, Intel Intrinsics) для оптимизации производительности. Однако в контексте более общих библиотек, вам следует изучить специализированные библиотеки сжатия, настроенные под конкретные алгоритмы.

Заключение

Выбор библиотеки для сжатия двумерных массивов целых чисел в формате FITS зависит от конкретных требований вашего проекта — будь то скорость, степень сжатия или простота интеграции. LEADTOOLS предоставляет готовое решение, тогда как Zlib, LZ4 и Brotli предлагают гибкость для ваших нужд в сжатии. Не забудьте про важность тестирования производительности и качества компрессии для вашего случая использования.

Оцените материал
Добавить комментарий

Капча загружается...