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