Jpegli: новая библиотека кодирования JPEG

Тэги: изображения, jpeg, jpegli

Интернет изменил наш образ жизни, работы и общения. Однако, он может нас разочаровывать, когда страницы грузятся медленно. В основе этой проблемы лежит кодирование изображений. Чтобы улучшить ситуацию, мы представляем Jpegli, усовершенствованную библиотеку кодирования JPEG, которая поддерживает высокую обратную совместимость, предлагая расширенные возможности и повышение степени сжатия до 35%.

Эта статья – перевод. Оригинал доступен по ссылке

Jpegli - новая библиотека кодирования jpeg от Google

Jpegli – это новая библиотека кодирования JPEG от Google, которая работает быстрее, эффективнее и визуально приятнее, чем традиционный JPEG. Для достижения этих целей в ней используется ряд новых методов:

  • Обеспечение полностью совместимого кодера и декодера, соответствующего оригинальному стандарту JPEG и его наиболее традиционному 8-битному формализму. Также совместимость API / ABI с libjpeg-turbo и MozJPEG.
  • Результаты высокого качества. При сжатии или распаковке изображений с помощью Jpegli выполняются более точные и психовизуальноэффективные вычисления, изображения выглядят более четкими и содержат меньше заметных артефактов.
  • Скорость. При улучшении соотношения качества изображения и плотности сжатия скорость кодирования в Jpegli сопоставима с традиционными подходами, такими как libjpeg-turbo и MozJPEG. Это означает, что веб-разработчики могут легко интегрировать Jpegli в свои существующие рабочие процессы без ущерба для скорости кодирования или использования памяти.
  • 10+ бит. Jpegli можно кодировать с более чем 10 битами на компонент. Традиционные решения для кодирования в формате JPEG предлагают только 8 бит на компонент, что приводит к появлению видимых артефактов полосчатости при медленных градиентах. 10+ битное кодирование Jpegli выполняется в оригинальном 8-битном формализме, и результирующие изображения полностью совместимы с 8-битными программами просмотра. 10+ битная динамика доступна как расширение API, и для получения ее преимуществ необходимы изменения в коде приложения.
  • Более плотный формат: Jpegli сжимает изображения более эффективно, чем традиционные кодеки JPEG, что позволяет экономить пропускную способность и место в хранилище, а также ускорять работу веб-страниц.

Как работает Jpegli

В Jpegli используется ряд новых методов для уменьшения шума и улучшения качества изображения. В основном это: эвристика адаптивного квантования из эталонной реализации JPEG XL, улучшенный выбор матрицы квантования, точное вычисление промежуточных результатов и возможность использования более продвинутого цветового пространства. Все новые методы были тщательно проработаны с учетом традиционного 8-битного формата JPEG, поэтому недавно сжатые изображения совместимы с существующими средствами просмотра JPEG, такими как браузеры, графические редакторы и тд.

Улучшенный выбор матрицы квантования

Jpegli также использует набор матриц квантования, которые были выбраны путем оптимизации с учетом сочетания психовизуальных показателей качества. Точные промежуточные результаты в Jpegli улучшают качество изображения, а кодирование и декодирование дают результаты более высокого качества. Jpegli может использовать цветовое пространство XYB в формате JPEG XL для дальнейшего улучшения качества и плотности.

Тестирование Jpegli

Чтобы количественно оценить улучшение качества изображений Jpegli, мы обратились к специалистам по оценке краудсорсинга для сравнения пар изображений из Cloudinary Image Dataset ’22, закодированных с использованием трех кодеков: Jpegli, libjpeg-turbo и MozJPEG, с несколькими скоростями передачи.

В этом сравнении мы ограничились сравнением только кодировки, декодирование всегда выполнялось с использованием libjpeg-turbo. Мы провели исследование с отключенным цветовым профилем XYB ICC, поскольку, по нашим ожиданиям, именно так большинство пользователей изначально будут использовать Jpegli. Чтобы упростить сравнение результатов для разных кодеков и настроек, мы объединили все решения о рейтинге, используя шахматные рейтинги, вдохновленные подсчетом очков ELO.

Гистограмма результатов ELO слева и график результатов ELO справа
Более высокий балл ELO указывает на лучшую совокупную производительность в исследовании rater. 
Мы можем заметить, что jpegli со скоростью 2,8 бит / с получил более высокий рейтинг ELO, чем libjpeg-turbo со скоростью 3,7 бит / с, что на 32 % выше, чем у Jpegli.

Итог

Наши результаты показывают, что Jpegli может сжимать высококачественные изображения на 35% сильнее, чем традиционные кодеки JPEG.

Jpegli – это многообещающая новая технология, которая потенциально может сделать Интернет быстрее и красивее.

Золтан Сабадка, Мартин Брузе и Юрки Алакуиджала – Paradigms of Intelligence, Google Research

Связанные статьи: Приложение из сайта (WebApp) | Монетизация телеграм-бота | GitVerse – хостинг git-репозиториев от Сбер

05.04.2024
Михаил Гок