Доступна библиотека libjpeg-turbo 3.0

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3258
Зарегистрирован: 20.08.2022

#

Доступна библиотека libjpeg-turbo 3.0
Дата публикации:Tue, 04 Jul 2023 07:57:03 +0300




Спустя пять лет с момента формирования ветки 2.x представлен релиз libjpeg-turbo 3.0.0, высокопроизводительной библиотеки для кодирования и декодирования изображений в формате JPEG. Libjpeg-turbo представляет собой совместимый на уровне API/ABI форк классической библиотеки libjpeg, нацеленный на обеспечение максимальной скорости кодирования и декодирования. Кроме стандартного libjpeg API библиотека предоставляет собственный TurboJPEG API и ряд расширений с моделями представления цвета, дающих возможность сжимать изображения в 32-разрядные пиксельные буферы (RGBX, XBGR) или декодировать из них. Код распространяется под тремя BSD-подобными лицензиями IJG, модифицированной BSD и zlib, бинарные сборки подготовлены для Linux (rpm, deb), macOS и Windows.




По сравнению с libjpeg библиотека libjpeg-turbo позволяет добиться ускорения операций кодирования и декодирования JPEG в 2-4 раза, благодаря использованию инструкций SIMD (MMX, SSE2, NEON, AltiVec VMX) на архитектурах x86, x86-64, PowerPC и ARM. На других архитектурах ускорение не столь значительное, но за счёт применения оптимизированных функций кодирования Хаффмана библиотека всё равно заметно быстрее libjpeg и близка по своим показателям к высококачественным проприетарным кодекам JPEG. Отдельно развивается mozjpeg, форк libjpeg-turbo, который движется в сторону оптимизации размера результирующих изображений.







Основные новшества:
  • Добавлена поддержка цветовой субдискретизации 4:1:1, позволяющей без потери качества преобразовывать, обрезать и поворачивать JPEG-изображения с субдискретизацией 4:1:1, а также распаковывать их и переводить в цветовую модель YUV.

    Значительно ускорены вычисления оптимальных таблиц Хаффмана. Для мелких изображений (256x256) изменение позволило до двух раз сократить время сжатия.


    Добавлена возможность применения арифметического энтропийного кодирования для JPEG-изображений с 12-битным представлением цвета на канал.

    С целью устранения имевшихся ограничений и повышения расширяемости значительно переработан API TurboJPEG. Например, все Си-функции теперь снабжены префиксом "tj3". Многие флаги и режимы преобразованы из аргументов функций в общие параметры API.

    В API libjpeg и TurboJPEG добавлена поддержка изображений с 12 и 16 битами цветности на канал в режимах с потерей и без потери качества.


    Добавлен режим работы с JPEG-файлами без потери качества, который доступен для изображений с 8, 12 и 16 битами цветности на канал. Добавлена новая функция jpeg_enable_lossless() и опция командной строки "-lossless".

    Удалены устаревшие поля, конструкторы и методы в TurboJPEG Java API.





В дальнейшем автор libjpeg-turbo намерен ограничить работу над проектом и выпускать только обновления с исправлениями ошибок. Разработка новой ветки 3.1 не начнётся пока не удастся получить финансирование работы над проектом. Сейчас получаемых для libjpeg-turbo средств хватает на 8-10 часов работы в месяц и в проекте наблюдается перерасход - при финальной стадии стабилизации ветки 3.0 ресурсы уже потрачены наперёд до сентября 2024 года. До получения финансирования работа над реализацией и рассмотрением новых возможностей для libjpeg-turbo будет приостановлена, а техническая поддержка выпусков будет ограничена, как минимум в течение следующих 15 месяцев. Основной доход автор libjpeg-turbo получает от других своих проектов - VirtualGL и TurboVNC, которым он намерен уделить первичное внимание, чтобы не повторить негативный опыт разработки ветки libjpeg-turbo 2.0, который привёл к тому, что из-за отсутствия контроля над трудозатратами разработчик был вынужден влезть в долги.



Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=59378

Жизнь за Нер'зула!

Ответить