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

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

Внедрение библиотеки позволит разработчикам веб-сайтов сэкономить дисковое пространство, разгрузить каналы связи, а также обеспечить посетителям более высокую скорость загрузки страниц, считают в 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. Каждая оригинальная картинка была представлена сразу несколькими копиями с различным битрейтом.

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

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