JPEG без потерь, когда качество установлено на 100? - PullRequest
59 голосов
/ 02 ноября 2011

Я понимаю, что JPEG является стандартом сжатия с потерями, и что фактор качества контролирует степень сжатия и, следовательно, величину потери данных.

Но если для качества установлено значение 100, получится ли JPEG без потерь?

Ответы [ 4 ]

60 голосов
/ 02 ноября 2011

JPEG с потерями независимо от настроек.На уровне 100 вы получите наименьшую возможную потерю.

Это достаточно просто проверить.Взбейте простой .bmp, сожмите его до aq = 100 jpeg, затем снова извлеките обратно в .bmp.Используйте Gimp / Photoshop, чтобы сделать «разницу» между двумя растровыми изображениями, и вы увидите потери - это будет гораздо менее заметно, чем при преобразовании aq = 50 или q = 1, но все же будет присутствовать.

27 голосов
/ 02 февраля 2018

Как правильно ответили выше, использование «типичного» кодера JPEG с качеством 100 не дает вам сжатия без потерь.Кодировка JPEG без потерь существует, но она отличается по своей природе и редко используется.

Я просто пишу, чтобы сказать, почему качество 100 не означает без потерь .

В формате JPEG информация сжатия в основном теряется на этапе квантования коэффициента DCT (блоки коэффициентов 8 на 8 делятся на таблицу квантования 8 на 8, поэтому они становятся меньше -> «более сжимаемыми»).Когда вы устанавливаете качество JPEG на 100, реального квантования не происходит (потому что таблица квантования будет иметь все 1 с, по крайней мере, со стандартными таблицами IJG-JPEG), так что на самом деле вы не потеряете информацию здесь ..

Тем не менее, в основном существует два фактора, приводящих к потере информации, даже если квантование не происходит:

  1. Как правило, сжатие JPEG уменьшает информацию о цвете (поскольку зрительная система человека менее чувствительна к этому, чем к светимости),Таким образом, даже при качестве 100 вы можете выполнять субдискретизацию цветности (что означает снижение половины или более коэффициентов Cb и Cr).Когда это происходит, информация теряется, даже когда квантование не происходит.Однако вы можете сказать кодировщику, чтобы он сохранял полную цветность (так называемая цветовая выборка 4: 4: 4).
  2. Тем не менее, кодирование JPEG подразумевает переход в область DCT, что вызывает округление коэффициентов.Округление отбрасывает некоторую информацию.Это произойдет независимо от всех других вариантов.
22 голосов
0 голосов
/ 02 ноября 2011

Согласно Википедии , №

JPEG 100 имеет степень сжатия 2,6: 1. Метод сжатия обычно с потерями, что означает, что некоторая исходная информация об изображении теряется и не может быть восстановлена, что может повлиять на качество изображения.

Существует дополнительный режим без потерь, определенный в стандарте JPEG; однако, этот режим не широко поддерживается в продуктах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...