Изменен популярнейший формат JPEG. Картинки станут «легче» на треть

Техника Открытое ПО
, Текст: Дмитрий Степанов
Фотографии и другие изображение в привычном для пользователей интернета формате JPEG будут занимать меньше места благодаря новому кодеку Jpegli, разработанному Google – разумеется, если библиотека прижется. В компании обещают до 35% более высокую эффективность компрессии при сохранении отличного качества картинки.

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

Google создала новую библиотеку для кодирования изображений в формате JPEG. Об этом компания сообщила в своем официальном блоге, посвященному открытому ПО.

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

Внедрение библиотеки позволит разработчикам веб-сайтов сэкономить дисковое пространство, разгрузить каналы связи, а также обеспечить посетителям более высокую скорость загрузки страниц, считают в Google.

Фотографии в привычном формате JPEG будут занимать меньше места благодаря Google

Проект написан на языке программирования C++ и опубликован в публичном репозитории libjxl на хостине GitHub. Исходный код библиотеки открыт и распространяется на условиях собственной BSD-подобной лицензии Google.

JPEG – популярный формат хранения растровых изображений, опубликованный в 1992 г. Позволяет хранить данные о картинке в сжатом виде с потерями и без потерь. Благодаря высокой степени сжатия, которую предлагает JPEG, формат приобрел высокую популярность в интернете.

Особенности библиотеки

В проекте задействован ряд новых техник, направленных на снижение шумов и улучшение качества изображения в целом. В частности, в Jpegli нашла применение адаптивная эвристика квантования из эталонной реализации кодека JPEG XL. Кроме того, специалисты Google внедрили в библиотеку улучшенные алгоритмы выбора матриц квантования, точного вычисления промежуточных результатов, а также добавили возможность использования более «продвинутых» цветовых пространств.

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

Преимущества Jpegli

Библиотека предоставляет кодер и декодер, соответствующий стандартам JPEG и совместимый с libjpeg-turbo и MozJPEG – двумя другими высокопроизводительными реализациями кодеров –на уровне API и ABI. Последний с 2014 г. развивает компания Mozilla, разработчик браузера Firefox.

Разработчики Jpegli утверждают, что их библиотека обеспечивает более качественный по сравнению с конкурирующими кодерами результат при сжатии изображения с потерями. Картинка выглядит четче и содержит меньше видимых артефактов – все благодаря более точным вычислениям и применению эффективных психовиузальных методов.

В Google отмечают, что несмотря на более привлекательное соотношение качество/степень сжатия относительно других библиотек, Jpegli гарантирует быстрое кодирование и декодирование. По показателю производительности она якобы не отстает от уже упомянутых ранее libjpeg-turbo и MozJPEG.

Jpegli позволяет кодировать изображение с выделением до 10 бит на компоненту. Традиционные кодеки, как правило, поддерживают лишь 8 бит на компоненту, что отражается на итоговом качестве сжатой картинки. Как поясняют разработчики, хорошо этот недостаток заметен на изображениях, содержащих градиенты (плавный переход от одного цвета к другому) – в таком случае наблюдается характерный артефакт в виде полосок.

Впрочем, чтобы воспользоваться преимуществами «10-битового подхода» разработчикам ПО для просмотра изображений потребуется внести в свои продукты некоторые правки.

Как сравнивали Jpegli с другими библиотеками

Для оценки того, насколько лучше других новинка справляется со своей задачей, специалисты Google упаковали в JPEG-файлы датасет изображений компании Cloudinary с использованием Jpegli, libjpeg-turbo и MozJPEG. Каждая оригинальная картинка была представлена сразу несколькими копиями с различным битрейтом.

Затем группу людей, привлеченных по модели краудсорсинга, попросили попарно сравнивать изображения, полученные при помощи различных кодеков, и выбирать из них более качественные.

Рейтинг Эло для кодеков JPEG. Чем больше значение, тем лучше показала себя библиотека

Для обобщения полученных результатов и представления их в понятном виде специалисты Google агрегировали данные, используя метод Эло (применяется, к примеру, для составления рейтингов силы игроков в шахматах).

В 2021 г. CNews писал о новом формате компрессии картинок без потерь Quite OK Image (QOI), который по словаем его создателя из Германии, позволяет в десятки раз быстрее сжимать растровые изображения в цветовой модели RGBA по сравнению с PNG при незначительно отличающемся итоговом размере файла. Автор QOI тогда признался, что практически ничего не понимает в алгоритмах сжатия, а идея формата к нему пришла во время работы над проектом в смежной области.