Представлен релиз библиотеки libwebp 0.2 с реализацией функций кодирования и декодирования изображений в формате WebP, продвигаемом компанией Google. Используемые в WebP технологии сжатия с потерями позволяют добиться сокращения размера файла на 25%-34%, по сравнению с файлами JPEG аналогичного качества, и на 26% в режиме кодирования без потерь по сравнению с максимальным уровнем сжатия PNG.
Новая версия библиотеки примечательна обеспечением поддержки прозрачности (альфа-канал) и режима сжатия без потерь. Указанные возможности были предложены для внесения в спецификацию в конце прошлого года, сейчас же в спецификацию внесён финальный вариант новых возможностей и представлена их стабильная реализация, готовая для повсеместного внедрения. Поддержка сжатия без потерь и прозрачности WebP также добавлена в последнюю бета-версию браузера Chrome. Из других улучшений в новой версии библиотеки также отмечается проведение оптимизации производительности и потребления памяти - в процессе работы библиотека теперь расходует ресурсы CPU и потребляет память не хуже, чем реализации формата PNG.
При кодировании без потери данных для обеспечения высокой степени сжатия (средняя степень сжатия 1000 случайных изображений их сети составила 45%) задействовано несколько продвинутых технологий, таких как отдельные коды энтропии для разных цветовых каналов, учет отдалённости типовых 2D-областей при формировании обратных ссылок и кэширование недавно используемых цветов. Указанные технологии сочетаются с классическими методами, такими как словарное кодирование, алгоритм Хаффмана и трансформация цветовых индексов. В реализации поддержки прозрачности в WebP удалось добиться сведения к минимуму дополнительной информации, определяющей параметры альфа-канала, что позволило существенно снизить размер итоговых изображений. При кодировании без потери качества, использование альфа-канала добавляет всего на 22% больше данных по сравнению с кодированием с потерей качества (уровень качества 90).
Таким образом, в настоящее время WebP может выступать в качестве полноценной замены форматам JPEG, GIF и PNG, обеспечивая при этом более высокую степени сжатия и скорость декодирования. При распространении фотографий WebP позволяет обеспечить максмальное сжатие с незаметной для глаза потерей качества, а при необходимости сохранения изображений в неизменном виде, например, при распространении пиктограмм или скриншотов, теперь поддерживается режим с полным попиксельным сохранением целостности изображения. В обоих режимах возможно определение прозрачных областей, создание анимации, использование цветовых профилей ICC, тайлинга и метаданных XMP.
При создании формата WebP использованы технологии, задействованные в видеокодеке VP8 для сжатия ключевых кадров. Высокая плотность упаковки достигается благодаря использованию предсказательной техники кодирования, учитывающей содержимое соседних пиксельных блоков для предсказания содержимого текущего блока, что позволяет ограничиться хранением только различий между фактическими и предсказанными данными. В качестве контейнера для хранения изображений, сжатых методом WebP, используется стандартный RIFF. Код открыт под лицензией Apache 2.0, которая дополнена пунктом о безвозмездной передаче прав на использование связанных с WebP патентов Google.