Существует 2 основных типа сжатия.
Сжатие с потерями – это метод кодирования данных, при котором файл уменьшается за счет отказа от определенной информации. Когда файл не сжат, не вся исходная информация будет восстановлена. Сжатие с потерями обычно используется для сжатия видео, аудио и изображений, а также в интернет-телефонии. Потеря информации при сжатии часто остается незаметной для большинства пользователей. Методы сжатия с потерями используются во всех DVD, Blu-ray дисках и большинстве мультимедиа, доступных в Интернете.
Однако сжатие с потерями не подходит в тех случаях, когда исходные данные и данные для распаковки должны быть идентичны. В этой ситуации пользователю необходимо использовать сжатие без потерь. Этот тип сжатия применяется при сжатии программных приложений, файлов и текстовых статей. Но и для изображений может понадобиться сжатие без потерь.
QOI – это кодер изображений, утверждающий, что скорость сжатия в 20-50 раз и распаковки в 3-4 раза выше, чем у библиотеки Libpng.
Файл QOI состоит из 14-байтового заголовка, за которым следует произвольное количество «кусков» данных и 8-байтовый маркер конца. Изображения кодируются строка за строкой, слева направо, сверху вниз.
Установка
В этом разделе мы установим QOI и несколько программ просмотра изображений, поддерживающих файлы изображений .qoi
.
Мы тестировали QOI с последней версией Ubuntu Это версия 23.10 под кодовым названием Mantic Minotaur Имеется deb-пакет, который устанавливается командой:
sudo apt install qoi
На рисунке ниже показаны установленные файлы.
Опциональное ПО
qoiview
Мы установили qoiview, простой просмотрщик файлов изображений .qui:
На Ubuntu нам сначала нужно было установить некоторые пакеты разработки.
Возможно, некоторые или все эти пакеты уже установлены в вашей системе.
Клонирование репозитория qoiview на GitHub:
git clone https://github.com/floooh/qoiview
Переход во вновь созданную директорию.
cd qoiview
Сборка программы:
cmake ..
cmake --build .
Теперь у нас есть базовый просмотрщик изображений для просмотра файлов изображений .qoi.
tev
Для более функциональной программы просмотра изображений мы также установили tev. Этот проект предоставляет AppImage (формат для распространения портативного программного обеспечения в Linux). Нам также потребовалось установить пакет libfuse2.
sudo apt install libfuse2
Скачайте приложение tev (.appimage) с GitHub проекта tev и сделайте .appimage исполняемым.
chmod u+x tev.appimage
Как пользоваться?
qoiconv позволяет конвертировать существующие PNG-файлы в формат QOI, а также преобразовывать их обратно. Синтаксис программы прост.
В результате тестирования ряда файлов изображений мы получили время сжатия изображений более чем в 30 раз быстрее, чем у библиотеки Libpng. Сжатие, обеспечиваемое QOI, в среднем примерно такое же, как и у PNG, однако оно зависит от данных изображения. Мы видели файлы значительно большего размера с QOI.
Существует лишь несколько штатных программ просмотра изображений, поддерживающих файл .qoi. На первой странице этой статьи мы установили qoiview и tev.
Вот изображение высокого разрешения, отображаемое с помощью qoiview.
Более функциональный просмотрщик изображений с поддержкой QOI – tev.
Заключение
QOI достаточно полнофункциональна. Он не задумывался как сложный формат, а объединяет несколько простых идей. QOI также может быть сжат с помощью общих алгоритмов сжатия.
Со временем, надеюсь, все больше программ будут поддерживать формат QOI. Но уже сейчас он полезен для сжатия и архивирования изображений.
qoiconv написан на языке C, но имеются реализации и для других языков, включая Go, Rust, Python Java, Dart и Lua.
Другие инструменты командной строки для сжатия изображений можно найти в нашей подборке. Все они бесплатны и имеют открытый исходный код.
- Веб-сайт: qoiformat.org
- Поддержка: GitHub
- Разработчик: Dominic Szablewski
- Лицензия: Лицензия MIT
QOI написан на языке C.
Комментарии (0)