ОЗМ Лаб3 Майоров

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Вивчення форматів графічних файлів

BMP (BitMap Picture)

Bmp-file-format-symbol.jpg

Формат файлу BMP - це “рідний” формат растрової графіки для Windows, оскільки він найближче відповідає внутрішньому формату Windows. Для імені файлу, представленого в BMP–форматі, найчастіше використовується розширення BMP, хоча деякі файли мають розширення RLE, що означає run length encoding (кодування довжини серій).

У файлах BMP інформація про колір кожного пікселя кодується 1, 4, 8, 16 або 24 бітами (біт/піксель). Цим параметром визначається максимальне число підтримуваних кольорів в зображенні. Наприклад, зображення при глибині кольору 1 біт/піксель може мати всього два кольори, а при глибині 24 біт/піксель — більше 16 млн. різних кольорів.

Файл зображення розбитий на чотири основні розділи: заголовок файлу растрової графіки, інформаційний заголовок реєстрового масиву, таблиця кольорів і власне дані реєстрового масиву. Хоча не всі файли BMP мають подібну структуру. Наприклад, файли BMP з глибиною 16 і 24 біт/піксель не мають таблиць кольорів. В цих файлах значення пікселів растрового масиву безпосередньо характеризують значення кольорів RGB.

JPEG (Joint Photographic Experts Group)

Jpg-file-format-symbol.jpg

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

Процес стиснення зображення JPEG досить складний. Спочатку зображення розбивається на квадратні блоки із стороною розміром 8 пікселів. Потім проводиться стиснення кожного блоку окремо за три кроки:

  1. На першому кроці за допомогою формули дискретного косинусоїдального перетворення Фур'є (DCT) проводиться перетворення блоку 8х8 з інформацією про пікселі в матрицю 8x8 амплітудних значень, що відображають різні частоти в зображенні.
  2. На другому кроці значення матриці амплітуд діляться на значення матриці квантування, яка зміщена так, щоб відфільтрувати амплітуди із незначним впливом на загальний вигляд зображення.
  3. На третьому і останньому кроці квантування матриця амплітуд стискається з використанням алгоритму стиснення без втрат.

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

GIF (Graphics Interchange Format)

Gif-file-format-symbol.gif

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

Структура файлу GIF залежить від версії GIF-специфікації, якій відповідає файл. В даний час використовуються дві версії, GIF87a і GIF89a. Перша з них простіше. Незалежно від номера версії, файл GIF починається з 13-байт заголовка, що містить сигнатуру, яка ідентифікує цей файл в якості GIF-файлу, номер версії і іншу інформацію. Якщо файл зберігає лише одне зображення, слідом за заголовком зазвичай розташовується загальна таблиця кольорів, що визначає кольори зображення. Якщо у файлі зберігається декілька зображень, то замість загальної таблиці кольорів кожне зображення супроводжується локальної таблицею кольорів.

У файлі GIF87a слідом за заголовком і загальною таблицею кольорів розміщується зображення, яке може бути першим з кількох наявних зображень. Кожне зображення складається з 10-байт опису зображення, розташованої услід за ним локальної таблиці кольорів і бітів реєстрового масиву. Для підвищення ефективності використання пам'яті дані реєстрового масиву стискаються за допомогою алгоритму LZW. Файли GIF89a мають аналогічну структуру, але вони можуть містити блоки розширення з додатковою інформацією про кожне зображення.

Основні переваги GIF полягають в популярності цього формату та його компактності. Але йому притаманні два досить серйозні недоліки. Один з них полягає в тому, що в зображеннях, що зберігаються у вигляді GIF-файлу, не може бути використано більше 256 кольорів. Другий, можливо, ще більш серйозний, полягає в тому, що розробники програм, що використовують в них формати GIF, повинні мати ліцензійну угоду з CompuServe і вносити плату за кожен екземпляр програми. така цінова політика була прийнята CompuServe після того, як Unisys оголосила, що почне добиватися дотримання своїх прав власності і зажадала від тих, хто користується алгоритмом стиснення LZW, вносити ліцензійні платежі. Заплутане юридичне становище, що виникло в результаті цього гальмує впровадження програмістами в свої графічні програми файли формату GIF.

PNG (Portable Network Graphics)

Формат PNG в свій час (1996 — рік розробки першої версії формату) створювався для заміни GIF, щоб обійти юридичні перешкоди, що стояли на шляху використання GIF-файлів. PNG успадкував багато можливостей GIF і, крім того, дозволяв зберігати зображення, використовуючи більш повну палітру кольорів. Ще більш важливою рисою даного формату є те, що він використовує алгоритм стиснення без втрат — Deflate (який використовує комбінацію алгоритмів LZ77 і алгоритму Хаффмана), яким будь-хто може користуватися безкоштовно. На відміну від GIF, формат PNG підтримує повну (24-бітну) прозорість, але не дозволяє зберігати в собі декілька зображень, тобто не підтримує анімацію.

SVG (Scalable Vector Graphics)

SVG logo.jpg

Масштабована векторна графіка (Scalable Vector Graphics - SVG) є мовою розмітки, розширенною з XML для опису двомірної векторної графіки. SVG по суті є графікою настільки, як XHTML - текстом.

SVG за своїми можливостями наближається до запатентованої технології Adobe Flash, але відрізняється від неї тим, що SVG є рекомендацією W3C (тобто, стандартом), і тим, що це формат, заснований на XML, на противагу закритому бінарному формату Flash. Він явно спроектований для роботи з іншими стандартами W3C, такими, як CSS, DOM і SMIL.

Основні переваги:

  • Векторний, не залежить від розміру.
  • Підтримується усіма сучасними браузерами.
  • Легко видозмінюється із використанням CSS та Javascript.
  • Є можливість оптимізувати, завдяки стисненню.
BMP PNG GIF JPEG
Посилання bmp png gif jpeg
Глибина кольору 24 біт 24 біт 8 біт 24 біт
Розмір 1.83 MB 1.17 MB 357 KB 390 KB