Webp-Устройство

WebP — относительно новый формат от Google. Картинки в этом формате занимают на странице на 30% меньше места благодаря специальному сжатию, основанному на кодировании ключевых кадров в видеокодеке VP8. ВебП поддерживает сжатие с потерями и без потерь, различную степень прозрачности, метаданные и может содержать встроенный профиль ICC. Но еще не все браузеры и приложения поддерживать формат.

WebP-устройство



Как работает сжатие в WebP

Сжатие с потерями основано на предположении, что яркость и цвет соседних пикселей мало отличаются друг от друга.

Изображение разделено на макроблоки.

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

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

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

После математически обратимого преобразования (с помощью ПрЭП ) результат подлежит квантованию и энтропийному кодированию.



WebP-устройство



WebP с потерями

Используется WebP с потерями арифметическое кодирование — один из алгоритмов сжатия энтропии.

WebP использует квантование блоков и адаптивно распределяет биты между различными фрагментами изображения: меньше битов для фрагментов с низкой энтропией и больше для фрагментов с высокой энтропией.

Такое кодирование считается более гибким, чем Код Хаффмана (который использует JPEG).

JPEG делит изображение на равные блоки, а технология кодирования WebP использует интеллектуальное разделение.

В тех частях картинки, где много мелких и быстро меняющихся деталей, блоки имеют размер 4 х 4 пикселя, а на монотонных участках — 16 х 16.

WebP-устройство



Как работает прогнозирование?

Декодер VP8 имеет 2 класса прогнозирования:
  • Внутрикадровое пространственное предсказание блока на основе значений пикселей из соседних, уже закодированных блоков, слева и сверху.

  • Inter – межкадровое временное предсказание (оценка векторов движения).

Intra имеет четыре алгоритма прогнозирования для блоков 16x16 и 8 для блоков детализации 4x4:
  • H_PRED горизонтальное прогнозирование.

    Заполняет следующий столбец на основе столбца слева от него.

  • Вертикальное прогнозирование V_PRED. Заполняет следующую строку на основе предыдущей верхней.

  • DC_PRED заполняет блок, используя средние значения цвета и яркости пикселей строки
  • TM_PRED заполняет блок, используя не только средние значения строки A и столбца L, но и пикселя P, который расположен вверху и слева от блока.

    Каждая строка начинается с пикселя в столбце L и заполняется в соответствии с разностями пикселей в столбце, начиная с пикселя P.

Изображение разделено на сегменты, имеющие явно схожие характеристики.

Для каждого такого сегмента параметры сжатия и методы прогнозирования настраиваются независимо.

Это перераспределяет биты туда, где они наиболее полезны.



WebP-устройство



Сжатие без потерь

Сжатие без потерь использует вариант алгоритма.

LZ77 - Код Хаффмана.

А также пространственное прогнозирование и преобразование цветового пространства.



Не только прогнозирование



Сжатие с альфа-каналом
Формат WebP позволяет получить сжатое изображение с альфа-каналом без потерь.

Раньше для достижения прозрачности все изображение должно было быть без потерь.

А в WebP можно уменьшить вес изображения с помощью прозрачных областей.



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

Изображение разбивается на блоки и для каждого блока применяется свой режим трансформации green_to_red, green_to_blue или red_to_blue. Преобразование цвета сохраняет постоянным значение зеленого G-канала, преобразует красный R как функцию зеленого и синий B как функцию зеленого, а затем как функцию красного.



Кэширование цвета
Сжатие WebP без потерь использует уже обработанные фрагменты изображения для работы с новыми пикселями.

Если подходящие совпадения не найдены, используется локально сгенерированная палитра.

Эта палитра постоянно пополняется цветами, найденными при сканировании изображения.



Индексирование палитры
Если изображение имеет менее 256 цветов, алгоритм создает отдельный массив индексов цвета и сохраняет его отдельно, чтобы заменить значение цвета индексом для каждого пикселя.

Для снимков с небольшим количеством мелких деталей используется технология апскейлинга.

Перед кодированием размер изображения изменяется.

Статья написана на основе этот материал.

Вы можете попробовать сжатие WebP здесь .



Абстрактный

  1. В WebP изображение разделено на макроблоки.

    Блоки размером 4х4 пикселей для мелких деталей и 16х16 для монотонных участков.

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

  3. Losy WebP использует арифметическое кодирование, а без потерь — код Хаффмана.

  4. WebP позволяет получить сжатое изображение с альфа-каналом без потерь.

Теги: #WebP #устройство webp #изображение #Обработка изображений
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.