Является ли формат webp более эффективным, чем JPEG? - PullRequest
1 голос
/ 12 апреля 2019

Я пытаюсь сжать и изменить размер фотографий с зеркальной камеры. Но мои наблюдения показывают, что качество webp-файлов заметно ухудшается, когда размер файла webp примерно на 30% меньше, чем JPEG.

Команда, используемая для создания webp с использованием imagemagick:

convert 1.JPG -strip -quality 80 -izeize 800 -define webp: method = 6 1.webp

Моя цель - получить формат webp, размер файла которого должен быть как минимум на 20% меньше, чем JPEG, при этом практически не различаясь по качеству между JPEG и webp. Это достижимо или опять не существует такой вещи, как бесплатный обед?

Ответы [ 2 ]

2 голосов
/ 15 мая 2019

По данным Google, «WebP обычно обеспечивает сжатие в среднем на 30% больше, чем JPG» (источник) с качеством изображения, аналогичным JPG. Однако, как вы предлагаете, такого понятия, как бесплатный обед, никогда не бывает.

Качество Качество в значительной степени субъективная мера, но имейте в виду, что вы сравниваете файл, сжатый с качеством 80, с файлом, который не имеет такого уровня сжатия (по крайней мере, это то, что я понимаю из вашего вопроса). Простое преобразование по умолчанию без указания более низкого качества может дать вам файлы меньшего размера без потери видимого качества. Хотя на 20% меньше, но это может быть достижимо для определенных изображений.

convert 1.JPG 1.webp # do not specify quality

размер На практике это во многом зависит от ваших настроек и исходных изображений. Например, недавно я выполнил эту команду для всех изображений jpg в папке на веб-сайте «в дикой природе»:

convert filename.jpg -quality 80 -strip -define webp:lossless=false -define webp:method=6 filename.webp

Команда convert на этом конкретном сервере основана на ImageMagick 6.7.8. Некоторые файлы были значительно меньше по сравнению с оригинальными JPG, в то время как другие были на самом деле больше. В целом после выполнения этой команды общий размер файлов всех изображений JPG составил 49 МБ, а общий размер файлов всех изображений WebP - 29 МБ. Это довольно неплохая экономия, однако, когда я запустил сжатие JPG в ImageMagick, оно стало еще лучше:

convert filename.jpg -sampling-factor 4:2:0 -strip -quality 80 -interlace JPEG filename-new.jpg;

Размер всех новых jpgs в каталоге был 21 МБ. Оба настроены на сжатие с качеством 80, но сжатие JPG выглядит лучше. Это может иметь отношение к некоторому сжатию уже на моем наборе тестовых изображений и к тому, как оно взаимодействует с процессом преобразования WebP.

Как я обнаружил, размеры файлов могут даже увеличиваться, обычно, если вы конвертируете между изображениями с потерями и без потерь. На странице часто задаваемых вопросов, на которую ссылается выше, Google заявляет: «это происходит главным образом из-за разницы в цветовом пространстве (YUV420 против ARGB) и конверсии между ними».

tl; dr: В естественных условиях, это может или не может улучшить размер файла в зависимости от типа изображений, если / как исходный файл был сжат, и какого качества вы установили для WebP. Заметную деградацию труднее измерить, но попробуйте установить более высокое качество или вообще не указывать качество.

1 голос
/ 16 мая 2019

Просто чтобы добавить побочный комментарий к отличному ответу @ Pwpwpw, webp - хорошая замена PNG, но не такая хорошая, как замена JPG.

Он превосходит PNG, потому что он имеет лучший алгоритм сжатия без потерь, чем libpng,и он имеет отличную особенность, позволяющую разные настройки сжатия для разных каналов.Например, вы можете работать без потерь на альфе, но с потерями на RGB, что отлично подходит для оверлеев.

Против JPG это не так хорошо.Он использует кодек VP8 для потерь, который только несколько лучше, чем JPG.

Я бы взглянул на HEIC.Он использует гораздо более современный h.265 для сжатия с потерями и обычно обгоняет JPG в два раза при том же качестве.Это формат, который Apple сейчас использует по умолчанию в iOS.

libheif здесь есть хорошая демонстрация:

https://strukturag.github.io/libheif/

Это libheif, скомпилированона JavaScript и работает в вашем браузере.Вы можете загрузить .heic к нему и скачать как JPG.В libheif есть несколько основных инструментов командной строки для кодирования и декодирования изображений.

У него, к сожалению, есть некоторые проблемы с патентами, возможно, вам следует проявить осторожность.

...