Почему большинство камер не поддерживают формат PNG?

Я предпочитаю формат PNG, а не JPG, потому что JPG использует сжатие с потерями .

Когда я делаю снимок экрана на своем ПК или сканирую изображение или документ на своем сканере, я всегда сохраняю их в формате PNG.
Если бы камера могла сохранять свои данные в формате PNG, я бы использовал эту функцию, даже если бы мне нужно было купить больше карт памяти.

Но я не видел ни одной такой камеры. Почему бы и нет? Почему большинство (или ни одна) камера не поддерживает формат PNG?

PS Моя камера не поддерживает RAW.

Многие поддерживают формат TIFF, который также поддерживает сжатие без потерь. Но тогда возникает вопрос: «Почему большинство веб-браузеров не поддерживают TIFF?»
Вы предпочитаете PNG, а не JPG для фотографии? Я не видел аргументов в пользу этого раньше.
Ирония в том, что ссылка, которую вы даете, использует png в качестве примера сжатия с потерями :)
Насколько я знаю, PNG более эффективен для компьютерной графики, так как формат содержит внутреннюю палитру всех цветов, используемых в изображении, поэтому для фотографии высокого качества это будет ОГРОМНАЯ палитра. Другими словами, вы не получите такого сжатия, как для других форматов, таких как JPEG, без других компромиссов (качества или производительности). JPEG, с другой стороны, был разработан специально для фотографий. en.wikipedia.org/wiki/Portable_Network_Graphics
@JZL Хотя PNG поддерживает цветовые палитры (индексированные цвета), они не требуются. Я уверен, что мы говорим о старом добром 24- или 48-битном цвете RGB. GIF, с другой стороны, поддерживал только индексированные цвета и был ограничен 256 цветами в палитре.
JPEG без потерь или JPEG2000, вероятно, будут лучше, чем PNG для фотографии. Можно было бы использовать PNG в контейнере TIFF, но неясно, будет ли сжатие PNG более эффективным, чем JPEG без потерь или JPEG2000. JPEG2000 все еще обременен патентами, но в ближайшие годы мы можем увидеть это как путь вперед.
На самом деле нет практического смысла иметь формат без потерь, такой как PNG, с 24 битами. На 85% JPG практически такой же, как PNG. Только в определенных ситуациях вы сможете увидеть разницу, например, увеличить масштаб или сделать очень большие отпечатки. Просто нецелесообразно хранить такой большой формат, когда большинство людей это только смутит.
@mattdm, какие браузеры не поддерживают TIFF?
@Pacerier Большинство из них. Вместо того, чтобы перечислять, посмотрите эту таблицу в Википедии .
Ознакомьтесь с первым ответом, чтобы получить техническое и практическое представление - stackoverflow.com/questions/2336522/…

Ответы (7)

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

Формат PNG не дает ни одного из этих преимуществ, поэтому вы даже не получаете компромисс между другими форматами, вы получаете почти только недостатки обоих форматов.

Здесь следует отметить, что нет «формата RAW». Поэтому, если Бенджамин хотел получить стандарт, ему пришлось бы конвертировать RAW в DNG.
Да, RAW просто означает внутренний формат камеры и варьируется от камеры к камере. Недавно я использовал камеру, необработанный формат которой включал два байта на пиксель и несколько тысяч дополнительных байтов верхнего/нижнего колонтитула (тьфу).
Здесь я склонен согласиться с Леонидасом. Настоящая проблема заключается в том, что DNG не используется большинством производителей камер. Как фотографы, мы владеем нашими негативами, но наши цифровые негативы заперты в проприетарных форматах файлов, часто с деталями, скрытыми под соглашением о неразглашении. Принятие DNG Canon или Nikon будет иметь большое значение для решения этой проблемы. Однако этого не произойдет.
@RBerteig А пока людям было бы разумно покупать камеры, которые уже поддерживаются dcraw.
@Джон, использование 2 байтов на пиксель ненормально? Как еще вы бы подогнали 12- или 14-битное значение, которое сенсор выдает для каждого пикселя? После этого вы можете сделать небольшое сжатие, но для кучи более или менее случайных данных это может даже не стоить того.
@erjiang, я конечно согласен с этим. Я выступал за архивирование копии dcraw.c, которая работает с вашей камерой, вместе с вашими периодическими резервными копиями необработанных файлов, по крайней мере, как один из способов убедиться, что у вас есть документ, который их описывает.
@RBerteig Поддержка Native DNG была одной из причин, по которой я перешел на цифровую зеркальную камеру Pentax.
@Nick T. Действительно ли датчик обычно обеспечивает только 12- или 14-битное значение для каждого пикселя? До недавнего времени я не имел дело ни с чем RAW, и я полагаю, что ожидал, что он предоставит необработанные данные намного ближе к 24-битному цвету (8 зеленых битов, 8 красных битов, 8 синих битов).
@Nick T. Я пошел дальше и опубликовал [ photo.stackexchange.com/questions/11766/… вопрос ), спрашивая о битах данных датчика цифровой камеры. Не стесняйтесь отвечать, если вы много знаете об этом.
@John Robertson: Большинство чипов записывают только один цвет на пиксель, а не три, поэтому 14-битный RAW соответствует 42-битному RGB после интерполяции двух цветовых компонентов на пиксель из окружающих пикселей.
@jetxee, да, Pentax и пара очень дорогих камер используют собственный формат DNG. Я просто не буду затаить дыхание, ожидая, когда Canon или Nikon отойдут от своих проприетарных форматов RAW.
Какой точный ответ!
Я вижу это наоборот. Преимущество PNG перед JPEG в том, что они не имеют потерь, а преимущество перед RAW в том, что они меньше. Так что я бы сказал, что это лучшее из обоих миров, если вас не интересуют ни очень маленькие изображения, ни очень подробные.
@IulianOnofrei: Хотя формат PNG не имеет потерь, многие данные теряются до того, как они будут помещены в файл. Формат (используемый) поддерживает только битовую глубину до 8 бит, поэтому 12-14 бит от датчика необходимо уменьшить до 8 так же, как для JPEG. Сжатие JPEG удаляет некоторые дополнительные данные, но если вы сравните изображения JPEG с изображениями PNG (наложение путем вычитания), вы увидите, что различия очень малы и на самом деле не гарантируют больший размер файла.
Это должен был быть ответ!
Этот ответ неверен. Правильный ответ — инерция отрасли и меры по сокращению затрат. PNG был бы гораздо лучшим вариантом, в отличие от JPG, он будет ухудшаться каждый раз, когда вы редактируете и сохраняете его, потому что он без потерь. И в отличие от RAW, он имеет максимально возможное сжатие, поэтому размер файла, хотя и больше, чем у JPG, все же гораздо более управляем, чем у RAW. Разработчики камер просто не испытывают особой необходимости улучшать этот аспект, потому что большинство потребителей не видят разницы.
@Shodan: Нет, PNG не лучший вариант, поскольку он не сохраняет исходные данные и не обеспечивает оптимального сжатия. Данные с датчика обычно содержат один цветовой компонент на пиксель, в то время как данные в изображении PNG должны содержать интерполированные значения всех трех цветовых компонентов для каждого пикселя. Это означает, что файл PNG содержит в три раза больше информации, чем файл RAW, но его по-прежнему нельзя использовать для получения исходной информации от датчика, поскольку значения были обработаны.
@Guffa, в отличие от RAW, PNG стандартизированы, открываются со всем и не ухудшаются при каждом сохранении. В 2021 году пространство или скорость не имеют значения для 99% пользователей камер, поскольку они практически не ограничены. Если бы производители камер могли договориться об одном формате изображения RAW, было бы лучше, но их 40! Это непрактично. Кроме того, им нужно не 3-кратное пространство, а примерно 1,5-кратное.
@Shodan: Вы сравниваете яблоки и апельсины. Файл RAW не ухудшается при каждом сохранении, поскольку вы никогда не сохраняете файл RAW повторно. Я никогда не говорил, что файл PNG занимает в три раза больше места, я сказал, что он содержит в три раза больше информации. Файлы сжимаются с разной степенью сжатия в зависимости от содержимого изображения и типа информации.
99% пользователей просто не заботятся о RAW-файлах и не имеют программного обеспечения, которое может их прочитать. Большинство из этих пользователей просто используют обычные файлы JPG, которые поступают со своих устройств, и они получают повреждения каждый раз, когда их модифицируют и публикуют повторно. Файлы PNG — это нечто среднее между ними, их можно использовать практически во всех программах, но они не ухудшаются со временем.
@Shodan: PNG по-прежнему не может содержать всю информацию с датчика. Не имеет большого значения, можете ли вы повторно сохранить PNG без потери данных, когда вы потеряли много данных еще до создания файла PNG.
@Guffa Я не согласен, очень важно, что вы можете сохранять и изменять файл, не повреждая его дальше. Это все равно, что сказать: «Не имеет значения, чтобы остановить кровотечение, потому что вы уже потеряли много крови». Да, сжатый необработанный формат был бы лучше, но этот файл в значительной степени непригоден для большинства программ и пользователей.
@Shodan: Ваша аналогия обратная. Ваш аргумент в пользу PNG-это все равно, что сказать: «Вы потеряли много крови, но мы остановили кровотечение, поэтому вы вообще не пострадали».

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

+1 Никогда не осознавал, что для PNG не существует стандартизированного встраивания EXIF. Хорошо знать.
Скорее всего причина. Метаданные — это хорошо.
Тот факт, что метаданные не стандартизированы, не означает, что вы не можете этого сделать. PNG поддерживает добавление метаданных в файл, просто он не определяет EXIF ​​напрямую как часть метаданных. Метаданные файла PNG в определенной степени имеют «свободную форму».
Вики : iTXt содержит текст UTF-8, сжатый или нет, с необязательным языковым тегом. Фрагмент iTXt с ключевым словом «XML: com.adobe.xmp» может содержать расширяемую платформу метаданных (XMP).
Кстати, это еще один момент для TIFF.
@mattdm, конечно. Просто хотел указать, что это может быть технически поддержано, если производители этого захотят: P
Отсутствие данных EXIF ​​будет воспринято фотографами как негатив? Ба! Эти юные цифровые фотографы-снайперы! В мое время фотографы использовали пленку и знали, как на самом деле выглядит негатив! :-)
@Oddthinking По крайней мере, у негатива было немного метаданных по краям!
@Oddthinking Черт возьми, как я скучаю по тому времени, когда я делал заметки о фотографии с карандашом и бумагой. Нет.
@coneslayer Я быстро просмотрел Википедию, но там почти ничего не было о негативах фотографий. Можете ли вы указать мне ссылку на эти метаданные?
@Kevin На самом деле, погрузившись в Exif, я ненавижу некоторые его функции, которые решает XMP. Я просто хочу, чтобы XMP поддерживался более широко, особенно с учетом того, что его поддерживает PNG. Больше всего в Exif разочаровывает отсутствие информации о часовом поясе в метках времени Exif. Когда мой телефон автоматически меняет часовой пояс, позже определить правильное относительное время будет сложно. Это также аргумент против изменения времени на камере, если они хотят позже геотегировать свои фотографии из своего GPS-логгера.
@penguin: приятно слышать, что это решает некоторые проблемы. Единственный способ получить поддержку — это распространить информацию и заставить людей просить об этом.
@Kevin Меня больше беспокоит, что производители камер поддерживают это, но я не имею никакого влияния в этой области. Я хочу, чтобы мои фотографии изначально хранились с правильным часовым поясом и другими метаданными, в которых отсутствует Exif.
@penguin, говоря «заставить людей просить об этом», я имел в виду обращение к производителям за указанной поддержкой. Пока сообщество не поддержит, они не будут тратить деньги :)
@penguin Film имел маркировку по краям, показывающую тип пленки и номер кадра. Например , micro.magnet.fsu.edu/primer/photomicrography/images/… (Кроме того, были задние камеры, которые могли впечатывать дату/время или информацию об экспозиции между кадрами, например, en.wikipedia.org/wiki/Nikon_F80 .)
@penguin359: Даже в фильмах 1940-х по краям были даты.
Что ж, я должен был проголосовать за это, поскольку текущая версия PNG поддерживает фрагменты EXIF,eXIf . Добавлено в июле 2017 года в версии 1.5.0 Расширений спецификации PNG 1.2 .

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

.png почти наверняка будет больше, чем необработанный, поскольку png должен будет хранить три значения цвета на пиксель вместо одного необработанного образца, поэтому для 8-битного png это 24 бита на пиксель против 12 или 14 бит на пиксель для необработанного.
@Matt Я не был уверен, будет ли он больше или нет, и в настоящее время не могу проверить. Очевидно, что существуют корреляции значений RGB от одного пикселя к другому, поскольку значения получены в результате демозаики, и сжатие PNG может использовать эти корреляции. И исходное сжатие варьируется; некоторые цифровые зеркальные фотокамеры Pentax вообще не сжимали необработанный вывод DNG. Поэтому я не считал вопрос «что больше» вопросом, на который я мог бы ответить, просто подумав, а не измеряя. :-)
Однако PNG, будучи без потерь, не страдает от потери поколений в результате редактирования так же, как JPEG. Так что в этом аспекте я не думаю, что это хуже, чем JPEG в камере.
@John Но это хуже, чем необработанное, которое вы должны использовать для редактирования. PNG просто кажется неудачным посредником между JPEG и RAW.
@Matt Поскольку PNG использует сжатие (тоже), результат вообще не должен быть больше (зависит от алгоритмов). Чтобы задать вам вопрос: если вы конвертируете файл ASCII (8 бит на символ) в файл UTF16, должен ли сжатый результат стать значительно больше? Если вы ответите "да", пожалуйста, перечитайте алгоритмы сжатия.
@coneslayer Единственное необратимое преобразование, которое действительно необходимо выполнить, - это демозаика. Шумоподавление, дальнейший баланс белого, повышение резкости можно было бы сделать в постобработке (как для RAW). Вы не потеряете битовую глубину, если сохраните 16-битный PNG на канал (в отличие от TIFF).
@Leonidas Вы правы, но я ожидаю, что любой, кто запрашивает вывод в формате PNG (вместо необработанного), будет ожидать, что результат будет немедленно использован вне камеры, а это означает, что вам нужны такие вещи, как повышение резкости, чтобы смягчить фильтр сглаживания и, возможно, шумоподавление. Технически нет необходимости, но если ваши файлы PNG требуют дальнейшего редактирования, то, опять же, я не вижу преимущества перед необработанным.
@coneslayer Я предполагаю, что у Бенджамина та же проблема, что и у меня при обработке изображений: (1) JPG уже потерял некоторые данные изображения и (2a) RAW является проприетарным (программное обеспечение доступно только сейчас в течение некоторого времени), (2b) не каждая камера предлагает RAW. Несколько лет назад я тоже отчаянно желал TIFF или PNG в своем компакте.
@Leonidas Что касается № 1/№ 2a, поскольку сейчас доступно необработанное программное обеспечение, вы можете снимать в необработанном виде и сразу же переходить к PNG для долгосрочного архивирования. Кроме того, у вас есть необработанный файл, поэтому, пока существует необработанное программное обеспечение, у вас есть точная информация. Я не понимаю # 2б. Не каждая камера предлагает RAW, но они и не предлагают PNG. Если мы загадываем желания, я бы хотел сырой, а не PNG.
@Lionidas PNG может использовать сжатие, да, но сжатие должно быть невероятно умным, чтобы иметь возможность использовать корреляции между цветовыми каналами, которые возникают в результате демозаики, поскольку для этого фактически пришлось бы реконструировать алгоритм демозаики, который обычно является собственностью) . Это не что иное, как заполнение, которое вы получаете при преобразовании в UTF-16. Единственный способ, которым я мог увидеть, что версия PNG не будет больше, заключался в том, что камера использовала самый наивный алгоритм демозаики из когда-либо существовавших, который просто дублировал соседние пиксели, чтобы заполнить пробелы.
@coneslayer - никогда не говорил, что это хороший вариант, я просто отметил, что вы можете работать без потерь с PNG по сравнению с JPEG, поэтому проблемы разработки в камере в равной степени относятся к нему и к JPEG.
@Matt PNG использует только довольно глупый ZIP (и это больше не изменится) и, конечно же, не будет меньше. Но. При демозаике вы не добавляете никакой информации, поэтому, если вы используете умные алгоритмы сжатия (например, LZMA), сжатые результаты будут идентичными по размеру для до/после демозаики.
@Lionidas Да, с теоретической точки зрения демозаика не добавляет информацию, и, таким образом, сжатие демозаичного изображения даст тот же размер файла, но на практике процесс демозаики приведет к ошибкам округления, то есть шуму, который невозможно сжать.
@coneslayer Я говорю по своему опыту - еще в 2003 году я скорее хотел иметь метод сохранения изображений без потерь в известном и поддерживаемом формате, а не в другом проклятом проприетарном формате, групповом названии RAW. PNG был немного более привлекательным, так как у TIFF есть некоторые проблемы здесь и там.
В любом случае, в итоге вы можете получить файлы меньшего размера с 8-битными PNG, но вы выбрасываете данные, и если вы это сделаете, вы также можете снимать JPEG и получать лучшие коэффициенты сжатия. Вы не получите файлы меньшего размера с 16-битными PNG, поскольку процесс демозаики необратим при сжатии изображения.
@Matt Дисперсия, вызывающая шум, действительно связана с самими данными RAW. Я до сих пор не понимаю, почему несколько дискретных значений пикселей лучше поддаются сжатию, чем функциональное преобразование этих значений в другую дискретную версию. Есть ли в демозаике случайный элемент?
@Lionidas Demosaicing детерминирован, но лучшие методы нелинейны. Если вы возьмете дискретное значение, такое как 4294967296, то оно хорошо сжимается, это будет 2^32, так что вы можете использовать кодирование длин серий или что-то еще лучше. Если теперь возвести его в степень 0,9 и округлить, получится 467373274, и вдруг он перестанет хорошо сжиматься! Вы даже не можете сжать его, сохранив константы 2,32 и 0,9, поскольку технически это будет сжатие с потерями, из-за ошибок округления значение, которое мы пытаемся сжать, не совсем равно 2 ^ 32 ^ 0,9.
На практике файлы PNG находятся где-то между JPG, которые выбрасывают данные, и RAW. Стандарт PNG поддерживает 16-битные изображения на канал (как и TIFF), поэтому вам не придется терять битовую глубину. Вы получите лучшие результаты, сжимая необработанные данные, что потенциально может сделать производитель камеры. ПРИМЕЧАНИЕ. TIFF имеет сменные алгоритмы сжатия, одним из которых является сжатие JPEG. Даже TIFF может выбросить данные.
@Matt Единственный вывод состоит в том, что демозаика действительно добавляет информацию к изображению путем его преобразования: алгоритма. Энтропия остается одинаковой во всем файле, но это нельзя использовать, потому что вам нужно будет применить обратно именно эти детерминированные интерполяции, чтобы воспользоваться ими локально (например, PNG делает небольшой масштаб со своими соседними фильтрами) .
Но это также относится и к JPEG! Сравнение проводилось между JPEG и PNG, а не между PNG и RAW.
Современный PNG поддерживает 16 бит/канал.

PNG — переносимая сетевая графика . Он предназначен для Интернета и довольно простых (по цветам) изображений. Его сжатие очень неэффективно для реалистичной графики, поскольку вы будете снимать камерой, поэтому результаты почти несжатые. Таким образом, вы можете просто использовать файлы RAW, которые добавляют преимущество в том, что нет преобразования с потерями в цветовое пространство RGB.

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

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

Преобразование с потерями в цветовое пространство RGB? Как так? Что именно вы теряете при преобразовании байеровских сенсорных данных (аддитивных данных) в одну из форм RGB-версий? (Кстати: PNG в принципе тоже предлагает ICC-профили, я читал, что FF планирует его поддерживать.)
@Leonidas: Цветового пространства RGB не существует. Камера собирает гораздо больше информации, чем можно интерпретировать в любом цветовом пространстве RGB (sRGB, Adobe RGB и т. д.). Таким образом, при преобразовании в файл RGB всегда теряется некоторая информация/цвета. Единственный способ сохранить это — сохранить данные в том виде, в каком их видит камера, т. е. в формате RAW.
@poke Можете ли вы объяснить, как типичный RGGB-сенсор производит данные, которые нельзя преобразовать без потерь в любой RGB-формат? (Я знаю, что их несколько, обратите внимание на «одну форму RGB-версий».)
@Leonidas: я могу ошибаться, и если вы знаете лучше (или обманываете меня, чтобы я сказал что-то не так), пожалуйста, поправьте меня, но учитывая, что датчик не разделяет свет, который он видит, на 256 шагов для каждого цвета. , я не думаю, что любой нормальный формат файла RGB или цветовое пространство RGB могут содержать всю эту информацию. Я знаю, что датчик фиксирует данные в виде информации RGB, поэтому теоретически цветовое пространство RGB могло бы существовать, если бы было такое, которое могло бы содержать столько информации, сколько на самом деле содержит изображение.
@poke Здесь нет хитрости, я просто серьезно сомневаюсь, что не будет никакого формата RGB, предлагающего гамму датчика. Что касается дискриминации - я думаю, что 16-битные/канальные форматы предлагают достаточно места для ее приема. Например, в photo.stackexchange.com/questions/8707/raw-processing-software/… jrista упоминает демозаику под названием Bayer Drizzle, которая, кажется, действительно спроектирована так, чтобы любые данные были доступны.
Учитывая, что TIFF является основой для различных необработанных форматов, я не уверен, что вы можете утверждать свой последний абзац.

Съемка в формате RAW, преобразование в файл PNG (если позволяет программное обеспечение).

http://www.luminous-landscape.com/tutorials/understanding-series/u-raw-files.shtml

Оба формата имеют свои плюсы и минусы.

Но настоящая причина, по которой JPEG более распространен, чем PNG, заключается в том, что люди, стоящие за JPEG , проводят агрессивное лицензирование, чего нет в PNG. (www.libpng.org/pub/png/)

Это очень похоже на MP3, OGG и FLAC. Создатели MP3 изначально лицензировались агрессивно ... что привело к популярности. Из-за этого теперь производители обращаются к MP3 за лицензиями!

IMO, вы всегда должны снимать в RAW, если вы не беспокоитесь о затратах памяти, RAW — это то, что вам нужно. Это дает вам наилучшую возможность корректировать изображения при постобработке.

Ниже приведена цитата из: http://www.hackerfactor.com/blog/index.php?/archives/252-PNG-and-Cameras.html .

Формат PNG идеально подходит для хранения истинных 24-битных цветных изображений. Обработка файлов PNG очень проста и не требует специальных полей приложения. Однако он требует больших вычислительных ресурсов, не имеет возможности хранить несколько изображений и не имеет большого количества стандартизированных текстовых полей для управления метаданными.

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