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

Зображення, рівень стиснення якого за допомогою JPEG зростає справа наліво

Wikimedia Commons

Компанія Google відкрила доступ до нового алгоритму стиснення зображень формату JPEG - Guetzli (в перекладі з швейцарського діалекту німецької мови - «печиво»). Він дозволяє отримувати високоякісні файли зображень, обсяг яких на 35 відсотків менше, ніж в результаті роботи стандартних алгоритмів. Це досягається завдяки псіховізуальной моделі сприйняття зображень. Мінус Guetzli - вимогливість до ресурсів і повільність. Вихідний код для алгоритму доступний в репозиторії GitHub, також про нього повідомляє блог Google.

JPEG - метод стиснення зображень з втратами, розроблений Joint Photographic Experts Group в 1992 році. Він полягає в перетворенні фрагментів зображення в набір синусоїд ( дискретне косинусное перетворення ) І записи параметрів цих кривих замість попиксельной записи квітів. Існують різні алгоритми стиснення, що відрізняються порядком, геометрією та іншими параметрами перетворень. Як правило стиснення без значних втрат в якості для алгоритмів JPEG становить десять до одного.

Зліва направо: оригінал, результат стиснення libjpeg, результат стиснення Guetzli

Google

У загальному випадку в JPEG входять наступні стадії: колірне перетворення, проріджування, дискретне косинусное перетворення блоків 8 × 8 пікселів і квантування . Нова розробка Google в основному відноситься до останньої стадії стиснення. Автори використовували псіховізуальние моделі сприйняття для того, щоб зробити втрати квантування максимально непомітними. експерименти показали , Що добровольці надають перевагу зображенням Guetzli в порівнянні з картинками, стислими за допомогою стандартної бібліотеки libjpeg - навіть якщо останні мали такий же або трохи більший розмір.

Зліва направо: оригінал, результат стиснення libjpeg, результат стиснення Guetzli

Google

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

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

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

Володимир Корольов