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

Оптимизация скорости загрузки веб-страниц

В качестве первых шагов этой компанией было выпущено расширение для браузера Mozilla Firefox под названием «Page Speed», предоставляющее функции мониторинга производительности веб-страниц, а также дающее советы по улучшению оной. Также вышло расширение Speed Tracer для Chrome, предоставляющее похожие функции, а именно поиск проблем с производительностью веб-приложений. Помимо этого, был разработан и выпущен в открытый доступ набор инструментов разработчиков для финальной доводки веб-приложений. Этот набор облегчает написание масштабных приложений путем оптимизации присутствующего в них javascript-кода.

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

Размер изображения при использовании популярных форматов

  1. JPEG обеспечивает наибольший размер, даже при настройках качества без потерь.
  2. PNG поддерживает сжатие без потерь, в отдельных случаях обеспечивающее 2-3-кратное уменьшение места, занимаемого картинкой.
  3. BMP редко применяется в интернете для хранения крупных изображений и не поддерживает сжатия вовсе.

В современных реалиях любая веб-страница использует изображения. В среднем на картинки приходится две трети трафика при загрузке страницы. Подавляющее большинство графических файлов представлено в формате JPEG и в прочих, использующих сжатие с потерями. Менее распространенными форматами являются PNG, GIF и BMP, впрочем, они тоже имеют право на жизнь, и некоторые из них довольно часто встречаются. Первенство, впрочем, остается за JPG: этот формат обеспечивает наилучшее качество при наименьшем размере картинки. Это очень полезно при медленном соединении с интернетом или в случае использования сотовой сети. Да и любому человеку будет приятно, если сайты, на которые он переходит, будут открываться быстрее. А различные графические материалы — это то, что замедляет загрузку сильнее всего. Во всяком случае, так было раньше. Все используемые на сегодняшний день форматы были созданы более 15 лет назад. Они создавались для потребностей того времени, на основании видений того периода и по стандартам, к настоящему времени давно устаревшим.

Разработка нового формата

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

Дабы улучшить возможности сжатия, обеспечиваемые форматом JPG, разработчики Google применили алгоритм сродни тому, что используется в кодеке VP8, исходный код которого был сделан общедоступным в 2010 году. Был применен подход, задействованный в VP8 в сжатии промежуточных кадров. Также разработчики оптимизировали формат контейнера, получилось нечто похожее на формат RIFF. С ним каждое изображение увеличивается всего на 20 байт, притом что обеспечивает возможность сохранять любые метаданные, благодаря масштабируемости.

После разработки формат нужно было протестировать на реальных задачах. Разработчики использовали миллионы изображений, загруженных из глобальной сети. Файлы были в разных форматах, с разной степенью качества, разным процентом сжатия, разных размеров и несущие разные паттерны информации (фото, текст, графика, рисунки и т. д.). В среднем формат WebP показал 40 % преимущество в размере файла при субъективно даже слегка более высоком визуальном качестве, нежели JPG. Google Chrome с довольно ранних версий поддерживает работу с WebP.

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