Вышло обновление библиотеки libjpeg-turbo 2.0
Новости
В нем появилось ускорение преобразований цветовых пространств, новые функции API, а также SIMD-ускорение кодирования Хаффмана.
634 открытий644 показов
Выпущена новая версия высокопроизводительной библиотеки для кодирования и декодирования изображений в формате 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 %.
634 открытий644 показов