Исследование сжатия 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

Ленна Кодак Техник Image_crawl
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

Ленна Кодак Техник Image_crawl
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

Ленна Кодак Техник Image_crawl
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 для 3 изображений, выбранных из 3 общедоступных наборов данных, которые мы использовали.

Рисунок 1: Сравнение SSIM и BPP для Lenna

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 Huynh-Thu, Q.; Ганбари, М. (2008). «Область действия PSNR при оценке качества изображения / видео». Electronics Letters 44: 800-801.doi:10.1049/el:20080522.

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