Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Трев_Lecture.DOC
Скачиваний:
5
Добавлен:
26.08.2019
Размер:
1.23 Mб
Скачать

4.2. Формат графічних файлів png

Формат PNG призначений для збереження і передачі растрових зображень. Він дає змогу зберігати зображення, бітова глибина яких досягає 16 (у шкалі сірого кольору) або 48 (у truecolor-зображеннях) біт/піксель, а також 16 біт альфа-даних. Цей формат забезпечує поетапне відображення даних, збереження інформації про прозорість, а також здійснює кодування текстової інформації. У ньому використовується метод стиснення даних без втрат.

PNG - новий формат, орієнтований на фахівців в області комп'ютерної графіки. Він розроблений як альтернатива формату GIF (Graphics Interchange Format), використання якого розробниками електронних публікацій і графічних зображень передбачає попередню оплату майбутньої реалізації зображень у цьому форматі (ліцензування). Ліцензії потрібні також для поширення програм, що читають або записують файли у форматі GIF.

Мобільний і нескладний для реалізації формат PNG за основними функціональними можливостями перевершує формат GIF.

PNG і GIF89a мають спільні ознаки:

  • Дані формати організовані у вигляді потоку даних.

  • Забезпечується стиснення даних зображення без втрат.

  • Підтримується збереження індексованих зображень, що містять до 256 кольорів.

  • Забезпечується поетапне відображення з черезрядковою розгорткою.

  • Підтримується прозорість основного кольору.

  • Є можливість зберігати загальнодоступні і приватні користувацькі дані.

  • Обидва формати незалежні від апаратних засобів і операційної системи.

Разом з тим формат PNG наділений більш широкими функціональними можливостями в порівнянні з форматом GIF, наприклад:

  • Більш висока швидкість поетапного відображення з черезрядковою розгорткою.

  • Розширені можливості збереження користувальницьких даних.

  • Збереження truecolor-зображень глибиною до 48 біт/піксель.

  • Збереження зображень у шкалі сірого кольору глибиною до 16 біт/піксель.

  • Повний альфа-канал.

  • Гамма-індикатор.

  • CRC-метод виявлення порушень потоку даних.

  • Стандартний інструментарій для реалізації програм читання і запису PNG.

  • Стандартний набір еталонних зображень для тестування програм читання PNG.

Організація файлу PNG.

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

Концепція блоків даних, або порцій, використовується також в інших форматах, найвідомішими серед яких є GIF, IFF і RIFF. Дані у файлах таких форматів звичайно читаються послідовно, а їхні фрагменти не потрібно шукати за зміщеннями від початку файлу. Такі формати добре підходять для спільного використання з мережевими протоколами та протоколами передачі даних і сприймаються як файлові (хоча точніше було б розглядати записану в таких форматах інформацію як потік даних, переспрямований у файл).

У PNG визначені чотири стандартні порції, що носять назву критичних порцій і повинні підтримуватися всіма програмами читання і запису формату PNG.

Порція заголовку (IHDR). Містить основну інформацію про дані зображення і повинна бути першою. У потоці даних PNG може існувати тільки одна порція заголовку.

Порція палітри (PLTE). Служить для збереження даних таблиці кольорів, пов'язаних з даними зображення. Ця порція присутня у файлі тільки тоді, коли дані зображення використовують колірну палітру, і розташовується перед порцією даних зображення.

Порція даних зображення (IDAT). Містить власне дані зображення. У потоці даних може бути кілька таких порцій, що записуються послідовно одна за іншою.

Завершувальна порція (IEND). Розташовуючись останньою, дана порція маркує закінчення PNG-файлу або потоку даних.

Стиснення даних. Дані PNG-зображень завжди зберігаються в стиснутому вигляді. Для стиснення використовується схема прогнозування піксельных значень із застосуванням одного з варіантів методу Deflate. Алгоритм Deflate (створений Філом Кацем) використовується в ужитку архівації файлів pkzip. Цей метод стиснення без втрат характерний високою швидкістю кодування/декодування, добре документований і поширюється безкоштовно; підтримується більшістю платформ і операційних систем.

Deflate є різновидом методу стиску LZW (запатентованого в 1981 р.). У Deflate використовується плаваюче вікно змінного розміру і сортовані хеш-таблиці, що дозволяють ідентифікувати комбінації даних і стискати їх за алгоритмом Хаффмана. У форматі PNG використовується різновид методу Deflate, у якому сортовані хеш-таблиці не використовуються, тому він не став суб'єктом патентних домагань або ліцензійних угод.

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