Стиснення зображень
Як і многая інформація, графіка може бути стиснута. Це нигодіо з точки іронія економії пам'яті комп'ютера, так як, наприклад, високоякісні зображення, як уже говорилося, мають розміри до декількох десятків мегабайтів. Для файлів графічних зображень розроблені безліч схем п алгоритмів стиснення, оспов-іимі з яких є наступні:
· групове стиск;
· кодування методом Хаффмана;
· стискання за схемою LZW;
· арифметичне стиснення:
· стиснення з втратами;
· перетворення кольорів RGB в кольори YUV.
В основі більшості схем стиску лежить використання одного з наступних властивостей графічних даних: надмірність, передбачуваність і необов'язковість. Зокрема, групове кодування (RLE) засновано на використанні першої властивості. Кодування за методом Хаффмана і арифметичне кодування, засновані на статистичній моделі, використовують передбачуваність, пропонуючи більш короткі коди для більш часто зустрічаються пікселів. Алгоритми стискування з втратами засновані на надмірності даних.
Слід врахувати, що алгоритм, що забезпечує велику ступінь стиснення, зазвичай більш складний і тому вимагає для розпакування даних більше процесорного часу.
Розглянемо докладніше кілька алгоритмів стиснення.
Групове стиск
Групове стиснення являє собою одну найпростіших схем стиску файлів. Суть його полягає в тому, що серія повторюваних величин замінюється єдиною величиною і його кількістю. На прикладі можна помітити вигоду в довжині між «aabbbbbbbcdddeeeeaaa» і «2а7 b 1c3d4e3a». Даний алгоритм простий в реалізації і добре стискає графічні файли з великими однотонними областями. Групове кодування використовується в багатьох форматах растрових файлів, таких як TIFF, PCX і т.д.
Кодування методом Хаффмана
Сенс методу Хаффмана полягає в заміні даних ефективнішими кодами. Більш короткі коди використовуються для заміни більш часто з'являються величі. Наприклад у вираженні abbbeceddeeeeeeeeef є шість унікальних величин, з частотами появи: а: 1, b: 3, c: 3, d: 2, e: 9, f: l. Для утворення мінімального коду використовується двійкове дерево. Алгоритм об'єднує в пари елементи, що з'являються найменш часто, потім пара об'єднується в один елемент, а їх частоти об'єднуються. Ця дія повторюється до тих пір, поки елементи не об'єднаються в пари. У даному прикладі треба об'єднати а і f - це перша пара, а присвоюється нульова гілку, af - 1-я. Це означає, що 0 і 1 будуть молодшими бітами кодів для а і f відповідно. Більш старші біти будуть отримані з Дерена у міру його побудови.
Підсумовування частот дає в результаті 2. Тепер найнижча частота - 2, тому пара а і f, об'єднується з d (яка теж має частоту 2). Вихідною парі присвоюється нульова гілку, а d - гілка 1. Таким чином, код для а закінчується на 00; для f на 01, d закінчується на 1 і буде на один біт коротший порівняно з кодами для а і f.
Дерево продовжує будуватися подібним чином так, що найменш розповсюджені величини описуються більш довгими кодами. Дане кодування потребує точної статистики, яке виражається в тому, як часто кожна величина з'являється у файлі. Отже, для роботи за схемою Хаффмана необхідно два етапи - на першому етапі створиться статистична модель, на другому кодуються дані. Слід зазначити, що компресія і декомпресія, по Хаффману, - досить повільний процес.
Стиснення з втратами JPEG
Алгоритм стиснення JPEG (Joint Photographic Experts Group) (читається ['jei' peg]) дозволяє регулювати співвідношення між ступенем стиснення файлу і якістю зображення. Застосовувані методи стиснення засновані на видаленні «надлишкової» інформації.
Алгоритм стиснення оперує областями 8x8 пікселів, на яких яскравість і колір змінюються порівняно плавно. Внаслідок цього, при розкладанні матриці такої області в подвійний ряд по косинусам значущими виявляються тільки перші коефіцієнти. Таким чином, стиснення у JPEG здійснюється за рахунок плавності зміни кольорів у зображенні. У цілому алгоритм заснований па дискретному косінусоідальное перетворенні, що застосовується до матриці зображення для отримання деякої повой матриці коефіцієнтів. Для отримання вихідного зображення застосовується зворотне перетворення. Алгоритм розкладає зображення по амплітудам деяких частот. Таким чином, при перетворенні ми отримуємо матрицю, в якій багато коефіцієнти або близькі, або рівні нулю. Крім того, завдяки недосконалості людського зору, можна апроксимувати коефіцієнти більш грубо без помітної втрати якості зображення.
Істотними позитивними сторонами алгоритму є те, що:
· Задається ступінь стиснення.
· Вихідна кольорове зображення може мати 24 біта на точку.
Негативними сторонами алгоритму є те, що:
· При підвищенні ступеня стиску зображення розпадається на окремі квадрати (8x8).
· Виявляється ефект Гіббса - ореоли по межах різких переходів кольорів.
Формати графічних файлів
У комп'ютерній графіці застосовують щонайменше три десятки форматів файлів для зберігання зображень. Але лише частина з них стала стандартом «де-факто» і застосовується у переважній більшості програм.
Коротка інформація про основні графічних форматах файлів приведено в таблиці.
Типи графічних файлів:
Назва | Тип | Використання | Фірма | Розширення |
BMP (Windows BitMap) | Растровий | Збереження і відображення інформації у середовищі Windows. | Microsoft | bmp |
GIF (Graphics Inter-change Format) | Растровий | Передача даних в мережі Internet | CompuServe Inc. | gif |
PNG (Portable Network Graphics) | Растровий | Передача даних в мережі Internet | CompuServe Inc. | png |
PCX (PC Paintbrush File Format) | Растровий | У графічних редакторах | Zsoft Corp. | pcx |
JPEG (Joint Photographic Experts Group) | Растровий | Для фотографічної інформації | Joint Photographic Experts Group | jpg |
TIFF (Tagged Image File Format) | Растровий | Обмін даними між настільними і видавничими системами | Aldus Corp. | tif |
DXF (Drawing Interchange Format) | Векторний | Обмін кресленнями і даними САПР | Autodesk nc. | dxf |
CDR (Corel Drawing) | Векторний | Креслярська, видавнича та інші види графіки | Corel | cdr |
WMF (Windows MetaFile) | Векторний | Збереження і відображення інформації в середовищі Windows | Microsoft | wmf |
Розглянемо структуру файлів зображень типу BMP і TIFF, які отримали найбільш широке поширення на практиці.
BMP: Windows Device Independent Bitmap
BMP (апаратно-незалежне побітове зображення Windows) підтримується будь-якими Windows-сумісними програмами. Структура файлу BMP використовується Windows для зберігання растрових зображень. У цьому форматі зберігаються зображення тла, піктограми та інші растрові зображення Windows. Цей формат зводить до мінімуму ймовірність помилок або неправильної інтерпретації растрових даних.
Формат BMP правильно відображає дані незалежно від апаратних і програмних пристроїв (монітора комп'ютера, відеокарти і драйвера дисплея). Така незалежність від пристроїв забезпечується застосуванням системних палітр. Однак даний формат має і свої недоліки. Тільки версії формату з 4 - і 8-бітовим кольором піддаються стисненню (до них можна застосувати метод стиснення RLE), отже, 24-бітові файли BMP будуть дуже великими. Крім того, застосування файлів ВМР обмежено платформою Windows.
JPEG (Joint Photographic Experts Group). Формат призначений для зберігання растрових зображень (розширення імені файлу JPG). Застосовується в основному для зберігання фотографій. При великій мірі стиснення на зображенні з'являються ореоли з навколо елементів з різкими переходами кольору, тому формат не рекомендують використовувати для зберігання схем, графіків, логотипів та ін
GIF (Graphics Interchange Format). Стандартизований в 1987 році як засіб збереження стиснутих зображень з фіксованим (256) кількістю кольорів (розширення імені файлу. GIF). Отримав популярність в Інтернеті завдяки високому ступеню стиснення без втрати якості. Остання версія формату GIF 89 a дозволяє виконувати чересстрочную завантаження зображень і створювати малюнки з прозорим фоном. Обмежені можливості за кількістю кольорів обумовлюють його застосування винятково в електронних публікаціях (схеми, графіки, логотипи, рекламні банери та інші нескладні зображення, що мають різкі переходи в тонах зображення).
PNG (Portable Network Graphics). Порівняно новий (1995 рік) формат зберігання зображень для їх публікації в Інтернеті (розширення імені файла.PNG). Підтримуються три типи зображень - кольорові з глибиною 8 або 24 біти і чорно-біле з градацією 256 відтінків сірого. Стиснення інформації відбувається без втрат якості. Має перевагу перед GIF форматом в більшій глибині кольору. При зберіганні фотографій PNG формат програє формату JPEG у розмірах файлу.
TIFF (Tagget Image File Format). Формат призначений для зберігання растрових зображень високої якості (розширення імені файлу JIF). Відносяться до числа широко розповсюджених, відрізняється переносимістю між платформами (IBM PC та Apple Macintosh), забезпечений підтримкою з боку більшості графічних, верстальний і дизайнерських програм. Формат TIFF зберігає безліч даних зображення в помічених полях, що й визначило його назву («Формат файлу позначеного зображення»). Кожне позначене поле зберігає інформацію про растровому малюнку або посилання на інші поля. Програма, що читає файл, може пропускати невідомі або непотрібні їй поля. Ця багатогранність дозволяє формату знаходити застосування в різних комп'ютерних системах. Крім того, формат TIFF може зберігати різноманітні додаткові дані про растровому малюнку, включаючи: криву корекції для зображення з відтінками сірого; поля детальної інформації про зображення (назва програми, автора, дату створення та коментарі); розмір зображення і роздільну здатність; детальну інформацію про кольорі оригіналу.
Більшість програм, які читають файл TIFF, здатні без проблем прочитати файли цього формату, створені на інших системах. Структура формату TIFF мінлива, що дозволяє йому зберігати різноманітні типи зображень.
Файли цього формату здатні зберігати піксельні дані, стиснуті з допомогою різноманітних схем, наприклад, кодуванням за методом Хаффмана.
PSD (PhotoShop Document). Власний формат програми Adob Pnotoshop (розширення імені файла.PSD), один з найбільш потужних за можливостями зберігання растрової графічної інформації. Дозволяє запам'ятовувати параметри шарів, каналів, міри прозорості, множини масок. Підтримуються 48-розрядне кодування кольору, кольороподіл і різні колірні моделі. Основний недолік виражений у тому, що відсутність ефективного алгоритму стискання інформації приводить до великого обсягу файлів.
PCX. Формат з'явився як формат зберігання растрових даних програми PC PaintBrush фірми Z-Soft і є одним з найбільш поширених (розширення імені файла.PCX). Відсутність можливості зберігати кольороподілені зображення, недостатність колірних моделей та інші обмеження призвели до втрати популярності формату. В даний час вважається застарілим.
WMF (Windows MetaFile). Формат зберігання векторних зображень операційної системи Windows (розширення імені файла.WMF). За визначенням підтримується всіма додатками цієї системи. Однак відсутність засобів для роботи зі стандартизованими палітрами колірними, прийнятими в поліграфії, і інші недоліки обмежують його застосування.
EPS (Encapsulated PostScript). Формат опису як векторних, так і растрових зображень на мові PostScript фірми Adobe, фактичному стандарті в області додрукарських процесів і поліграфії (розширення імені файлу. EPS). Так як мова PostScript є універсальним, у файлі можуть одночасно зберігатися векторна і растрова графіка, шрифти, контури обтравки (маски), параметри калібрування обладнання, колірні профілі. Для відображення на екрані векторного вмісту використовується формат WMF, а растрового - TIFF. Але екранна копія тільки в загальних рисах відображає реальне зображення, що є істотним недоліком EPS. Дійсне зображення можна побачити лише на виході вивідного пристрою, за допомогою спеціальних програм перегляду або після перетворення файлу в формат PDFv додатках Acrobat Reader, Acrobat Exchange.
PDF (Portable Document Format). Формат опису документів, розроблений фірмою Adobe (розширення імені файла.PDF). Хоча цей формат в основному призначений для зберігання документа цілком, його вражаючі можливості дозволяють забезпечити ефективне представлення зображень. Формат є апаратно незалежним, тому висновок зображень допустимо на будь-яких пристроях - від екрану монітора до фотоекспонірующего пристрою. Потужний алгоритм стискання з засобами управління підсумковим роздільною здатністю зображення забезпечує компактність файлів при високій якості ілюстрацій.