The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Компания Google открыла код эффективного JPEG-кодировщика Guetzli

16.03.2017 23:54

Компания Google объявила об открытии кода высококачественного JPEG-кодировщика Guetzli с реализацией нового алгоритма кодирования, позволяющего добиться существенного сокращения размера изображения без ухудшения качества, но с сохранением совместимости со всеми штатными декодировщиками JPEG и полным соответствием стандарту JPEG. Например, по сравнению с эталонной библиотекой libjpeg предложенный алгоритм позволяет сократить размер изображений на 20-30% c сохранением идентичного качества. Код библиотеки и базовых утилит с реализацией Guetzli написан на языке С++ и распространяется под лицензией Apache 2.0.

Guetzli близок по своему назначению к алгоритму Zopfli, позволяющему добиться повышения уровня сжатия файлов PNG и gzip, без потери совместимости. В отличие от WebP, RAISR (Rapid and Accurate Image Super-Resolution) и алгоритмов упаковки изображения на базе нейронных сетей, требующих специальных декодировщиков, Guetzli нацелен на достижение максимального уровня сжатия без нарушения совместимости с уже существующим клиентским ПО. Обратной стороной предложенного алгоритма является очень большая ресурсоёмкость. Guetzli также требует достаточно много оперативной памяти, например, для каждого 1MPix картинки требуется 300 Мб ОЗУ. Относительно других кодировщиков Guetzli работает очень медленно и не подходит для сжатия на лету, но вполне пригоден для одноразовой переупаковки имеющегося контента.

В процессе кодирования JPEG наиболее заметная потеря качества наблюдается на стадии квантования. Стадии преобразования цветового пространства и дискретное косинусное преобразование (DCT) не столь сильно поддаются оптимизации. Guetzli оптимизирует таблицы квантования и коэфициенты DCT для каждого блока JPEG, применяя специальный оптимизатор с обратной связью (closed-loop). Для оценки оптимальности найденных параметров квантования Guetzli применяет алгоритм Butteraugli, использующий в качестве метрики уровень различий между психовизуальным моделированием JPEG и собственным более эффективным методом психовизуального моделирования, что позволяет снизить число возникающих артефактов. Например, на изображениях ниже слева представлен исходный вариант, в центре результат работы libjpeg, а справа - Guetzli.

Дополнение: Разработчики развиваемой сообществом Mozilla библиотеки кодирования JPEG-изображений MozJPEG, ориентированной на достижение более высокой степени сжатия при сохранении совместимости с существующими декодировщиками, в текущем виде не собираются добавлять поддержку алгоритма Guetzli. Несмотря на то, что уровень сжатия MozJPEG при сравнении с libjpeg-turbo не превышает 5-10%, Guetzli слишком медленный. Например, кодирование небольшого файла, размером 38 Кб, заняло 10 секунд, что в 120 раз медленнее MozJPEG.

Из недостатков Guetzli также упоминается поддержка кодирования только в режиме наивысшего качества (-quality 90). Например, MozJPEG может обеспечить более высокий уровень сжатия в режимах с приемлемым качеством. Высокая ресурсоёмкость и невозможность манипуляции уровнем качества затрудняет применение Guetzli во многих областях, на которые рассчитан MozJPEG, а именно переупаковка на лету, оптимизация изображений в высоком разрешении и сжатие с различными режимами качества. Guetzli ещё достаточно молодой проект и, возможно, в будущем проблемы с производительностью будут устранены, тогда можно будет вернуться к вопросу по интеграции его поддержки в MozJPEG.

  1. Главная ссылка к новости (https://opensource.googleblog....)
  2. OpenNews: Доступна библиотека libjpeg-turbo 1.5.0
  3. OpenNews: Истёк срок патента на методы оптимизации JPEG
  4. OpenNews: Доступен MozJPEG 3.0, высокоэффективный кодировщик JPEG-изображений от проекта Mozilla
  5. OpenNews: Релиз библиотеки Libjpeg 9 с поддержкой режима сжатия без потерь
  6. OpenNews: Dropbox опубликовал реализацию алгоритма сжатия изображений Lepton
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46208-jpeg
Ключевые слова: jpeg, google, guetzli
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 00:41, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    И вообще почти все инновации гугля анонсируются как "высококачественные", но почему-то требуют в раз больше ресурсов (и в перспективе могут быть приколы с вендор локом). С каждой такой новостью приходится допаивать еще один этаж РУ7 на свой телефон.
     
     
  • 2.5, Аноним (-), 00:51, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +14 +/
    высококачественные != высокопроизводительные
     
  • 2.18, Кай Фуем (?), 04:20, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > И вообще почти все инновации гугля анонсируются как "высококачественные", но почему-то
    > требуют в раз больше ресурсов (и в перспективе могут быть приколы
    > с вендор локом). С каждой такой новостью приходится допаивать еще один
    > этаж РУ7 на свой телефон.

    Не так и сложно бутербродов РУ7 допаять. Если шины небуферизированы, АП6 допаяй и КМок на Каждую РУшку тоже! А то от звона глючить телефон будет.

     

  • 1.3, Crazy Alex (ok), 00:44, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Отлично. Фото из Raw преобразовывать - самое оно.
     
     
  • 2.20, лютый жабист__ (?), 04:56, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Удалять raw глупость. Даже если идеально выставишь уровни, через несколько лет у тебя умения всё-равно будут выше. Да или банально вкусы поменяются и захочется чуть приглушить контраст, а х.ен...
     
     
  • 3.30, Аноним (-), 10:47, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А кто говорил про удалять?
     
  • 3.35, Crazy Alex (??), 13:45, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Разумеется, но слать родителям их тоже не будешь.
     
  • 2.33, Аноним (-), 11:17, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Отлично. Фото из Raw преобразовывать - самое оно.

    чем тебе для фото плох png ? Жрет в разы меньше, потерь нет.

    Это - для фото залитых юзером на хранилку, на вечное хранение. Чтоб поменьше своей едой места занимал.

     
     
  • 3.36, Crazy Alex (??), 13:50, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    За ликбезом насчёт raw - не сюда.
     

  • 1.4, Аноним (-), 00:51, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Обычный джипег лучше этой новой шняги.
     
     
  • 2.7, . (?), 01:11, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Обычный джипег лучше этой новой шняги.

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

    странное ненужно выкатил гугль...

     
     
  • 3.12, Аноним (-), 02:01, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Видимо это вариант джпег для дальтоников
     
  • 3.14, Аноним (-), 02:04, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    В первом ряду могло быть изображение провода или чего-то тонкого вдалеке - они часто в один пиксель цифруются, несмотря на истинный размер, ибо мельче нельзя. Так нативное и джипег менее расплывчатые и более темные - контрастные, мне кажется более правильные для подобной ситуации (если это она, конечно).
     
  • 3.15, Mihail Zenkov (ok), 02:05, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > второй ряд фоток как бы намекает, что да - новая шняга потеряла
    > начисто информацию о цвете центральной кляксы, libjpeg сохранил.

    В целом видно, что артефактов меньше. Но вот, что он почти все цвета сдвинул во втором ряду, это конечно крайне плохо. Будем надеяться что это просто баг и он будет устранен.

     

  • 1.6, анон (?), 01:07, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    интересно сравнение с mozjpeg
     
     
  • 2.16, Mihail Zenkov (ok), 02:14, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    https://github.com/mozilla/mozjpeg/issues/242
     

  • 1.8, Аннымзус (?), 01:34, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    тред не читай, да вообще ничего не читай:
    а что стало со "jpeg turbo" ? он же самый
     
     
  • 2.13, Mihail Zenkov (ok), 02:03, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а что стало со "jpeg turbo" ? он же самый

    Он быстрый, но качество тоже, что и у обычного libjpeg.
    Лучшее качество сжатия у mozjpeg.

     

  • 1.11, axredneck (?), 02:00, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    в общем, артефактов меньше, зато потерь чуть больше
     
  • 1.21, Алексей (??), 05:37, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    открыли, что бы они засунуть в хром и андроид, что бы юзер при загрузке в облако ужимал фотки. тогда нагрузка на сервера снизится и за качество будет отвечать юзер, а не гугл. они все так делают... всю нагрузку на юзеров переносят
     
  • 1.22, Челодой Моловек (?), 08:43, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Убрали шум из изображений - за счет этого улучшилось сжатие. Отличная новость.
     
     
  • 2.32, Аноним (-), 11:15, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    детали, цветовые, а не шум они убрали (поскольку отличить одно от другого - даже ИИ гугля не очень справляется)

     

  • 1.23, mmm (??), 09:17, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    6. OpenNews: Dropbox опубликовал реализацию алгоритма сжатия изображений Lepton
     
  • 1.28, Аноним (-), 09:42, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    в сортах jpeg не разбираюсь,только BMP :)
     
     
  • 2.34, Аноним (34), 12:58, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Странный у вас вкус.
    Я предпочитаю tiff.
     

  • 1.29, антончик (?), 10:45, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > JPEG-кодировщика Guetzli с реализацией нового алгоритма кодирования, позволяющего добиться существенного сокращения размера изображения без потери качества

    Как в одном предложении может сочетаться "JPEG" и "без потери качества"? Что употреблял автор? Я уверен что речь не про lossless в JPEG2000.

     
     
  • 2.31, Аноним (-), 11:10, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Без потри качества в сравнении с обычным кодировщиком JPEG.

     

  • 1.37, Аноним (-), 15:17, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что за название такое чудное? Неужели "гусли"? )
     
     
  • 2.39, Аноним84701 (ok), 18:02, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А что за название такое чудное? Неужели "гусли"? )

    Конечно же гусли! И пофиг на то, что читается оно как "гёт(з|ц)ли" и совпадает со швейцарским обозначением печенек (или баварским - кофет/сладостей) … o_O

    Кстати, в той же "серезной" биологии полно таких чудных  названий: "галушко-протеин" (spaetzle) "огуречный" (gurken), "криптонит" (потому что подавляет "локус супермена").

     

  • 1.38, DmA (??), 17:40, 17/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    переведёшь так все свои фотки скопом этим кодировщиком, а через 20 лет глянешь, пары человек на каких-нибудь фотках не хватает, алгоритм не учёл :)
     
     
  • 2.40, Аноним (-), 18:45, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ты это в "Назад в будущее" подсмотрел. :)
     
  • 2.41, Ordu (ok), 21:48, 17/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я о том же подумал. Но мне в голову вот эта видяшка пришла: https://www.youtube.com/watch?v=vJG698U2Mvo

    Там явно есть элементы, которые можно было бы удалить без потери качества в силу выборочности внимания.

    Ну или развитие темы:

    https://www.youtube.com/watch?v=IGQmdoK_ZfY
    https://www.youtube.com/watch?v=ubNF9QNEQLA
    https://www.youtube.com/watch?v=v3iPrBrGSJM

    Человек вообще ничего не видит, и половину можно поудалять.

     

  • 1.42, Аноним (-), 11:24, 20/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хмм... Судя по сравнению фоток (низкий ringing) и заявлениям типа
    > Из недостатков Guetzli также упоминается поддержка кодирования только в режиме наивысшего качества (-quality 90).

    ненужность 10-битного h.264 считается доказанной? Ну т.е. теперь все то же самое можно повторить без необходимости промежуточного увеличения глубины цвета исходника с 8бит до 10бит.

     
  • 1.43, Аноним (-), 15:46, 20/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая вещь для растровых спутниковых карт. Гуглу в сторону уменьшения памяти и использования OpenCL надо копать.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру