Какое качество изображения теряется при пересохранении изображения JPEG в MS Paint?

Кто-нибудь когда-нибудь замечал, что если открыть изображение в mspaint (.jpg, .jpeg), а затем просто сохранить его, размер изображения уменьшается во много раз. Я использую этот метод, чтобы уменьшить размер файла.

Однако я не уверен в потере качества из-за этого. Может ли кто-нибудь рассказать/объяснить потерю качества, если таковая имеется при использовании этого метода?

Да все это заметили. Я настоятельно рекомендую не использовать MS Paint. По сути , все это шаг вперед по сравнению с MS Paint. Попробуйте Xnview или Irfanview среди тысяч других.
Однако я заметил, что при открытии файла Jpeg с помощью MSPaint и его повторном сохранении размер файла уменьшается на 20-50%, в то время как качество изображения не меняется . Даже при увеличении до уровня пикселей я не вижу изменений в пикселизации вновь сохраненного изображения. Возможно, камера, снимающая исходный Jpeg, хранит дополнительные данные, которые MSPaint игнорирует при повторном сохранении, в результате чего получается файл гораздо меньшего размера? Кто-нибудь может предложить объяснение?
@ user21291 Возможно (вероятно, даже), что MSPaint отбрасывает цветовой профиль и другие метаданные. Это могло бы объяснить потерю размера без видимых изменений изображения. Тем не менее, я думаю, что, скорее всего, изменение незначительное, и вы просто не заметите его без тщательного сравнения. Если вы можете опубликовать изображение до и изображение после, мы могли бы посмотреть (но не через службу imgur, используемую этим сайтом, потому что такая информация удаляется).

Ответы (4)

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

Если вы просматриваете изображение и масштабируете его до масштаба 1:1 или более, вы обычно можете увидеть артефакты, вызванные сжатием JPEG.

Сжатие работает путем создания блоков 8x8 пикселей с цветовым градиентом, чтобы они максимально напоминали исходные данные, затем разница между этой мозаикой и исходными данными сохраняется с точностью, соответствующей выбранному уровню качества. Чем выше сжатие, тем больше видно мозаики.

Вот пример того, как видны артефакты сжатия по краям объекта (кленовый лист) на гладком фоне (небо):

введите описание изображения здесь

В дополнение к сжатию JPEG для дальнейшего сжатия байтов используется кодировка Хаффмана. Некоторые программы оптимизируют коды Хаффмана. Оптимизированное кодирование Хаффмана представляет собой дополнительное сжатие без потерь поверх сжатия jpeg с потерями. ЛЮБАЯ программа может выполнять одно или другое из них.

Да качество скорее всего потеряется. Формат JPEG реализует сжатие с потерями, т. е. целостность данных компенсируется размерами файла. При сохранении JPEG вы обычно можете решить, какую настройку качества использовать и, следовательно, насколько сильно сжимать файлы, похоже, что MsPaint использует значение качества по умолчанию, которое ниже, чем настройка качества файлов, которые вы открываете, то есть почему они в конечном итоге меньше.

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

Спасибо за ваш ответ, есть ли способ проверить фактическую потерю качества, есть ли какой-либо инструмент для этого.
Качество однозначно потеряется. Даже при максимальном качестве JPEG каждый раз немного меняет изображение. При меньших настройках, таких как MS Paint, изображение значительно изменится.
Крайне педантичная заметка: повторное сохранение одного и того же изображения будет достигнуто после нескольких открытий и повторных сохранений с тем же уровнем качества.

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

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

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

Размер файла обычно дает приблизительную оценку потери деталей, если вы кодируете в рамках той же схемы сжатия, по крайней мере, когда размеры файлов уменьшаются. Однако можно увеличить размер изображения (скажем, например, у вас было изображение без потерь, вы сохранили его как JPEG с качеством 10, а затем повторно сохранили его как JPEG с качеством 100). Хотя размер файла будет расти, в нем будет храниться шум с высоким качеством, а не информация из исходного изображения.

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

Я превращаю комментарий, который я сделал, в ответ, чтобы дополнительно объяснить, почему я думаю, что меньший размер не обязательно означает потерю качества, хотя это часто происходит.

В целом я считаю, что MSPaint ухудшит качество ваших изображений, когда вы их сохраните, именно по тем причинам, которые проиллюстрировал Гуффа. Однако это не всегда меняет качество, даже если может измениться размер файла. Один файл, который я попробовал только что, увеличился в размере на 10%, а качество осталось прежним.

Вы можете проверить разницу в качестве, открыв оба изображения в Photoshop и смешав их с помощью «Разницы». Различия обычно довольно тонкие, но вы увидите несколько странных пикселей, близких к черному, но не совсем указывающих на разницу.

Теперь у MSPaint нет способа установить качество jpeg, в котором вы сохраняете изображение, поэтому мы можем только предположить, что оно сохраняется с качеством, возможно, 75% (кто знает?).

Другие программы могут дать вам более точный контроль над настройками качества, но я только что создал три файла одного и того же изображения, и все три имеют разные размеры, хотя между этими файлами нет разницы на пиксель. Они имеют размер изображения 940x350 пикселей и размер файла 194 571; 188 924; и 170 074.

Первый был сохранен из Photoshop CS5 с использованием настроек «Качество: 10» и «Базовый уровень «Стандарт», второй был сохранен с использованием параметров «Качество: 10» и «Оптимизированный базовый уровень», а третий был сохранен с помощью параметра «Сохранить для Интернета и устройств», который предлагает довольно много. больше контроля над настройками качества файла. Здесь я использовал качество 80% и поставил галочку «оптимизировано». Все эти изображения идентичны пиксель в пиксель.

Я хочу сказать, что только потому, что файл jpeg меньше, это не означает, что произошла некоторая потеря качества.

Почему бы и нет? Что здесь происходит?

Если вы возьмете файл jpeg с большими областями одинакового цвета и сохраните его «оптимизированным», он может фактически потерять значительную часть размера, потому что существует другой алгоритм, называемый кодированием Хаффмана, который применяется после блокировки jpeg.

Итак, чтобы ответить на ваш вопрос : единственный способ узнать наверняка о потере качества - это выполнить сравнение пикселей с пикселем со слоем «Разница». Можно поспорить, что с MSPaint вы фактически теряете качество.

Вот ссылка на дополнительную информацию о кодировании Хаффмана

Некоторые приложения имеют фиксированную таблицу Хаффмана, которую они используют для всех изображений. В то время как другие будут пытаться построить «оптимизированную» таблицу Хаффмана для данных в этом файле.