Є кілька хороших пости тут , які , здається , щоб описати , чому стиснення Progressive може бути краще , і це , здається, зводиться до того , що в Progressive JPEG стислих даних замовлені більш ефективні , і що дані блокових зображень і шум розлучення і стислі окремо .
Я виділив важливі фрагменти нижче, вони описують це краще, ніж я коли-небудь міг.
В результаті я б очікував, що прогресивний JPEG - це краще стиснення, але не суттєва зміна якості зображення.
Прогресивний JPEG має дві різні функції кодування:
- Вибір спектра
- Послідовне наближення
Те, що ви описуєте, - це лише перша особливість (спочатку DC, потім діапазони змінного струму). Однак, це друга особливість, яка є основною причиною різної ефективності кодування Progressive JPEG. З послідовним наближенням ви спочатку зберігаєте більш високі біти коефіцієнтів (низька точність, грубе зображення), потім нижчі біти (висока точність, детальне зображення). У звичайних зображеннях шум зосереджений у нижніх бітах. Тому кодер Хаффмана може бути ефективнішим у кодуванні символів у більш високому діапазоні бітів, де менше шуму. Таким чином, кодування послідовного наближення відокремлює шум від зображення, і це є причиною кращої ефективності кодування (шум навряд чи можна стискати).
Чим більше шуму (деталізації) зображення, тим краща ефективність кодування Progressive JPEG. Чим менше шум (розмиття) має зображення, тим краща ефективність кодування послідовного (непрогресивного) JPEG.
Зауважимо, що більшість прогресивних кодерів JPEG використовують суміш кодування спектрального відбору та кодування послідовного наближення. Для кращої ефективності кодування актуально в основному послідовне наближення, і ви можете спробувати знайти оптимальні параметри послідовного наближення (пункт, де розділити точність - Ah / Al у стандарті JPEG) для вашого класу зображень. Наприклад, я іноді знаходив оптимальну точку Al = 4 для своїх зображень (4 нижні біти кодуються окремо).