Являются ли повороты «Windows Photo Viewer» без потерь?

Можно ли вращать сжатые с потерями фотографии, которые я просматриваю в средстве просмотра фотографий Windows , не беспокоясь о потере еще большей информации из-за сжатия?

Почему бы тебе не попробовать? Скопируйте изображение. Поверните несколько раз и посмотрите, вернется ли он идентичным. Я заметил, например, что с Picasa файлы теряют около 20% размера после первого поворота на 90 градусов. С другой стороны, вы можете просто получить программное обеспечение с этой явной функцией. ( PMView Pro — мой фаворит, так как он очень эффективный и супер быстрый, а также дешевый: pmview.com )
@Itai: я пробовал, и размер увеличивается после поворота и поворота назад. Однако это не означает, что информация теряется.
Под «средством просмотра фотографий Windows» вы подразумеваете средство просмотра по умолчанию, которое поставляется с Windows 7?
@ Мэтт Грум: Да.
@Matt Grum: он был установлен Program Files\Windows Photo Viewerдля моего Acer Aspire с Windows 7.
Больше! Это странно, но я не совсем удивлен, учитывая производителя этого программного обеспечения ;) По крайней мере, есть шанс, что это без потерь. Что вам нужно подтвердить, так это инструмент различия изображений. Это просто программное обеспечение, которое показывает разницу между двумя изображениями и сравнивает исходное и повернутое изображение.
Обратите внимание, что, насколько я знаю, поворот на 90 градусов (и на 180, 270) сам по себе без потерь, потому что это замена координат x и y (другие углы требуют интерполяции). Таким образом, любые потери, связанные с преобразованием, связаны с повторным сжатием. Вы можете избежать этого пересчета, сохранив преобразованное изображение в формате без потерь, но это явно не является частью вашего вопроса, поэтому я не буду предлагать это.
@horatio, кратность 90 градусов - это особый случай сжатия JPG, когда технически возможно повернуть изображение без цикла сжатия, «просто» переупорядочив сжатые данные. Это включает в себя удаление и применение уровня сжатия без потерь, поэтому размер файла может измениться, но операции с потерями не требуются.
Я думаю, что понимаю вас, но я хочу сказать, что jpeg — это формат хранения на диске, и он не имеет никакого отношения к качеству самих преобразований. То есть, хотя часто говорят о работе с jpeg и т. д., пока файл отображается на экране и обрабатывается, это не jpeg.
Чувак, я ВСЕГДА хотел знать ответ на этот вопрос. ИМО они ДОЛЖНЫ быть. Но, скорее всего, из-за стандарта JPEG... Я не думаю, что технически возможно сделать эту операцию без потерь.
Программа просмотра изображений Google Picasa работает без потерь. но обманывает. он не поворачивает изображение. он просто отмечает в метаданных «отобразить это изображение повернутым».
изменение размера файла подозрительно. у меня нет вин7. кто-то должен сделать diff изображения: результат должен быть полностью черно-белым (обязательно проверьте, чтобы не было маленьких значений).
Picasa изменила это недавно? Когда я работал в Google полтора года назад, я спросил об этом ведущего архитектора, и он ответил, что они сначала пометили изображение как повернутое, а затем сделали поворот (который уменьшил размер изображения), когда были применены несохраненные изменения.
Для меня, если вы удалите файл .meta (который создается рядом с изображением), фотография будет отображаться программой просмотра Picasa как не повернутая. так что да ... он не вращает изображение, а просто видит в метаданных «отображать как повернутое».
Мне также интересно узнать, приводит ли вращение фотографии iPhone к повторно сжатому JPG??? Приведенные выше ответы на самом деле не помогают ... почему, черт возьми, встроенное средство просмотра фотографий Windows 7 все еще не может обрабатывать информацию о вращении? Любая другая программа или платформа правильно представляет фотографию на основе информации заголовка.
(i) Picasa хранит информацию о преобразовании изображений в .picasa.iniфайлах. Удалите файл и перезапустите Picasa. Вы заметите, что изображения, которые были повернуты с помощью Picasa, больше не поворачиваются. (ii) приложение для просмотра фотографий Windows 10 изменяет метаданные — размер файла остается прежним.

Ответы (1)

Если размеры изображения кратны 8 (или 16, если используется субдискретизация цветности), то повороты выполняются без потерь. В противном случае невозможно повернуть изображение без пересчета блоков, т.е. повторного сжатия изображения с потерями.

Причина этого в том, что изображения в формате jpeg разбиты на серию блоков размером 8x8 или 16x16, которые сжимаются по отдельности. Неполные блоки разрешены только на правом краю и нижнем краю. Таким образом, ваше изображение не является точным кратным 8/16, оно будет содержать неполные блоки, которые после поворота окажутся на неправильном краю.

Я проверил приведенное выше утверждение, используя версию Windows Photo Viewer, поставляемую с Windows 7. Я использовал два изображения цветового шума. Одно изображение было 256x256, т.е. оба размера кратны 8. Другое изображение было таким же, но обрезано до 253x253, т.е. ни один размер не был кратен 8. Вот изображения:

256x256

253x253

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

256x256

253x253

Нет необходимости выполнять вычитание, чтобы увидеть разницу с изображением в 253 пикселя, оно заметно темнее и грязнее!

Разница на другом изображении выглядит так:

т.е. изображения идентичны, вращения были без потерь.

Я знаю, что в прошлом, когда я выполнял повороты, он предупреждал меня, что поворот будет с потерями, что означает, что в случаях, когда предупреждение не отображалось, преобразование было без потерь, но я не проверял. Я также не помню, какую версию WPV я использовал, не исключая возможности того, что MS изменила кодовую базу, поэтому я не могу быть уверен.
@Tim Изображение чистого шума по определению является наихудшим случаем для JPEG (или любого алгоритма сжатия), поэтому я выбрал его! Результаты на реальных изображениях будут выглядеть лучше.
@MattGrum, очень классная демонстрация. Я надеюсь, что все производители цифровых камер имеют свои размеры изображения в целых числах, кратных 8!
@MattGrum Раньше я работал в команде WPV. Насколько я знаю (и я почти уверен), ваш ответ правильный. Кроме того, +1 за очень тщательный метод доказательства вашей гипотезы :)
@TrevorBoydSmith каждая камера, которую я видел, имеет размеры изображения, кратные 8 или 16. Вращение не обязательно является причиной, оно может просто позволить некоторую оптимизацию конвейера JPEG.