Що таке артефакти jpeg і що з ними можна зробити?


25

Я знаю, що JPEG - це "втрачений" алгоритм стиснення, який відкидає інформацію з метою економії місця. У чому полягає візуальний вплив цього? Я чув про "артефакти JPEG". Як вони виглядають?

Чи бувають ситуації, коли однаковий рівень стиснення створює більше артефактів і виглядає гірше? Чи має значення зміст зображення взагалі? З чим алгоритм справляється добре, і з чим він має проблеми?

Якщо припустити, що JPEG є вимогою, чи є спосіб зменшити артефакти? Якщо я завантажую веб-сервіс, який застосовуватиме власне стиснення поза моїм контролем, чи можу я зробити заздалегідь зображення, щоб пережити це краще?


Деякі відповіді на запитання цього питання існують тут: photo.stackexchange.com/questions/5317/…
dpollitt

Дякую @dpollit. Я цього не бачив через англійський правопис та відсутність тегів. Крім того, мова йде саме про низьку роздільну здатність і низький розмір файлу.
mattdm

Я хотів би побачити у відповідях кілька прикладів рівня пікселя (або більше).
mattdm

1
Я хотів би направити вас на свою відповідь на тему @dpollit, яку ви посилали раніше, зокрема веб-сайт, пов’язаний з нею, який містить ціле навантаження зразкових зображень з кожного головного рівня "якості", з деталізацією на рівні пікселів, для різних типів образів.
jrista

1
@BBking - Я хотів би побачити відповідь, детальну інформацію про це, із посиланнями.
mattdm

Відповіді:


19

Приклад

Використання поточної фотографії тижня. Це високоякісний JPEG:

gimp Q = 99

повторно збережено в Gimp з JPEG якістю 80 (низька); зверніть увагу на загальну втрату різкості, "крапки" навколо висококонтрастних країв, втрату деталізації в зонах із низькою контрастністю:

gimp Q = 80

і знову збережено у GIMP з якістю JPEG 30 (дуже низька); Зверніть увагу, очевидні блоки 8х8 та сильна втрата чіткості та кольорових деталей:

gimp Q = 30

Три види спотворень

JPEG має тенденцію вводити два три види спотворень:

  • загальна втрата різкості та коливань навколо висококонтрастних ребер: вони пов'язані з наближенням переходів інтенсивності з плавними функціями (косинуси); ви бачите їх як маленькі «крапки» або «ореоли» по краях; їх особливо легко помітити на зображеннях тексту ручних малюнків.
  • блокуюча структура: зображення обробляється окремо для кожного блоку 8х8 (або більше у випадку зменшення кольоровості), краї блоку стають видимими при високих коефіцієнтах стиснення.
  • втрата кольорових деталей: це залежить від збереження параметрів, програма може агресивно «знижувати вибірку» (зменшувати роздільну здатність) каналів хроматичності; це рідко є проблемою для природної фотографії.

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

тристороннє порівняння

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

Стратегії хостингу

Якщо ви керуєте параметрами стиснення JPEG і хочете досягти максимальної якості зображення:

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

Якщо ви завантажуєте в сторонній сервіс і не контролюєте параметри стиснення, ви не можете багато в цьому зробити:

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

16

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

Цей алгоритм стиснення був прийнятий, оскільки він добре викидає види речей, які візуальна система людини не помічає настільки, як інші компоненти сцени. Це частково тому, що досить пристойні на вигляд зображення можуть мати вражаюче високі коефіцієнти стиснення. Ось чому це добре працює на реальних фотографіях безперервного тону і не так добре на синтетичних зображеннях та лінійному мистецтві.

Ось область розміром 200 x 300 більшої фотографії з повторенням пікселів 2x, щоб краще їх побачити. Уживаний JPEG компрес "якості" 100:

Якість 80, 79% зменшення розміру файлу:

Якість 60, 86% зниження:

Якість 40, 90% зниження:

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

Зауважте, що вам потрібно шукати артефакти на другій фотографії, навіть якщо майже 4/5 оригінальної інформації було викинуто. Артефакти стиснення JPEG, як правило, найбільш помітні на гострих краях і в повільно мінливих плоских ділянках. Оскільки у зображенні ліній є всі гострі краї, стиснення JPEG для цього не підходить.

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

Типи артефактів, характерні для стиснення втрат JPEG, - це «блокування» у повільно мінливих плоских ділянках та «забруднення» навколишніх висококонтрастних країв. Наприклад, див. Нижню праву область на малюнку вгорі. Він містить фон поза фокусом, тому значення змінюються повільно. Блокація цілком очевидна. Для прикладів "бруду" огляньте лівий ріг кози. Ці два типи артефактів, як правило, є чіткою підказкою, що компресія JPEG була залучена. Також шукайте їх на інших знімках вище, щоб зрозуміти, як вони виглядають, коли вони тільки починають з'являтися, і який коефіцієнт стиснення ви могли б терпіти за різних обставин.


1
Видимі втрати виникають не від самого DCT, а від квантування коефіцієнтів DCT після перетворення.
Sarge Borsch

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.


Чи можете ви навести приклад артефакту jpeg, який схожий на шум датчика?
mattdm

Додано темне небо, збережене при 50% якості JPG.
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 знову і знову, оскільки кожне покоління погіршує якість ще більше.


Навіть RAW та PNG можуть отримати артефакти через квантування пікселів. Поки ви не змінюєте жодних значень, це лише одноразовий ефект і більше втрат не відбувається через оцифрування. Однак якщо ви змінюєте значення на будь-якому кроці, наприклад, затемнення або освітлення сцени або змішування з іншими значеннями тощо, зміщення значення може призвести до нових артефактів при наступному збереженні (навіть без стиснення) завдяки квантуванню (можливо форма стиснення) для збереження нового обчисленого зображення. Щоб мінімізувати ці ефекти, використовуйте якомога більшу кількість бітів на кожному кроці та зберігайте весь робочий процес.
Скаперен

@Skaperen: тут ви плутаєте дві різні речі. Це питання стосується втрати деталей через стиснення jpeg. Те, що ви описуєте, - це втрата деталей, введених певними алгоритмами обробки зображень. Те, що ви описуєте, є правильним, але взагалі не пов’язане з форматами зображень, тому сказати, що RAW та PNG пов'язані з квантуванням пікселів - це неправильно, ці формати файлів не призводять до втрати якості.
Мігель

Це зображення також демонструє інше питання, до речі: воно показує ореол із нерізкої маски.
mattdm

1

Артефакти - це небажані побічні ефекти обробки зображення. У цьому випадку вони є результатом способу стиснення даних алгоритмом JPEG.

Зазвичай люди хочуть мати можливість зберігати фотографії в цифровому вигляді, не використовуючи занадто багато місця для зберігання. Як результат, більшість фотографій зберігаються у форматі JPEG. Це формат, який стискає дані, що утворюють зображення таким чином, щоб намагатися зберегти якомога більше деталей. Рівень стиснення може бути змінений під час створення файлу. Однак це алгоритм "втрати", який означає, що він відкидає деякі дані - повернутися зі стисненого файлу JPEG до вихідних даних неможливо.

Ця втрата даних відбувається за рахунок якості зображення. Стиснення призначене для створення мінімального впливу на загальне зображення, але може бути помітним при високих рівнях стиснення.

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

З більш сильно стислими сценами артефакти також можна побачити біля меж предметів - наприклад, гілки дерева проти світлого неба. Вони схожі на плямисті блоки, що оточують предмет.

Найкращим підходом до зменшення артефакту є:

  1. Завжди зберігайте оригінальне зображення - не зберігайте стиснутий JPEG, а потім знову відкрийте його та повторно збережіть. Надзвичайний приклад цього див. У програмі Generation Loss - відео, що демонструє зображення, повторно стиснене 600 разів.
  2. Збережіть якомога більш високу якість, враховуючи будь-які обмеження розміру файлу.
  3. Уникайте використання служб, які сильно повторно стискають ваші зображення - при необхідності розміщуйте їх в іншому місці та посилайтеся на них безпосередньо.

Для отримання додаткової інформації див. Http://photo.net/learn/jpeg/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.