Существуют 2 основных фактора, которые, по-видимому, приводят к цифровым артефактам при создании изображений JPEG: алиасинг и сжатие.
Пример:
Преобразование PNG с символами на нем в JPEG или размещение векторных изображений над фотографией приведет к пикселизации по их краям. Сглаживание обычно создает своего рода размытие вокруг них, но если изображение сжимается с потерями , часть деталей также теряется, поэтому размытие и пикселизация могут стать менее заметными.
Это правильная вещь? Т.е. поскольку сжатие без потерь создает высокодетализированное изображение, артефакты, возникающие в результате наложения псевдонимов, будут более заметными, поэтому баланс можно найти, используя правильное сжатие, хотя это ухудшит качество изображения.
редактировать
Я только что сохранил этот JPEG в mspaint (3.46KB):
Вот тот же JPEG с максимальным сжатием (самое низкое качество, 0,5 КБ):
Вот еще тот же JPEG с 50% сжатием (обратите внимание на разницу в размере, 1,29 КБ):
То же самое 50% -ое сжатие, но сохраненное как «прогрессивный JPG», сохранило исходные данные EXIF и XMP и «попыталось сохранить с исходным качеством JPG» (вы можете заметить, что вокруг нет серых пикселей, 2,96 КБ):
И, наконец, то же самое, что и раньше с отключенной выборкой цветности (тот же размер файла, 2,96 КБ):
источник
mozjpeg
компрессора есть специальная хитрость, чтобы производить меньше искажений на изображениях такого типа. (и в целом он более эффективен, чем обычные авторы JPEG). Вы пробовали это?Ответы:
Сжатие JPEG включает три основных этапа:
Chroma subampling . Изображение преобразуется из RGB в YCbCr цветовое пространство, в котором яркость или яркость (Y) , хранится отдельно от цветности или цветовых компонентов, Cb и Cr. Компонент Y поддерживается с полным разрешением, но Cb и Cr подвергаются пониженной дискретизации, обычно до половины разрешения по каждой оси. Это использует тот факт, что зрительная система человека более чувствительна к мелким деталям яркости, чем цвета.
Частотное квантование. Изображения Y, Cb и Cr преобразуются в частотное представление, разбивая их на блоки 8x8 и применяя дискретное косинусное преобразование (вариант преобразования Фурье) к каждому блоку. В результате получается матрица чисел, которые описывают амплитуды разных пространственных частот в блоке. Эти числа могут быть затем квантованы (округлены до выбранного количества битов точности). Различные уровни квантования используются для разных частот, используя относительно низкую чувствительность нашей визуальной системы к высоким частотам. Именно здесь вступает в игру настройка качества кодера JPEG: более низкие качества используют более грубое квантование.
Энтропийное кодирование . Квантованные значения DCT пропускаются через энтропийный кодер, который без потерь сжимает поток битов, используя меньше битов для представления более общих значений, что-то вроде файла zip.
Шаги 1 и 2 - с потерями, и каждый производит свой тип артефактов (хотя есть некоторые совпадения). Подвыбор цветности имеет тенденцию размывать острые края между областями разных цветов. Это особенно заметно в векторном искусстве, где яркие фигуры улавливают порочные зазубрины по краям. Частотное квантование в целом размывает мелкие детали, а также создает блочные артефакты при настройках низкого качества, потому что DCT выполняется на блочной основе. Это особенно заметно по тексту.
Вот почему JPEG обычно не используется для изображений, содержащих векторную графику или текст - его алгоритмы сжатия плохо подходят для этих случаев, хотя они хорошо работают для фотографий и других изображений со сложной текстурой и не слишком острыми краями.
источник