WebP

WebP — (англ. WEB Pictures) формат сжатия изображений как с потерями, так и без потерь, предложенный компанией Google Inc. в 2010 году. Основан на алгоритме сжатия неподвижных изображений (ключевых кадров) из видеокодека VP8. Использует контейнер RIFF.

WebP
Изображение логотипа
Расширение .webp
MIME-тип image/webp
Сигнатура WEBP
Разработчик Google
Опубликован 30 сентября 2010[1]
Последний выпуск 1.2.2 (20 января 2022 [2])
Тип формата Графический формат
Алгоритм сжатия без потерь/с потерями
Содержится в Resource Interchange File Format (RIFF)[3]
Расширен из RIFF
Открытый формат? Да[4]
Сайт developers.google.com/… (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Для работы с данным форматом существует открытое программное обеспечение, в частности, библиотека libvpx и конвертер webpconv.

Алгоритм править

Сжатие состоит из двух этапов. На первом делается попытка «предсказать» содержимое одних блоков по уже декодированным (три блока над текущим и один блок слева от него), на втором кодируется ошибка предсказания. Блоки отрисовываются в порядке слева направо и сверху вниз[5]. Режимы предсказания работают с 3 размерами макроблоков[6]:

  • 4×4 в канале яркости
  • 16×16 в канале яркости
  • 8×8 в канале цветности

В VP8 и WebP реализованы режимы предсказания[6]:

  • Горизонтальное, H_PRED. Каждый столбец текущего блока есть копия столбца слева от текущего блока.
  • Вертикальное, V_PRED. Каждая строка текущего блока есть копия строки над текущим блоком.
  • DC предсказание, DC_PRED. Заполняет весь блок одинаковыми значениями, полученными за счет усреднения значений пикселов вышележащей строки и столбца слева от текущего блока.
  • Предсказание TrueMotion, TM_PRED. Разработано в On2 Technologies. Кроме строки над блоком и столбца слева от него используется пиксел, расположенный сверху слева от блока. Разница между угловым пикселом и строкой сверху записывается в строки блока, при этом к значениям добавляется значение соответствующего пиксела из столбца. Xij = Столбецi + Рядj - Угл. Пиксел.
  • Для блоков 4×4 реализовано 6 дополнительных режимов, сходных с V_PRED и H_PRED, но с диагональными направлениями.

Для сжатия ошибок предсказания и подблоков, которые не были предсказаны, используется дискретное косинусное преобразование DCT (и, изредка, преобразование Уолша—Адамара, WHT). Оба преобразования работают с подблоками размером 4×4 пиксела. Реализация преобразований выполнена на представлении чисел с фиксированной точностью, чтобы уменьшить ошибки округления [7]. Коэффициенты DCT и WHT пакуются энтропийным кодеком.

WebP не работает в цветовом пространстве RGB, перед кодированием изображение переводится в YUV с глубиной 8 бит и форматом 4:2:0. Перевод осуществляется согласно стандарту ITU-R BT.601[7].

Для некоторых изображений может использоваться алгоритм upscaling, когда кодируется не само изображение, а его отмасштабированная (уменьшенная) версия. Декодер проводит обратное преобразование (увеличение изображения)[7].

Поддержка править

В настоящее время просмотр изображений в формате WebP поддерживается браузерами Google Chrome (начиная с 9 версии)[8], Opera (начиная с версии 11.10)[9] и Firefox (с версии 65)[10].

Android поддерживает чтение и запись WebP-изображений начиная с версии 4.0[11].

С помощью специальной JavaScript-библиотеки возможно отображение в браузерах, поддерживающих видео в формате WebM, в частности, в Firefox 4.0 и более новых[12][13].

Существует также порт библиотеки libwebp под названием libwebpjs/libwebpas на JavaScript и ActionScript, позволяющий использовать WebP во всех популярных браузерах (поддержка IE6+ осуществляется с помощью дополнительного модуля Adobe Flash)[14].

Просмотрщик изображений IrfanView при условии установки специального плагина также поддерживает WebP и может преобразовывать его в другие графические форматы. Просмотрщик изображений ACDSee 2022 поддерживает WebP и может преобразовывать его в другие графические форматы .[15] Просмотрщик изображений FastStone Image Viewer начиная с версии 7.1 (Windows 10/11) также поддерживает WebP-формат[уточнить].

В октябре 2018 поддержка формата была добавлена в Microsoft Edge[16]. Также в октябре 2018 библиотека libwebp была принята в кодовую базу Firefox.[17]

Ограничения и недостатки править

Как и VP8, поддерживает только формат 8-bit YUV 4:2:0[18], что, при кодировании с потерей качества, может быть причиной потери цвета на изображениях с 1-пиксельными контрастными переходами, например в пиксельной графике и других видах компьютерной графики. Для преодоления этих ограничений была разработана спецификация WebP Lossless[19], работающая в цветовом пространстве ARGB.

См. также править

Примечания править

  1. Rabbat, Richard WebP, a new image format for the Web. Chromium Blog. Google (30 сентября 2010). Дата обращения: 1 октября 2010. Архивировано 13 марта 2013 года.
  2. refs/tags/v1.2.2 - webm/libwebp - Git at Google. Дата обращения: 6 марта 2020. Архивировано 21 января 2022 года.
  3. RIFF Container. Google Code. Google. Дата обращения: 1 октября 2010. Архивировано 13 марта 2013 года.
  4. WebP FAQs. Google Code. Google. Дата обращения: 6 октября 2010. Архивировано 13 марта 2013 года.
  5. VideoBits.org — Prediction. Дата обращения: 3 октября 2010. Архивировано из оригинала 24 ноября 2010 года.
  6. 1 2 Inside WebM Technology: VP8 Intra and Inter Prediction — The WebM Open Media Project Blog. Дата обращения: 3 октября 2010. Архивировано 6 ноября 2010 года.
  7. 1 2 3 http://www.webmproject.org/media/pdf/vp8-bitstream.pdf (недоступная ссылка)
  8. Chrom* и картинки WebP Архивная копия от 5 ноября 2010 на Wayback Machine  (итал.)
  9. Opera 11.10 gets WebP support, faster «Turbo» mode. Дата обращения: 29 сентября 2017. Архивировано 7 мая 2012 года.
  10. Firefox 65 для разработчиков. Дата обращения: 31 января 2019. Архивировано 1 февраля 2019 года.
  11. Android 4.0 Platform Highlights. Дата обращения: 26 июля 2012. Архивировано из оригинала 11 ноября 2011 года.
  12. antimatter15/weppy — GitHub. Дата обращения: 6 апреля 2011. Архивировано 19 октября 2010 года.
  13. Weppy Demo. Дата обращения: 29 сентября 2017. Архивировано 15 января 2013 года.
  14. Библиотека WebPJS. Дата обращения: 20 ноября 2011. Архивировано из оригинала 14 ноября 2015 года.
  15. https://www.acdsee.com/ru/support/file-formats/ Архивная копия от 5 января 2022 на Wayback Machine Поддерживаемые форматы файлов в ACDSee Photo Studio Ultimate 2022 и ACDSee Photo Studio Home 2022.
  16. What’s new in Microsoft Edge in the Windows 10 October 2018 Update. Дата обращения: 8 октября 2018. Архивировано 8 октября 2018 года.
  17. 1294490 - (WebP) Implement WebP image support. Дата обращения: 8 октября 2018. Архивировано 8 октября 2018 года.
  18. RFC 6386 - VP8 Data Format and Decoding Guide. Дата обращения: 4 февраля 2013. Архивировано 12 февраля 2013 года.
  19. WebP Lossless Bitstream Specification. Дата обращения: 17 декабря 2018. Архивировано 16 декабря 2018 года.

Ссылки править

Публикации в прессе