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