Google открыл для всех новый способ сжатия JPEG

Изображение, уровень сжатия которого с помощью JPEG растет справа налево

Wikimedia Commons

Компания Google открыла доступ к новому алгоритму сжатия изображений формата JPEG — Guetzli (в переводе со швейцарского диалекта немецкого языка — «печенье»). Он позволяет получать высококачественные файлы изображений, объем которых на 35 процентов меньше, чем в результате работы стандартных алгоритмов. Это достигается благодаря психовизуальной модели восприятия изображений. Минус Guetzli — требовательность к ресурсам и медлительность. Исходный код для алгоритма доступен в репозитории GitHub, также о нем сообщает блог Google. 

JPEG — метод сжатия изображений с потерями, разработанный Joint Photographic Experts Group в 1992 году. Он заключается в преобразовании фрагментов изображения в набор синусоид (дискретное косинусное преобразование) и записи параметров этих кривых вместо попиксельной записи цветов. Существует несколько алгоритмов сжатия, отличающихся порядком, геометрией и другими параметрами преобразований. Как правило сжатие без значительных потерь в качестве для алгоритмов JPEG составляет десять к одному.

В общем случае в JPEG входят следующие стадии: цветовое преобразование, прореживание, дискретное косинусное преобразование блоков 8×8 пикселей и квантование. Новая разработка Google в основном относится к последней стадии сжатия. Авторы использовали психовизуальные модели восприятия для того, чтобы сделать потери квантования максимально незаметными. Эксперименты показали, что добровольцы предпочитают изображения Guetzli в сравнении с картинками, сжатыми с помощью стандартной библиотеки libjpeg — даже если последние имели такой же или немного больший размер. 

Вместе с тем, новый алгоритм требует гораздо большего объема вычислений. К примеру, сжатие небольшого изображения (620×444, 32 килобайта) потребовало около 20 секунд, и 50 мегабайт оперативной памяти. Как сообщает один из пользователей, сжатие более крупных файлов (1,7 мегабайта) требует несколько гигабайт оперативной памяти и 15 минут работы программы. Как отмечают разработчики на каждый мегапиксель изображения требуется около 300 мегабайт. Результат сжатия совместим со стандартными средствами просмотра изображений.

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

Ранее подразделение Google Brain поставило эксперимент, в котором два сервера (Алиса и Боб) с помощью нейросетей разработали собственный метод шифрования сообщений. Особенность работы нейросетей состоит в том, что очень трудно интерпретировать то, как именно они преобразуют данные. 

Владимир Королёв

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.