Вышло обновление библиотеки libjpeg-turbo 2.0

Выпущена новая версия высокопроизводительной библиотеки для кодирования и декодирования изображений в формате JPEG libjpeg-turbo 2.0.0. Кроме стандартного API, она предоставляет собственный TurboJPEG API, а также расширения с моделями представления цвета, которые сжимают изображения в 32-разрядные пиксельные буферы. Бинарные сборки подготовлены для Linux, macOS и Windows.

Основные нововведения

  • Для ускорения преобразований цветовых пространств, хроматического сэмплирования и целочисленного квантования, целочисленных алгоритмов DCT/IDCT применяются инструкции AVX2. Это позволило увеличить производительность на 13–36 % для 64-разрядных систем и на 11–21 % для 32-разрядных.
  • Для процессоров Loongson при выполнении преобразования цветовых пространств из RGB в YCbCr и наоборот, хроматическом преобразовании 4:2:0, целочисленном квантовании и целочисленных алгоритмах DCT/IDCT используются SIMD-оптимизации с инструкциями MMI. Оптимизация ускорила сжатие на 70–100 %, а распаковку — в 2–3,5 раза.
  • Система автоматизации сборки переведена с использования Autotools на CMake.
  • В API представлены новые функции jpeg_read_icc_profile() и jpeg_write_icc_profile() для извлечения данных ICC-профиля из JPEG-файла.
  • Модернизирован код обработки ошибок в TurboJPEG API.
  • Реализовано SIMD-ускорение кодирования Хаффмана с использованием инструкций SSE2 для платформ x86 и x86-64, таким образом, увеличив скорость сжатия полноцветных JPEG на 85–90 %.
  • Улучшен процесс распаковки изображений в цветовой схеме CMYK.

В марте 2017 года Google представила Guetzli — алгоритм с открытым исходным кодом, который сокращает размер JPEG-файлов на 35 %.

Источник: OpenNET