Прогресивна якість JPEG порівняно зі звичайною JPEG?


10

Я намагаюся перетворити деякі файли BMP у формат JPEG найвищої якості (Q = 100), поки не зрозумію, що тут є "прогресивний" варіант.

Один мій файл BMP - 2,9 Мб. Після перетворення у формат JPEG без прогресивного розміру нового файлу дорівнює 338,2 КБ, а при прогресивному розмірі новий файл зменшується лише до 283,2 КБ.

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


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

Відповіді:


9

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

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

В результаті я б очікував, що прогресивний JPEG - це краще стиснення, але не суттєва зміна якості зображення.

Прогресивний JPEG має дві різні функції кодування:

  1. Вибір спектра
  2. Послідовне наближення

Те, що ви описуєте, - це лише перша особливість (спочатку DC, потім діапазони змінного струму). Однак, це друга особливість, яка є основною причиною різної ефективності кодування Progressive JPEG. З послідовним наближенням ви спочатку зберігаєте більш високі біти коефіцієнтів (низька точність, грубе зображення), потім нижчі біти (висока точність, детальне зображення). У звичайних зображеннях шум зосереджений у нижніх бітах. Тому кодер Хаффмана може бути ефективнішим у кодуванні символів у більш високому діапазоні бітів, де менше шуму. Таким чином, кодування послідовного наближення відокремлює шум від зображення, і це є причиною кращої ефективності кодування (шум навряд чи можна стискати).

Чим більше шуму (деталізації) зображення, тим краща ефективність кодування Progressive JPEG. Чим менше шум (розмиття) має зображення, тим краща ефективність кодування послідовного (непрогресивного) JPEG.

Зауважимо, що більшість прогресивних кодерів JPEG використовують суміш кодування спектрального відбору та кодування послідовного наближення. Для кращої ефективності кодування актуально в основному послідовне наближення, і ви можете спробувати знайти оптимальні параметри послідовного наближення (пункт, де розділити точність - Ah / Al у стандарті JPEG) для вашого класу зображень. Наприклад, я іноді знаходив оптимальну точку Al = 4 для своїх зображень (4 нижні біти кодуються окремо).


2

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

Зображення має бути точно таким же, для відображення потрібна лише більша обробка.

Джерело

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