Google выложил в открытый доступ код алгоритма, ужимающего изображения на 35%
Компания Google на днях о том, что выводит алгоритм сжатия изображений Guetzli в opensource. В компании утверждают, что этот алгоритм способен ужимать размеры JPEG-файлов на 35%, если сравнивать с другими используемыми методами. Этому есть много применений, одно из лежащих на поверхности: создание сайтов, которые быстрее грузятся. Теперь каждый разработчик может изучить его исходники .
Название Guetzli со швейцарского немецкого переводится как «печенье». Это — кодировщик JPEG-файлов, который может ускорять работу с картинками в онлайне, создавая меньшие версии файла, обеспечивая совместимость с текущими версиями браузеров и приложений.
Визуальное качество JPEG-изображений напрямую связано с многоступенчатым процессом сжатия: преобразование цветового пространства, дискретное косинуидальное преобразование и квантование. Guetzli работает со стадией квантования, в которой, чем больше потеря визуального качества, тем меньше получается файл.
Guetzli пытается найти баланс между потерей в качестве и размером файла, используя поисковой алгоритм, преодолевающий разницу между психовизуальным (т.е. основанным на восприятии оттенков человеком) моделированием формата JPEG и психовизуальной моделью самого сервиса. В компании уверяют, что Guetzli ужимает файлы без значительной потери в качестве, используя более тщательную аппроксимацию изображений, чем большинство других сервисов.
Ниже — пример его работы с изображением 16х16 пикселей. Это — телефонный кабель на фоне голубого неба. Обычно при сжатии таких изображений возникают артефакты. Слева — исходное изображение, справа — изображение, обработанное Guetzli, посредине — обработанное libjpeg. Видно, что у Guetzli меньше артефактов.

Еще один такой же пример, на чуть большем изображении:

Но хотя Guetzli и способен ужимать файлы больше, чем другие существующие методы, использование поискового алгоритма сильно продлевает сам процесс сжатия.
Напомним, ранее мы писали о том, как развитие opensource-сообщества и проектов может повлиять на карьеру программистов в будущем.
Заметили ошибку? Выделите ее и нажмите Ctrl+Enter, чтобы сообщить нам.