Google выложил в открытый доступ код алгоритма, ужимающего изображения на 35%

14681
7

Компания Google на днях объявила о том, что выводит алгоритм сжатия изображений Guetzli в opensource. В компании утверждают, что этот алгоритм способен ужимать размеры JPEG-файлов на 35%, если сравнивать с другими используемыми методами. Этому есть много применений, одно из лежащих на поверхности: создание сайтов, которые быстрее грузятся. Теперь каждый разработчик может изучить его исходники на GitHub.

Название Guetzli со швейцарского немецкого переводится как «печенье». Это — кодировщик JPEG-файлов, который может ускорять работу с картинками в онлайне, создавая меньшие версии файла, обеспечивая совместимость с текущими версиями браузеров и приложений.

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

Guetzli пытается найти баланс между потерей в качестве и размером файла, используя поисковой алгоритм, преодолевающий разницу между психовизуальным (т.е. основанным на восприятии оттенков человеком) моделированием формата JPEG и психовизуальной моделью самого сервиса. В компании уверяют, что Guetzli ужимает файлы без значительной потери в качестве, используя более тщательную аппроксимацию изображений, чем большинство других сервисов.

Ниже — пример его работы с изображением 16х16 пикселей. Это — телефонный кабель на фоне голубого неба. Обычно при сжатии таких изображений возникают артефакты. Слева — исходное изображение, справа — изображение, обработанное Guetzli, посредине — обработанное libjpeg. Видно, что у Guetzli меньше артефактов.

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

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

Напомним, ранее мы писали о том, как развитие opensource-сообщества и проектов может повлиять на карьеру программистов в будущем.

Оставить комментарий

Комментарии | 7

  • Заголовок показывает, что автор статьи — полный дилетант в lossy image compression, near lossless image compression, как и в additional JPEG compression. Заголовок вообще не соответствует содержанию и не имеет никакого смысла. Любое изображение можно сжать с потерями (а именно об этом статья) хоть на 99%. Проблема в том, что будет после реконструкции? Что касается JPEG изображений, то есть методы, которые дополнительно сжимают их на 40%-50% БЕЗ ПОТЕРЬ, в отличии от описанного метода Google, который сжимает хуже и вносит дополнительные потери (пусть и не слишком заметные). Для устранения артефактов также существуют эффективные методы, о которых автор статьи не имеет представления.

    • О, расскажи за методы сжатия на 40-50% без потерь. Просто интересно, так как мы как раз по этой теме работаем.

      • Архиватор stuffit, архиватор paq8 (для него и исходники доступны).
        Я правильно понял, что «О, расскажи…» — это сарказм?
        Надеюсь мы говорим о средних цифрах, а не о гарантированных для любого изображения?
        Над какой конкретно темой Вы работаете? Какие есть успехи на данный момент?

        • не сарказм, мы в Pixpie реально занимаемся сжатием картинок. Посмотрел тесты по paq8 и stuffit. Средних значений в 40-50% сжатия не нашел, но 20-30 без потерь – да

          • Здесь много зависит от того, каким образом отбирались изображения для теста и сколько их было. Вот тест, в котором всего 3 изображения:
            http://compression.ca/act/act-jpeg.html
            Но разве он информативный?
            Напишите скрипт, скачайте из Интернета сто тысяч изображений в формате JPEG, выбранных случайно, и запустите дополнительное сжатие на них. Получатся действительно объективные средние проценты сжатия.

  • Мы уже полгода сжимаем, а они только начали

Поиск