Что такое артефакты JPEG и что с ними можно сделать?

25

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

Есть ли ситуации, когда один и тот же уровень сжатия создает больше артефактов и выглядит хуже? Имеет ли значение содержание изображения вообще? С чем хорошо справляется алгоритм, и с чем у него проблемы?

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

mattdm
источник
Некоторые ответы на фрагменты этого вопроса можно найти
dpollitt
Спасибо @dpollit. Я не видел этого из-за британского правописания и отсутствия тегов. Кроме того, речь идет о низком разрешении и небольшом размере файла.
Mattdm
Я хотел бы видеть примеры ответов на уровне пикселей (или больше) в ответах.
mattdm
1
Я хотел бы направить вас к моему ответу на тему @dpollit связаны , прежде чем, в частности , веб - сайт , связанный с ним, который имеет весь груз образцов изображений из всех основных «качество» уровень, с подробно пиксельного для различных типов изображений.
Йриста
1
@BBking - я хотел бы видеть ответ, уточняющий это, со ссылками.
Mattdm

Ответы:

19

Пример

Используя текущую фотографию недели изображения. Это высококачественный JPEG:

GIMP Q = 99

повторно сохранен в Gimp с качеством JPEG 80 (низкое); обратите внимание на общую потерю резкости, «точки» вокруг высококонтрастных краев, потерю деталей в малоконтрастных областях:

GIMP Q = 80

и повторно сохранен в GIMP с качеством JPEG 30 (очень низкое); обратите внимание на очевидные блоки 8х8 и серьезную потерю резкости и цветовой детализации:

GIMP Q = 30

Три вида искажений

JPEG имеет тенденцию вводить два трех вида искажений:

  • общая потеря резкости и колебаний вокруг высококонтрастных краев: это происходит из-за аппроксимирующих переходов интенсивности с гладкими функциями (косинусы); Вы видите их как маленькие "точки" или "ореолы" по краям; их особенно легко увидеть на изображениях с текстом рисунков от руки.
  • структура блокировки: изображение обрабатывается отдельно для каждого блока 8x8 (или больше в случае пониженной дискретизации цветности), края блоков становятся видимыми при высоких коэффициентах сжатия.
  • потеря детализации цвета: это зависит от сохраняемых параметров, программа может агрессивно «понижать частоту» (уменьшать разрешение) каналов цветности; это редко проблема для естественной фотографии.

Видимая блочная структура и ореолы вокруг краев обычно называются артефактами JPEG. Давайте увеличим наш пример, чтобы увидеть их лучше. Слева направо - обрезка оригинала, изображений JPEG Q80 и JPEG Q30. Я пометил артефакты зеленым цветом (круги для ореолов и точки для блоков 8x8):

трехстороннее сравнение

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

Стратегии хостинга

Если вы управляете параметрами сжатия JPEG и хотите максимизировать качество изображения:

  • сохраняйте степень сжатия как можно ниже (используйте настройки высокого качества)
  • Рассмотрим каналы цветности с понижением дискретизации (это может быть почти незаметно для некоторых изображений и допускает более низкую степень сжатия в канале яркости при одинаковом ограничении размера файла)
  • рассмотрите возможность использования дискретного косинусного преобразования с плавающей точкой (это может увеличить точность преобразования, но сохранение файла займет больше времени)
  • рассмотрите возможность использования более низкого разрешения вместо более высокой степени сжатия (учитывая ту же границу размера файла)

Если вы загружаете в сторонний сервис и не контролируете параметры сжатия, вы ничего не можете с этим поделать:

  • выберите службу, которая, как известно, предпочитает высококачественный JPEG (Flickr, SmugMug, 23hq, 500px), а не службы, которые, как известно, чрезмерно сжимают для экономии трафика (Picasa, Imgur, Dropbox); обычно вы получаете то, за что платите.
  • Попробуйте изменить размер фотографий самостоятельно и загрузить нужный размер (некоторые службы будут повторно сжимать их в любом случае, некоторые могут обслуживать ваш файл как загруженный)
sastanin
источник
16

JPEG фактически использует два типа сжатия: с потерями и без потерь. Сжатие без потерь не вызывает артефактов, поэтому мы можем игнорировать эту часть. Конкретный тип сжатия с потерями в JPEG, называемый дискретным косинусным преобразованием для математических чисел, позволяет найти компромисс между степенью сжатия и точностью. Большинство программного обеспечения воспринимают это как значение «качества», обычно по шкале 0-100, где 100 практически не имеет или очень мало потерь, и все идет оттуда.

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

Вот более крупная фотография размером 200 x 300 с дублированными пикселями, чтобы лучше видеть их. Это используется JPEG сжатие "качество" 100:

Качество 80, 79% уменьшение размера файла:

Качество 60, 86% снижение:

Качество 40, снижение 90%:

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

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

Вы можете видеть, что артефакты сжатия постепенно ухудшаются при более высоких степенях сжатия. Имейте в виду, однако, что нижняя картинка сохраняет удивительное количество визуальной информации для удаления 9/10-й ее необработанной информации.

Типы артефактов, характерные для сжатия с потерями JPEG, - это «блочность» в медленно изменяющихся плоских областях и «грязь», окружающая высококонтрастные края. Например, смотрите нижнюю правую область на картинке выше. Это содержит не в фокусе фон, поэтому значения меняются медленно. Блочность вполне очевидна. Для примеров «грязи», посмотрите вокруг левого рога козла. Эти два типа артефактов обычно являются сильным признаком того, что сжатие JPEG было включено. Также посмотрите на них на других рисунках выше, чтобы понять, как они выглядят, когда они только начинают появляться, и какую степень сжатия вы можете выдержать в различных обстоятельствах.

Олин Латроп
источник
1
Видимые потери происходят не от самого DCT, а от квантования коэффициентов DCT после преобразования.
Борщ
10

Сжатие JPG выполняется в блоках пикселей. В сильно сжатом JPG-изображении видны края этих блоков: в исходном изображении два пикселя могут быть очень близкими по яркости и цвету, но если они находятся в разных блоках, то после сжатия и распаковки (при просмотре) каждый из их значения могут отличаться от оригинала, поэтому вы потеряете это постепенное смешивание и начнете видеть эту «блочность».

введите описание изображения здесь

Вот типичный пример в небе - JPG сохранен с качеством 0.

Если вы загружены на сайт, использующий сжатие JPG, у вас могут быть лучшие результаты при выполнении двух вещей (вам нужно поэкспериментировать с сайтом, чтобы увидеть, что работает):

  • измените размеры вашего изображения так, чтобы они были в пределах максимальной высоты / ширины, разрешенной сайтом, чтобы веб-сайт не изменял размеры ваших изображений для вас

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

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

шум, как артефакты JPG

Вот пример с качеством JPG 50%, с блочностью, но также с более темными и яркими пикселями, которые напоминают шум.

В Topaz Labs есть продукт под названием DeJpeg , который специально работает с артефактами JPG. Это делает хорошую работу без потери деталей. Плагин также может сделать некоторую резкость и общее шумоподавление. Плагин совместим с Photoshop CS, Photoshop Elements и Paint Shop Pro. Я не думаю, что это работает с Lightroom или Aperture.

MikeW
источник
Можете ли вы привести пример артефакта JPEG, который похож на шум датчика?
Mattdm
Добавили одно из темного неба, сохраненного с качеством JPG 50%.
MikeW
5

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

JPEG работает путем преобразования изображения в [серию] частотных пространственных представлений [s] (где X и Y представляют горизонтальные и вертикальные частоты, а «яркость» представляет амплитуду частоты). Частоты ниже определенной амплитуды игнорируются, что уменьшает объем хранимых данных и обеспечивает сжатие.

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

Если вы берете свое изображение и намеренно стираете неважные фоновые области, вы уменьшаете общий объем информации и достигаете гораздо более высокого сжатия этих областей, оставляя вам больше килобайт для кодирования областей, где важна детализация. Это особенно хорошо работает с изображениями, на которых фон уже не в фокусе.

Мэтт Грум
источник
3

Вот пример увеличенного JPEG:

введите описание изображения здесь

Изображение пользователя Википедии FelixH. Это изображение лицензировано в соответствии с лицензией Creative Commons Attribution-Share Alike 3.0 Unported.

На этом изображении вы можете ясно видеть так называемые «артефакты» в синей области. Обратите внимание, что изображение кажется разделенным на блоки, а границы блоков не совпадают.

Есть ряд вещей, которые можно сделать, чтобы избежать или уменьшить эту проблему:

  • Самое очевидное: не используйте jpeg. Возможно, вы захотите работать со своими изображениями, используя формат сжатия без потерь, такой как RAW, PNG или TIFF без потерь. Вы переходите на JPEG в последнем шаге, когда хотите загрузить изображение в Интернет, по электронной почте и т. Д.

  • Формат jpeg позволяет настраивать уровень сжатия. Вы можете получить меньше артефактов, если хотите, но файл будет больше.

  • Избегайте повторного сохранения JPEG снова и снова, так как каждое поколение ухудшает качество еще больше.

Miguel
источник
Даже RAW и PNG могут получить артефакты из-за квантования пикселей. До тех пор, пока вы не измените какие-либо значения, это всего лишь одноразовый эффект, и никаких дополнительных потерь из-за оцифровки не происходит. Однако если вы измените значения на любом шаге, например, затемнение или осветление сцены, или смешивание с другими значениями и т. Д., То сдвиги значений могут привести к появлению новых артефактов при следующем сохранении (даже без сжатия) из-за квантования (возможно, возможно). форма сжатия), чтобы сохранить новое рассчитанное изображение. Чтобы минимизировать эти эффекты, используйте как можно большее количество битов на каждом этапе и сохраняйте весь рабочий процесс.
Skaperen
@Skaperen: вы путаете две разные вещи здесь. Этот вопрос о потере деталей из-за сжатия JPEG. То, что вы описываете, - это потеря деталей, вносимая определенными алгоритмами обработки изображений. То, что вы описываете, правильно, но не имеет отношения к форматам изображений вообще, поэтому говорить, что RAW и PNG связаны с квантованием пикселей, неправильно, эти форматы файлов не вызывают потери качества.
Мигель
Это изображение также демонстрирует другую проблему, кстати: оно показывает ореол от нерезкой маски.
Mattdm
1

Артефакты - это нежелательные побочные эффекты обработки изображения. В этом случае они возникают в результате сжатия данных алгоритмом JPEG.

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

Эта потеря данных происходит за счет качества изображения. Сжатие разработано так, чтобы оказывать минимальное влияние на общее изображение, но может быть заметно при высоких уровнях сжатия.

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

В сценах с более высокой степенью сжатия артефакты также можно увидеть вокруг границ объектов - например, ветвей дерева на фоне светлого неба. Они похожи на пятнистые блоки, окружающие предмет.

Лучший подход для уменьшения артефактов:

  1. Всегда сохраняйте исходное изображение - не сохраняйте сжатый JPEG, затем откройте его позже и повторно сохраните. Для экстремального примера этого см. Потеря поколения , видео, показывающее изображение, повторно сжатое 600 раз.
  2. Сохраняйте максимально высокое качество, учитывая любые ограничения на размер файла.
  3. Избегайте использования сервисов, которые сильно сжимают ваши изображения - при необходимости размещайте их в другом месте и связывайтесь с ними напрямую.

Для получения дополнительной информации см. Http://photo.net/learn/jpeg/

Мейнард Кейс
источник