WebP: эффективный формат для изображений в Интернете

Скорость загрузки уже давно является одним из самых важных факторов при оптимизации веб-сайта, причем как посетители, так и поисковые системы считают время, необходимое для вызова страницы, важным критерием оценки. Сокращенный и сжатый код или использование механизмов кэширования являются частью проверенных и испытанных решений для быстрого присутствия в Интернете, как и использование сжатых изображений. Последние — как элементы дизайна и фона — включаются во многие проекты в большом количестве, и их влияние на время загрузки часто недооценивается.

Этой проблемой занялся, в частности, поисковый гигант Google, который в 2010 году представил собственный безлицензионный формат изображений для ускорения работы веб-сайтов — WebP. Но что именно стоит за веб-форматом, который возник на основе видеокодека VP8? И как он ведет себя в прямом сравнении с такими устоявшимися переменными, как JPEG?

Что такое WebP?

30 сентября 2010 года компания Google объявила о выпуске нового открытого стандарта для сжатия 24-битной графики в Сети с потерями. Моделью для формата с названием WebP послужил видеоформат VP8, разработанный компанией On2 Technologies, которую Google выкупил в том же году. В последующий период Google расширил формат WebP такими функциями, как режим сжатия без потерь, прозрачность (альфа-канал) и анимация. Chrome поддерживает формат сжатия с конца 2010 года, как и браузер Opera. Однако до сих пор существует целый ряд браузеров, таких как Safari и Firefox, которые до сих пор поддерживали WebP только экспериментально, и не предлагают поддержку в своих регулярных выпусках. Согласно собственной информации, компания Microsoft в настоящее время работает над поддержкой для своего браузера Edge.

Примечание

Постоянно обновляемую информацию о поддержке WebP браузерами вы найдете на сайте caniuse.com.

Все программное обеспечение для обработки и представления WebP находится под стандартной лицензией BSD. Google использует этот формат, например, в Chrome Web Store и в мобильных приложениях Google+.

Какие характеристики отличают WebP?

WebP всегда служил цели уменьшения изображений в Сети до как можно меньшего размера файла. По информации Google, изображения и графика в формате WebP примерно на 30 центов меньше, чем файлы PNG или JPEG с таким же качеством изображения. Хотя оба этих классических веб-формата используют разные методы сжатия — PNG без потерь, а JPEG с потерями, — WebP допускает оба варианта. Благодаря такой гибкости формат подходит как для фотографий, так и для небольших изображений и графики. Особенности сжатия, а также другие основные характеристики формата WebP можно кратко описать следующим образом:

  • Сжатие (с потерями): Сжатие с потерями в WebP использует кодирование ключевых кадров VP8.
  • Сжатие (без потерь): Сжатие без потерь в WebP основано на различных техниках, которые преобразуют параметры и данные изображения. Здесь также используется алгоритм LZ77.
  • Прозрачность: 8-битный альфа-канал, который предлагает формат WebP, также может быть использован для сжатия RGB с потерями.
  • Метаданные: WebP может включать метаданные EXIF и XMP, которые обычно генерируются камерами.
  • Цветовой профиль: Формат Google может содержать встроенные профили ICC (наборы данных, описывающие цветовой спектр).
  • Анимация: Формат WebP позволяет сохранять последовательности изображений.

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

Как работает сжатие WebP с потерями?

Сжатие с потерями в WebP использует тот же метод, что и кодек VP8, основанный на блоках, для предсказания кадров, то есть отдельных изображений. Поэтому каждый кадр делится на более мелкие сегменты, которые также называются макроблоками. Внутри этих макроблоков кодер может предсказать избыточную информацию о движении и цвете и вычесть ее из блока. Результат такого предсказательного сжатия состоит из оставшейся информации блока и отдельной избыточной информации (обычно включающей множество нулевых значений). Она квантуется и подвергается энтропийному кодированию (представление символов через определенный битовый шаблон). Фаза квантования — единственный процесс, в котором биты фактически отбрасываются с потерями.

Примечание

WebP использует метод арифметического кодирования, который более эффективен, чем кодирование Хаффмана, используемое, например, в JPEG. В обоих случаях используется энтропийное кодирование. Однако метод Хаффмана присваивает каждому символу целое число битов, в то время как при арифметическом кодировании всей строки символов присваивается один более длинный битовый код. Поэтому при арифметическом кодировании сложность выше, но исключается генерация избыточности расположения битов (только избыточность полных сообщений).

Принципы работы сжатия без потерь с помощью WebP

При сжатии WebP без потерь первым шагом является преобразование изображения. Для этого могут быть использованы следующие методы:

Преобразование пространственного предсказания WebP использует 13 различных режимов предсказания, которые используют тот факт, что соседние пиксели часто коррелируют друг с другом. Текущее значение пикселя предсказывается по уже декодированным пикселям, и только оставшееся значение кодируется.
Преобразование цвета Целью преобразования цвета является декорреляция значений RGB каждого отдельного пикселя. Здесь изображение сначала делится на блоки, затем красный цвет (R) преобразуется на основе зеленого (G), а синий (B) — на основе зеленого и красного. При этом значение зеленого цвета остается неизменным.
Вычитание зеленого преобразования В дополнение к общему преобразованию цвета возможен вариант, при котором зеленые значения вычитаются из красных и синих значений.
Преобразование индексации цвета Если уникальных значений пикселей слишком мало, формат WebP также предоставляет возможность преобразования индексации цвета. Тогда число уникальных значений ARGB в изображении становится более определенным, и создается распределение этих значений, если их число слишком мало. Это распределение используется для замены значений пикселей соответствующим индексом.
Кодирование цветового кэша Сжатие WebP без потерь может использовать уже просмотренные фрагменты изображения для реконструкции новых пикселей. Если здесь нет подходящих совпадений, то в качестве отправной точки используется локальный цветовой кэш с 32 последними использованными цветами. Он постоянно обновляется.

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

Что отличает анимированный WebP?

Благодаря поддержке анимированных изображений WebP является привлекательной альтернативой GIF или APNG. Здесь в игру вступают такие сильные стороны, как глубина цвета 24 бита и 8-битный альфа-канал, а также высокая степень сжатия. Благодаря этому формат WebP выгодно отличается от конкурирующих форматов как сжатием анимации без потерь, так и сжатием анимации с потерями. Анимированный WebP также убедителен в плане декодирования: Поскольку метаданные WebP сохраняют, содержит ли каждый кадр альфа-значения, декодеру не нужно преобразовывать каждый кадр по отдельности, чтобы получить эту информацию.

Примечание

По данным Google, преобразование GIF в WebP с потерями уменьшает размер файла до 64 процентов, а для WebP без потерь — еще на 19 процентов.

Уже упоминавшаяся технология ключевых кадров формата WebP показывает свои сильные стороны, особенно в анимации, где ключевые кадры обеспечивают высокое качество. Однако по этой причине процесс декодирования также более трудоемок, чем, например, для GIF.

Как выглядит разработка WebP?

Файлы WebP представляют собой контейнерные данные, где в качестве контейнерного формата используется RIFF, разработанный Microsoft и IBM: (Resource Interchange File Format). Поэтому файл в формате WebP состоит из заголовка RIFF и соответствующего содержимого WebP.

Заголовок RIFF/WebP состоит из следующих трех 4-байтовых серий:

  • FourCC (четырехсимвольный код) «RIFF»: Идентификатор типа из четырех ASCII-символов R, I, F и F, который указывает, что речь идет о файле-контейнере RIFF.
  • Размер файла: Подробная информация о размере файла.
  • 4CC «WEBP»: Идентификаторы типа из четырех ASCII-символов W, E, B и P, которые указывают, что контейнер RIFF включает файл WebP.

За заголовком следуют блоки файла WebP, которые также описываются в контейнерах RIFF как «чанки». Каждый чанк имеет свой собственный заголовок, к которому прикрепляется соответствующая информация. Возможные блоки на верхних уровнях — «VP8» (WebP с потерями), «VP8L» (WebP без потерь) и «VP8X» (расширенный WebP). Последние характеризуют файлы WebP с дополнительной информацией, такой как метаданные EXIF («EXIF» chunk) или цветовой профиль ICCP («ICCP» chunk)), а также анимированные WebP («ANIM» chunk).

Полное развитие файлов в формате WebP выглядит следующим образом:

WebP против JPEG: WebP хорошо справляется с задачей по сравнению с другими форматами изображений.

JPEG или JPG является для представления фотографий и больших изображений во Всемирной паутине тем же, чем Google является для мира поисковых систем. Даже спустя четверть века после его появления невозможно представить, чтобы этот формат изображений не присутствовал на веб-сцене. Самым большим преимуществом по сравнению с такими форматами, как PNG — который равномерно, но преимущественно используется в небольших изображениях и графике, таких как логотипы, иконки и т. д. — несомненно, является то, что JPEG обеспечивает значительную экономию памяти благодаря сжатию с потерями.

Однако в этой важнейшей детали WebP оказывается более эффективным и гибким. С одной стороны, формат Google предлагает метод сжатия как без потерь, так и с потерями, а с другой стороны, экономия памяти для изображений в формате WebP превосходит аналогичный показатель для изображений в формате JPEG. Тот факт, что JPEG допускает изображения с максимальным размером до 65 535 x 65 535 пикселей, тогда как предел WebP составляет всего 16 383 x 16 383 пикселей, можно игнорировать в свете области использования (Web).

Примечание

Преимущество сжатия, которое имеет WebP по сравнению с JPEG, теряется при очень сильном сжатии (примерно с 90-процентной степенью сжатия). Хотя такие сжатые JPEG-изображения, тем не менее, очень пикселизированы, аналогичные примеры в формате WebP обладают особым преимуществом.

Аналогичным сравнению между WebP и JPEG является сравнение между WebP и GIF, где формат от Google также демонстрирует убедительные преимущества в отношении качества и сжатия. Однако проблема заключается в отсутствии поддержки WebP такими браузерами, как Firefox или Microsoft Edge. На сегодняшний день пользователи этих браузеров не видят изображения и анимацию в WebP, поэтому почти никто из операторов веб-сайтов не полагается на этот формат.

Основные данные для сравнения «WebP и JPEG» в виде таблицы:

  WebP JPEG
Релиз 2010 1992
Расширение файла (s) .webp .jpeg, .jpg
Максимальное разрешение (в пикселях) 16,383 x 16,383 65,535 x 65,535
Сжатие (без потерь) Да Нет
Сжатие (с потерями) Да Да
Прозрачность (альфа-канал) Да Нет
Цветовой спектр RGB Да Да
Возможность анимации Да Нет
Поддерживаемые приложения ограниченное количество (включая Chrome, Opera, Gmail и IrfanView) Универсальный

Как можно открывать и конвертировать WebP-файлы?

Файл в формате WebP в настоящее время нельзя открыть с помощью обычных программ просмотра изображений из Windows, Linux и macOS Если вы хотите просмотреть анимацию или изображения, которые были закодированы с помощью WebP, есть различные варианты.

Если в вашей системе установлены Chrome или Opera, вы можете просто перетащить нужный файл в открытое окно любого из этих браузеров. Поскольку эти браузеры поддерживают WebP нативно, вы можете просматривать содержимое, которое хотите открыть, без использования дополнительного программного обеспечения. Однако это решение не очень удобно — особенно если вы хотите просмотреть несколько изображений или анимаций. Если вы не хотите работать с различными окнами браузера и переключаться между ними, проще использовать IrfanView, бесплатную программу для просмотра изображений, которая также предлагает поддержку WebP после установки официального пакета плагинов. Однако эта программа доступна только для Windows.

Примечание

Если вы используете слой совместимости Wine, вы также можете установить IrfanView под macOS или Linux, чтобы открывать WebP-файлы с помощью этой бесплатной программы.

Кроме того, в официальном разделе разработчика WebP Google предлагает ряд собственных решений для работы с WebP — прежде всего, библиотеку libwebp, которую можно использовать для реализации кодирования и декодирования WebP в собственных программах. Кроме того, в бесплатную коллекцию для загрузки включены следующие инструменты:

  • cwebp позволяет сжимать поле изображения с помощью WebP. Возможные входные форматы включают PNG, JPEG и TIFF. В опциях инструмента можно указать, какое сжатие использовать — без потерь или с потерями.
  • dwebp — это инструмент, с помощью которого можно преобразовать существующие файлы WebP в другие форматы, такие как PNG (стандартный вариант), BMP, TIFF или PGM.
  • С помощью vwebp Google предоставляет собственное решение для отображения WebP-изображений и анимации на основе OpenGL.
  • webpmux — это решающий инструмент для работы с расширенным WebP. С помощью программы можно создавать анимации в формате WebP, например, или расширять файлы изображений с помощью метаданных и ICC-профилей.
  • С помощью gif2webp вы конвертируете существующие файлы GIF в WebP. Как и при обычном сжатии изображений, возможно кодирование как без потерь, так и с потерями.
Совет

На сайте ezgif.com вы также найдете множество инструментов для создания или конвертирования файлов WebP. В отличие от приложений Google, их можно использовать прямо в браузере, не устанавливая.

Оцените статью
cdelat.ru
Добавить комментарий