Пытаюсь понять потери при сжатии jpg

У меня есть куча изображений в формате jpeg, снятых на Nikon D3200 с разрешением 6016 x 4000. Они весят от 9 до 12 миллионов каждый.

Чтобы попытаться немного уменьшить пространство, я сжал копии с помощью утилиты Windows по умолчанию, и новые образы имеют размер 3411 x 2268 и весят от 0,4 до 0,5 МБ. То есть размер файла уменьшился на 20:1, а по пикселям — на 3:1.

Я смотрю на изображения на своем экране, даже увеличивая их в несколько раз, и изо всех сил пытаюсь увидеть разницу в качестве; Я знаю, чем я не эксперт, хотя.

Итак, у меня вопрос: какая более нормальная скорость сжатия jpeg: 6016 x 4000 при 10M или 3411x 2268 при 0,5M? Есть ли что-то, о чем я должен беспокоиться, что я теряю из исходных файлов?

Ответы (2)

Следует понимать, что ваши изображения размером 6016 x 4000 пикселей имеют размер 72 192 000 байт до сжатия. Это примерно 69 МБ и 3 байта данных изображения R, G, B на пиксель. Это просто размер ваших данных изображения RGB, 69 МБ (без сжатия). Это 6016 x 4000 x 3 байта на = 72 192 000 байт данных изображения в каждом изображении. Это просто размер ваших данных изображения.

Тогда JPG представляет собой резкое сжатие, а не без потерь, то есть изображения не распаковываются, чтобы быть того же качества, что и до сжатия. Чем больше сжатие, тем хуже они становятся. Вот идея на моем собственном сайте об этой проблеме: https://www.scantips.com/basics09b.html

Ваше сжатие от 9 до 12 МБ - это «нормальный» разумный размер, о котором вы спрашиваете. Это уже, возможно, около 1/8 фактического размера данных, что уже является огромным сокращением. Это будет выбор камеры с самым высоким качеством, который называется Fine (Fine JPG Quality, а не более низкое качество). В руководстве к вашей камере указано, что 11,9 МБ — это средний типичный размер файла D3200. (разные сцены могут сжиматься немного по-разному, но в пределах этого примерного значения.)

Было бы неразумно не хотеть высокого качества. Просто используйте свой мобильный телефон, если вы не хотите лучшего. :)

Вы можете уменьшить размер файлов изображений путем передискретизации до меньшего количества пикселей, но с качеством Fine JPG. Это камеры Large, Medium, Small, которые просто передискретизируют. Передискретизация до размера 1/3 в пикселях соответствует размеру 1/9 по площади и в байтах. Это может подойти для вашего видеомонитора 1920x1080, если только вам не нужно его существенно обрезать. В этом нет ничего плохого, кроме печати отпечатков размером более 6x4. Но когда вы получите фотографию своей жизни, вы можете пожелать, чтобы она была больше.

Или вы можете использовать экстремальное сжатие JPG и сильно испортить ваши изображения. И повторная выборка, и сжатие JPG необратимы, за исключением возврата к повторной съемке изображения.

Ваши изображения размером 0,5 МБ должны показывать свои ошибки. Надеюсь, вы просто сделали копии и сохранили исходные файлы.

Эта заявленная цель на самом деле была 1/9 байта, более подходящей для небольших целей, таких как размер монитора HD. Но лично я думаю, что архив следует оставить в исходном размере камеры Large Fine, для лучшего качества для любых будущих целей. Он уже сжат, и это просто размер данных изображения, а место на диске стоит недорого. Затем сделайте копию для любого меньшего использования.

Jpeg — это алгоритм изображения, основанный на сжатии. Грубо говоря, вместо того, чтобы хранить полную информацию о цвете для каждого пикселя, он экономит место, говоря: «Эй, следующие шесть пикселей все одного цвета». Повышение уровня сжатия приводит к тому, что это происходит чаще, несмотря на то, что цвета пикселей не совсем совпадают.

Сколько слишком много? Это зависит от ваших потребностей (вы размещаете это на веб-сайте?), но в основном, когда это уже не выглядит хорошо, вы зашли слишком далеко.


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

Спасибо за Ваш ответ. Мой вопрос возник потому, что у меня есть семейные фотографии с мероприятия на прошлой неделе, и они занимают 1,5 ГБ. Вот почему я попытался немного их уменьшить и был удивлен уменьшением размера. На моем экране, даже при значительном увеличении, я не могу отличить одну версию от другой. Но прежде чем стереть оригиналы, я хотел убедиться, что ничего не упустил.
Ваше небрежное описание «следующие шесть пикселей имеют один и тот же цвет» чем-то похоже на то, как, например, работает сжатие изображения GIF, но оно даже не соответствует тому, как работает сжатие JPEG. JPEG намного сложнее и основан на сложном анализе цветов и тональных узоров пикселей в каждом блоке изображения 8x8.
GIF и PNG являются сжатием без потерь, оба легко распаковываются, чтобы вернуть ТОЧНО те же пиксели изображения. JPG - это сжатие с потерями, без такой гарантии или результата, что позволяет ему гораздо больше свободы в отношении целостности ваших данных, но тогда он может сжимать меньше, и вы получаете обратно артефакты JPG.
JPEG = этот блок размером 16x16 пикселей имеет один и тот же цвет. (Дж.К.)
@twalberg Следовательно, «очень грубо». Фактические детали алгоритма сжатия не имеют отношения к этому вопросу, только идея сжатия с потерями, и полное описание того, как работает jpeg, скорее всего, просто потеряет людей в лесу и скроет ответ на фактический вопрос.