ЛР2 3 ОЗМ Глущенко
Лабораторна робота 2,3
Тема: Графічні формати
Мета: Вивчення форматів графічних файлів
Завдання:
- Вивчити формат bmp. Розробити коротку специфікацію формату.
- Вивчити формат jpg. Розробити коротку специфікацію формату.
- Вивчити формат gif. Розробити коротку специфікацію формату.
- Вивчити формат png. Розробити коротку специфікацію формату.
- Вивчити один векторний формат (на Ваш вибір). Розробити коротку специфікацію формату.
- Зберегти в розглянутих форматах, файл нестисненого фото. Зробити таблицю порівняння форматів.
BMP
http://kunegin.narod.ru/ref1/code/6.htm
Формат BMP (скорочено від BitMaP) - це "рідний" формат растрової графіки для Windows, оскільки він найближче відповідає внутрішньому формату Windows, в якому ця система зберігає свої растрові масиви. Для імені файлу, представленого в BMP-форматі, найчастіше використовується розширення BMP, хоча деякі файли мають розширення RLE, що означає run length encoding (кодування довжини серій). Розширення RLE імені файлу зазвичай вказує на те, що виконано стиснення растрової інформації файлу одним з двох способів стиснення RLE, які допустимі для файлів BMP-формату.
У файлах BMP інформація про колір кожного пікселя кодується 1, 4, 8, 16 або 24 біт (біт/піксель). Числом біт/піксель, званим також глибиною уявлення кольору, визначається максимальне число кольорів в зображенні. Зображення при глибині 1 біт/піксель може мати всього два кольори, а при глибині 24 біт / піксель - більше 16 млн.
Формат власне даних растрового масиву в файлі BMP залежить від числа біт, що використовуються для кодування даних про колір кожного пікселя. При 256-кольоровому зображенні кожен піксель в тій частині файлу, де містяться власне дані реєстрового масиву, описується одним байтом (8 біт). Цей опис пікселя не представляє значний кольорів RGB, а слугує вказівником для входу в таблицю кольорів файлу. Таким чином, якщо в якості першого значення кольору RGB в таблиці кольорів файлу BMP зберігається R/G/B = 255/0/0, то значенням пікселя 0 в растровому масиві буде поставлений у відповідність яскраво-червоний колір. Значення пікселів зберігаються в порядку їх розташування зліва направо, починаючи (як правило) з нижнього рядка зображення. Таким чином, в 256-кольоровому BMP-файлі перший байт даних растрового масиву представляє собою індекс для кольору пікселя, що знаходиться в нижньому лівому куті зображення; другий байт представляє індекс для кольору сусіднього справа пікселя і т. д. Якщо число байт в кожному рядку непарній, то до кожного рядка додається додатковий байт, щоб вирівняти дані реєстрового масиву по 16-біт границі.
JPG
Формат файлу JPEG (Joint Photographic Experts Group - Об'єднана експертна група по фотографії, вимовляється "джейпег) був розроблений компанією C-Cube Microsystems як ефективний метод зберігання зображень з великою глибиною кольору, наприклад, одержуваних при скануванні фотографій з численними ледь вловимими (а іноді і невловимими) відтінками кольору. Найбільша відмінність формату JPEG від інших форматів полягає в тому, що в JPEG використовується алгоритм стиснення з втратами (а не алгоритм без втрат) інформації. Алгоритм стиснення без втрат так зберігає інформацію про зображення, що розпаковане зображення в точності відповідає оригіналу. При стисненні з втратами жертвується частина інформації про зображення, щоб досягти більшого коефіцієнта стиснення. Розпаковане зображення JPEG рідко відповідає оригіналу абсолютно точно, але дуже часто ці відмінності настільки незначні, що їх ледве можна (якщо взагалі можна) виявити.
Процес стиснення зображення JPEG досить складний і часто для досягнення прийнятної продуктивності вимагає спеціальної апаратури. Спочатку зображення розбивається на квадратні блоки із стороною розміром 8 пікселів. Потім проводиться стиснення кожного блоку окремо за три кроки. На першому кроці за допомогою формули дискретного косинусоїдального перетворення фури (DCT) проводиться перетворення блоку 8х8 з інформацією про пікселі в матрицю 8x8 амплітудних значень, що відображають різні частоти (швидкості зміни кольору) в зображенні. На другому кроці значення матриці амплітуд діляться на значення матриці квантування, яка зміщена так, щоб відфільтрувати амплітуди, незначно впливають на загальний вигляд зображення. На третьому і останньому кроці квантованими матриця амплітуд стискається з використанням алгоритму стиснення без втрат.