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

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

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

4 ответа

Решение

Как правильно ответили выше, использование "типичного" кодера 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, что вызывает округление коэффициентов. Округление отбрасывает некоторую информацию. Это произойдет независимо от всех других вариантов.

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

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

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

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

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

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

Другие вопросы по тегам