Обробка зображень лабораторна 2 Міщенко Анастасія

Матеріал з Вікі ЦДУ
Версія від 17:58, 9 березня 2016; 2534246 (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Тема: Графічні формати
Мета: Вивчення форматів графічних файлів
Завдання:

  1. Вивчити формат bmp. Розробити коротку специфікацію формату.
  2. Вивчити формат jpg. Розробити коротку специфікацію формату.
  3. Вивчити формат gif. Розробити коротку специфікацію формату.
  4. Вивчити формат png. Розробити коротку специфікацію формату.
  5. Вивчити один векторний формат (на Ваш вибір). Розробити коротку специфікацію формату.
  6. Зберегти в розглянутих форматах, файл нестисненого фото. Зробити таблицю порівняння форматів.

Формат BMP

Формат JPG

Алгоритм JPG найбільшою мірою придатний для стиснення фотографій і картин, які містять реалістичні сцени з плавними переходами яскравості і кольору. Формат JPEG в режимі стиснення з втратами малопридатний для стиснення креслень, текстової і знаковою графіки, де різкий контраст між сусідніми пікселями приводить до появи помітних артефактів. JPEG не підходить для стиснення зображень при багатоетапної обробці, оскільки спотворення в зображення будуть вноситися кожен раз при збереженні проміжних результатів обработкі.JPEG не повинен використовуватися і в тих випадках, коли неприпустимі навіть мінімальні втрати.
Формування файлу
Файл JPG містить послідовність маркерів, кожен з яких починається з байта 0xFF, засвідчує про початок маркера, і байта-ідентифікатора. Деякі маркери складаються тільки з цієї пари байтів, інші ж містять додаткові дані, що складаються з двухбайтового поля з довжиною інформаційної частини маркера і власне даних. Така структура файлу дозволяє швидко відшукати маркер з необхідними даними .

Формат GIF

Зображення у форматі GIF зберігається порядково, підтримується тільки формат з індексованою палітрою кольорів. Стандарт розроблявся тільки для підтримки 256-кольорової палітри. Один з квітів у палітрі може бути оголошений «прозорим». У цьому випадку в програмах, які підтримують прозорість GIF крізь пікселі, пофарбовані «прозорим» кольором, буде видно фон. «Напівпрозорість» пікселів (технологія альфа-каналу) не підтримується.
Формування файлу
Спочатку в графічному редакторі створюється зображення, потім в програмі-аніматор - кадри анімації, які містять змінене зображення. Далі ці кадри вибудовуються в певній послідовності, для кожного кадру задається час показу. Для створення плавного і досить реалістичного ефекту руху досить встановити час показу кожного кадру в інтервалі від 0,2 до 1 с.

Формат PNG

Формат PNG спроектований для заміни застарілого і більш простого формату GIF, а також, в деякій мірі, для заміни значно складнішого формату TIFF. PNG підтримує три основних типи растрових зображень:

  • Напівтонове зображення (з глибиною кольору 16 біт)
  • Кольорове индексированное зображення (палітра 8 біт для кольору глибиною 24 біт)
  • Повнокольорове зображення (з глибиною кольору 48 біт)

Формат PNG зберігає графічну інформацію в стислому вигляді. Причому це стиснення проводиться без втрат, на відміну, наприклад, від JPEG. Він має наступні основні переваги перед GIF:

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

Існує одна особливість GIF, яка в PNG не реалізована: підтримка декількох зображень в одному файлі, і зокрема - анімації; PNG спочатку був призначений лише для зберігання одного зображення в одному файлі. Для передачі анімованих зображень був розроблений розширений формат MNG, опублікований в середині 1999 року і вже підтримуваний в різних додатках, однак поки так і не став загальноприйнятим.
Формування файлу
Файл складається з підпису і деякої кількості блоків (чанкі, chunks), кожен з яких несе в собі деяку інформацію.

PNGstructure.png

Підпис PNG-файлу завжди однаковий, складається з 8 байт, і являє собою (в hex-записи)89 50 4E 47 0D 0A 1A 0A:
  • 89 - non-ASCII символ. Перешкоджає розпізнаванню PNG, як текстового файлу, і навпаки;
  • 50 4E 47 - PNG в ASCII записи;
  • 0D 0A - CRLF (Carriage-return, Line-feed), DOS-style переклад рядка;
  • 1A - зупиняє висновок файлу в DOS режимі (end-of-file), щоб вам не зявлялося багатокілобайтове зображення в текстовому вигляді;
  • 0A - LF, Unix-style переклад рядка.)

Chunks Чанк - це блоки даних, з яких складається файл. Кожен чанк складається з 4 секцій.

ChunksPNG.png

Довжина - числове значення довжини блоку даних.
Тип (ім'я) - являє собою 4 чутливих до регістру ASCII-символу. Регістри символів (п'ятий біт в числовому записі символу) в імені чанка розрізняються неспроста - це прапорці, які повідомляють декодеру деяку додаткову інформацію:

  • Регістр першого символу визначає чи є даний чанк критичним (верхній регістр) або допоміжним (нижній регістр). Критичні чанкі повинні розпізнаватися кожним декодером. Якщо декодер зустрічає критичний чанк, тип якого не може розпізнати, він зобов'язаний завершити виконання з помилкою.
  • Регістр другого символу задає «публічність» (верхній регістр) або «приватність» (нижній регістр) чанка. «Публічні» чанкі - офіційні, задокументовані, які розпізнаються більшістю декодерів. Але якщо раптом вам для якихось своїх потреб знадобиться кодувати специфічну інформацію, то просто в імені чанка зробіть другий символ маленьким.
  • Регістр третього символу залишений для майбутніх звершень. Передбачається, що він буде використовуватися для диференціації різних версій стандарту. Для версій 1.0 та 1.1 третій символ повинен бути великим.
  • Регістр четвертого символу означає можливість копіювання даного чанка редакторами, які не можуть його розпізнати. Якщо регістр нижній, чанк може бути скопійований, незалежно від ступеня модифікації файлу, інакше (верхній регістр) він копіюється лише в разі, коли при модифікації не були порушені ніякі критичні чанки.

CRC - контрольна сума (призначена для перевірки цілісності даних)