що якість зображення все-таки залишається досить високою. Зображення, що містять великі області одного кольору, стискуються дуже погано. JPEG вводить у такі зображення артефакти (недоліки, вади), особливо помітні на суцільному фоні. Це значно погіршує якість зображень у порівнянні з традиційним методом стиску без втрат. Процес стиску за схемою JPEG поділяється на кілька етапів:
- перетворення зображення в оптимальний колірний простір;
- субдискретизація компонентів колірності усередненням груп пікселів;
- застосування дискретних косинусних перетворень для зменшення надлишковості даних зображення;
- квантування кожного блоку коефіцієнтів дискретних косинусних перетворень із застосуванням вагових функцій, що оптимізовані з урахуванням візуального сприйняття людиною;
- кодування результуючих коефіцієнтів (даного зображення) із застосуванням алгоритму Хафмена для видалення надлишковості інформації.
ART – це оригінальний алгоритм стиснення, що був створений і про-да-ється фірмою Johnson-Grace. Як і при роботі з алгоритмом JPEG, міра стиску в ART регулюється, а установка високого її значення може викликати втрати даних. Існує і режим кодування без втрат. Фірма Johnson-Grace продає ART як універсальний компресор для online-сервісів, а в перспективі планує адаптувати його для підтримки звуку, анімації і повномасштабного відеозображення. Хоча детальний опис цього алгоритму тримається в таємниці, Johnson-Grace випустила ряд документів описового характеру. Мета алгоритму – аналіз зображення і виявлення ряду його ключових ознак (колір, завади, межі, особливості, що повторюються), яким потім привласнюються пріоритети відповідно до відносної ваги кожної ознаки у вмісті зображення. Для класифікації і призначення пріоритетів ознакам стисненого зображення в програмі викорис-то-вується нечітка логіка. Повторювані особливості виявляються і зв'язуються в зображенні оригінальним методом, розробленим самою фірмою. Компоненти зображення квантуются, при цьому низкопріоритетні ознаки ігноруються. Як і при використанні алгоритму JPEG, міра втрати інформації підвищується пропорційно росту міри стиску і компенсується певною надлишковістю. ART-зображення можуть бути багаторівневими. Це значить, що їх можна передавати поетапно по модемних лініях з низькою пропускною здатністю. Крім того, алгоритм забезпечує майже миттєве, хоча і низькоякісне, відображення на пристрої виведення клієнта. Потім, по мірі прийому даних і поступової візуалізації, якість зображення підвищується.
Фрактальне кодування засноване на тім факті, що всі природні і більшість штучних об'єктів містять надлишкову інформацію у виді однакових, повторюваних малюнків, які називаються фракталами. Процес кодування, що перетворює зображення в сукупність математичних даних, вимагає винятково великого обсягу обчислень. В залежності від розділь-ної здатності і вмісту вхідних растрових даних, якості зображення, часу стиснення і розміру файлу процес стиснення одного зображення може зайняти від декількох секунд до декількох годин навіть на дуже швидко-діючому комп'ютері. Декодування фрактального зображення – процес набагато більш простий, тому що вся трудомістка робота була виконана при пошуку всіх фракталів під час кодування. В процесі декодування потрібно лише інтерпретувати фрактальні коди, перетворивши їх у растрове зображення. Тому фрактальний метод доцільно використовувати тоді, коли дані зображень безупинно розпаковуються, але ніколи не стискуються. Фрактальний метод забезпечує легкість масштабування зображення без введення артефактів і втрати деталей та невеликий розмір стиснених даних але супроводжується втратами.
Алгоритм RLE зменшує фізичний розмір рядків символів, що повторюються. Такі рядки називають групами і кодують двома байтами, перший з яких визначає кількість символів в групі, а другий містить значення символу. Ефективність стискання залежить від типу даних зображення. Краще стискаються чорно-білі зображення, які містять багато білого кольору, а гірше – фотореалістичні зображення з великою кількістю кольорів. Алгоритм RLE характеризується простотою і високою швидкодією. Варіанти групового кодування розрізняються напрямом утворення рядка (вздовж осі X, осі Y та діагоналі). Найчастіше вони стискають без втрат, однак відкидання молодших розрядів в значеннях символу може суттєво збільшити міру стискання складних зображень.
Зміст методу – заміна ланцюжків символів, що повторюються, на один цей символ та лічильник повторювання. Проблема полягає в тому, щоб декодер міг відрізнити у вихідному потоці таку кодовану серію від інших символів. Розв’язок цієї проблеми очевидний – додавати до таких ланцюжків деякі заголовки (наприклад, використовувати перший біт як ознаку кодованої серії). Метод є досить ефективним для графічних зображень у форматі “байт на піксел”
Алгоритм RLE (run length encoding) – групове кодування без втрат. В ньому послідовність символів подається самим символом та його кількістю в групі. Тут, наприклад, FFFFFF буде закодоване в 6F. В bitmap файлах використовується групове кодування BMP. Бітові,8U, 24U, 32U бітові групи нуликів та одиниць стискуються та мають 12 бітовий службовий ключ. Тут можливе використання палітр – таблиць кольорів, де кожний відтінок, що є у файлі має свій власний номер. Тобто, можлива заміна трьох байтів одним номером у палітрі.
В основі алгоритму RLE лежить ідея виявлення послідовностей даних, що повторюються, та заміни цих послідовностей більш простою структурою, в якій вказується код даних та коефіцієнт повторення. Наприклад, нехай задана така послідовність даних, що підлягає стисненню:
1 1 1 1 2 2 3 4 4 4
В алгоритмі RLE пропонується замінити її наступною структурою:
1 4 2 2 3 1 4 3, де перше число кожної пари чисел -це код даних, а друге - коефіцієнт повторення. Якщо для зберігання кожного елементу даних вхідної послідовності відводиться 1 байт, то вся послідовність займатиме 10 байт пам'яті, тоді як вихідна послідовність (стиснений варіант) займатиме 8 байт пам'яті.
Чим менше значення коефіцієнта стиснення, тим ефективніший метод стиснення. Зрозуміло, що алгоритм RLE буде давати кращий ефект стиснення при більшій довжині послідовності даних, що повторюється. У випадкові розглянутого вище прикладу, якщо вхідна послідовність матиме такий вигляд: 1 1 1