Изменен популярнейший формат JPEG. Картинки станут «легче» на треть
Новая библиотека кодирования 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 агрегировали данные, используя метод Эло (применяется, к примеру, для составления рейтингов силы игроков в шахматах).
В 2021 г. CNews писал о новом формате компрессии картинок без потерь Quite OK Image (QOI), который по словаем его создателя из Германии, позволяет в десятки раз быстрее сжимать растровые изображения в цветовой модели RGBA по сравнению с PNG при незначительно отличающемся итоговом размере файла. Автор QOI тогда признался, что практически ничего не понимает в алгоритмах сжатия, а идея формата к нему пришла во время работы над проектом в смежной области.