Компания Google открыла доступ к новому алгоритму сжатия изображений формата JPEG — Guetzli (в переводе со швейцарского диалекта немецкого языка — «печенье»). Он позволяет получать высококачественные файлы изображений, объем которых на 35 процентов меньше, чем в результате работы стандартных алгоритмов. Это достигается благодаря психовизуальной модели восприятия изображений. Минус Guetzli — требовательность к ресурсам и медлительность. Исходный код для алгоритма доступен в репозитории GitHub, также о нем сообщает блог Google.
JPEG — метод сжатия изображений с потерями, разработанный Joint Photographic Experts Group в 1992 году. Он заключается в преобразовании фрагментов изображения в набор синусоид (дискретное косинусное преобразование) и записи параметров этих кривых вместо попиксельной записи цветов. Существует несколько алгоритмов сжатия, отличающихся порядком, геометрией и другими параметрами преобразований. Как правило сжатие без значительных потерь в качестве для алгоритмов JPEG составляет десять к одному.
В общем случае в JPEG входят следующие стадии: цветовое преобразование, прореживание, дискретное косинусное преобразование блоков 8×8 пикселей и квантование. Новая разработка Google в основном относится к последней стадии сжатия. Авторы использовали психовизуальные модели восприятия для того, чтобы сделать потери квантования максимально незаметными. Эксперименты показали, что добровольцы предпочитают изображения Guetzli в сравнении с картинками, сжатыми с помощью стандартной библиотеки libjpeg — даже если последние имели такой же или немного больший размер.
Вместе с тем, новый алгоритм требует гораздо большего объема вычислений. К примеру, сжатие небольшого изображенияразработчики на каждый мегапиксель изображения требуется около 300 мегабайт. Результат сжатия совместим со стандартными средствами просмотра изображений.
Издание Arstechnica допускает, что в разработке психовизуальной модели, лежащей в основе алгоритма, могли использоваться нейросети. В ее исходном коде ключевые параметры представляют собой набор из нескольких сотен констант.
Ранее подразделение Google Brain поставило эксперимент, в котором два сервера (Алиса и Боб) с помощью нейросетей разработали собственный метод шифрования сообщений. Особенность работы нейросетей состоит в том, что очень трудно интерпретировать то, как именно они преобразуют данные.
Владимир Королёв