Исследование сжатия WebP

Введение

Мы проводим сравнительную оценку сжатия изображений WebP и JPEG на основе нового кодировщика, который мы выпустили в libwebp . Цель состоит в том, чтобы провести серию легко повторяемых экспериментов с использованием общедоступных инструментов и сравнить сжатие изображений, достигнутое с помощью WebP и JPEG.

Наше более раннее сравнительное исследование WebP было сосредоточено на оценке большого количества изображений и проводилось на источниках JPEG, полученных из Интернета. JPEG — это формат сжатия с потерями, который вносит в источник артефакты сжатия. Кроме того, первоначально мы использовали пиковое отношение сигнал/шум или PSNR в качестве показателя качества. PSNR имеет некоторые недостатки при использовании в качестве показателя качества изображений. Основываясь на отзывах сообщества, мы проводим эксперименты с изображениями PNG, включая изображения, доступные в нескольких стандартных наборах тестов. В этом исследовании мы используем структурное сходство или SSIM в качестве показателя качества этого исследования. SSIM считается лучшим показателем визуального качества. .

Методология

Мы описываем два типа оценок. В первом случае мы изучаем дополнительное сжатие, достигаемое WebP при том же уровне качества, что и JPEG. В частности, мы генерируем изображения WebP того же качества (согласно индексу SSIM), что и изображения JPEG, а затем сравниваем размеры файлов изображений WebP и JPEG. Во втором случае мы анализируем графики SSIM и битов на пиксель (bpp) для WebP и JPEG. Эти графики показывают компромисс между скоростью и искажением для WebP и JPEG.

Наборы данных для экспериментов состоят из изображений PNG. Эти изображения были получены из общедоступных стандартных тестовых наборов изображений, а также из большой коллекции изображений PNG, полученных из Интернета.

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

  • identify и convert — это инструменты командной строки, входящие в состав ImageMagick . Для этого анализа мы использовали версию 6.5.7. Мы использовали convert для преобразования форматов PNG и PPM. Мы использовали identify для извлечения информации о ширине и высоте изображения.

  • cwebp и dwebp — это инструменты командной строки, являющиеся частью библиотеки libwebp , выпущенной нами в первом квартале 2011 года. Мы использовали версию библиотеки 0.1.2. Мы использовали cwebp и dwebp для кодирования и декодирования изображений WebP. Мы использовали параметры кодирования и декодирования этих инструментов по умолчанию.

  • cjpeg и djpeg — это инструменты командной строки, входящие в библиотеку libjpeg . Мы использовали версию 6b библиотеки. Мы использовали cjpeg и djpeg для кодирования и декодирования изображения JPEG. Мы использовали cjpeg с флагом -optimize для оптимизации размера файла. Для всех остальных параметров мы устанавливаем значения по умолчанию.

Качество изображения измерялось с помощью SSIM. Как отмечалось ранее, SSIM обычно считается более качественным показателем, чем PSNR. Для вычисления индекса SSIM мы использовали общедоступную реализацию на C++. Читатель может загрузить скрипты Python, которые мы использовали в экспериментах, из репозитория кода для справки.

Наборы данных изображений

Мы выбрали наборы данных для оценки стандартных тестовых коллекций изображений, а также большого набора изображений. Ниже приведен список наборов данных, использованных в экспериментах.

  1. Ленна: широко используемое изображение Ленны (512 x 512 пикселей).

  2. Kodak: 24 изображения из пакета полноцветных изображений Kodak .

  3. Tecnick: 100 изображений из коллекции, доступной на Tecnick.com . Мы использовали 100 цветных изображений RGB исходного размера.

  4. Image_crawl: Чтобы протестировать большое количество изображений, мы собрали случайную выборку изображений PNG из базы данных веб-сканирования Google Image Search. Большинство просканированных PNG-изображений представляют собой значки, графики, диаграммы, отсканированные документы и т. д. Однако большинство изображений в стандартных тестовых коллекциях похожи на фотографии, а не на компьютерные изображения. Чтобы сделать этот набор данных по своей природе похожим на стандартные наборы тестов, мы запустили алгоритм обнаружения лиц над этими PNG-изображениями и рассмотрели только те изображения (около 11 000) для этого эксперимента, которые прошли этот тест на обнаружение.

Эксперимент 1: WebP против JPEG при равном индексе SSIM

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

  1. Сожмите исходное изображение PNG в JPEG с фиксированным параметром качества Q и запишите SSIM между исходным изображением PNG и сжатым изображением JPEG.

  2. Сжимайте то же исходное изображение в WebP с параметром качества, максимально близким к записанному выше SSIM.

Мы выполнили два вышеуказанных шага для всех изображений в наборе данных, а затем измерили средний размер файла и SSIM для изображений JPEG и WebP.

В следующих таблицах показаны результаты этого эксперимента для трех различных значений (50, 75 и 95) параметра качества JPEG Q. Параметры качества 50 и 95 представляют сжатие изображения при низкой и высокой скорости передачи данных соответственно. Мы также включили параметр качества JPEG 75, поскольку это обычно рекомендуемый уровень качества для изображений JPEG.

Таблица 1. Средний размер файла для WebP и JPEG для одного и того же индекса SSIM, соответствующего JPEG Q=50.

Ленна Кодак Техник Изображение_сканирование
WebP: средний размер файла
(Средний SSIM)
17,4 КБ
(0,841)
31,0 КБ
(0,898)
92,4 КБ
(0,917)
6,5 КБ
(0,901)
JPEG: средний размер файла
(Средний SSIM)
23,5 КБ
(0,840)
42,7 КБ
(0,897)
124,6 КБ
(0,916)
9,9 КБ
(0,899)
Соотношение размера файла WebP и JPEG 0,74 0,72 0,74 0,66

Таблица 2. Средний размер файла для WebP и JPEG для одного и того же индекса SSIM, соответствующего JPEG Q=75.

Ленна Кодак Техник Изображение_сканирование
WebP: средний размер файла
(Средний SSIM)
26,7 КБ
(0,864)
46,5 КБ
(0,932)
139,0 КБ
(0,939)
9,9 КБ
(0,930)
JPEG: средний размер файла
(Средний SSIM)
37,0 КБ
(0,863)
66,0 КБ
(0,931)
191,0 КБ
(0,938)
14,4 КБ
(0,929)
Соотношение размера файла WebP и JPEG 0,72 0,70 0,73 0,69

Таблица 3. Средний размер файла для WebP и JPEG для одного и того же индекса SSIM, соответствующего JPEG Q=95.

Ленна Кодак Техник Изображение_сканирование
WebP: средний размер файла
(Средний SSIM)
74,3 КБ
(0,910)
118,0 КБ
(0,978)
356,0 КБ
(0,970)
23,4 КБ
(0,969)
JPEG: средний размер файла
(Средний SSIM)
104 КБ
(0,907)
162 КБ
(0,976)
492 КБ
(0,970)
31,3 КБ
(0,968)
Соотношение размера файла WebP и JPEG 0,71 0,73 0,72 0,75

Из приведенных выше таблиц мы видим, что WebP дает дополнительный прирост сжатия на 25–34% по сравнению с JPEG при равном или немного лучшем индексе SSIM.

Эксперимент 2: графики SSIM и BPP для WebP и JPEG

Мы изучаем компромисс между скоростью и искажением JPEG и WebP. В частности, мы изучаем графики зависимости SSIM от битов на пиксель (bpp) для JPEG и WebP. Мы берем исходное изображение PNG, сжимаем его в JPEG и WebP, используя все возможные значения качества (0–100). Затем для каждого значения качества мы отображаем SSIM и bpp, достигнутые для JPEG и WebP. На следующих рисунках показаны графики зависимости SSIM от bpp для трех изображений, выбранных из трех общедоступных наборов данных, которые мы использовали.

Рисунок 1: SSIM и BPP для Ленны

ssim против bpp для Ленны

Рисунок 2. SSIM и BPP для kodim19.png из набора данных Kodak.

ssim против bpp для Kodim19

Рисунок 3. SSIM и BPP для RGB_OR_1200x1200_061.png из набора данных Tecnick.

ssim против bpp для RGB_OR_1200x1200

Кроме того, мы изучили среднее поведение графика SSIM в зависимости от bpp для наборов данных Kodak и Tecnick. Чтобы построить среднее поведение, мы сжимаем все изображения в наборе данных с помощью WebP и JPEG со 100 различными значениями качества. Затем мы отображаем среднее значение SSIM и bpp для каждого значения качества. Набор данных сканирования изображений состоит из разнородных изображений, которые не подходят для такого агрегирования данных. На следующих графиках показано среднее поведение SSIM и bpp для наборов данных Kodak и Tecnick соответственно.

Рисунок 4. SSIM и BPP для набора данных Kodak.

ssim против bpp для Kodak

Рисунок 5. SSIM и BPP для набора данных Tecnick.

ssim против bpp для набора данных Tecnick

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

Заключение

В исследовании оценивалось сжатие WebP по сравнению с JPEG. Мы заметили, что средний размер файла WebP на 25–34 % меньше по сравнению с размером файла JPEG с эквивалентным индексом SSIM. Графики SSIM и bpp показали, что WebP постоянно требует меньше битов на пиксель, чем JPEG для того же индекса SSIM. Эти результаты показывают, что WebP может обеспечить значительные улучшения сжатия по сравнению с JPEG.


1 Хюинь-Ту, Кв.; Ганбари, М. (2008). «Область действия PSNR при оценке качества изображения/видео». Electronics Letters 44: 800-801.doi:10.1049/el:20080522.

2 З. Ван, А. С. Бовик, Х. Р. Шейх и Э. П. Симончелли, « Оценка качества изображения: от измерения ошибок до структурного сходства» , «Обработка изображений», IEEE Transactions, том 13, выпуск 4, стр. 600–612, 2004 г.