logo search
Трев_Lecture

4.3. Графічний формат jpeg

На сьогоднішній день JPEG яскраво ілюструє результати досліджень в області розвитку технологій стиснення зображень.

Абревіатура JPEG походить від назви комітету стандартів Joint Photographic Experts Group (Об'єднана група експертів з фотографії), що входить до складу Міжнародної організації стандартизації (ISO). У 1982 р. ISO сформувала групу експертів з фотографії (PEG), поклавши на неї обов'язок проведення досліджень в області передачі відеосигналів, нерухомих зображень і текстів каналами ISDN (інтегрована цифрова мережа зв'язку). Перед PEG було поставлено задачу розробки набору промислових стандартів з передачі графічних даних і даних зображень за допомогою цифрових комунікаційних мереж.

У 1986 р. підгрупою ССIТТ розпочались дослідження методів стиснення кольорових і напівтонових даних для факсимільного зв'язку. Застосовувані при цьому методи стиснення кольорових зображень були дуже схожі на ті, що досліджувалися групою JPEG. Тому було прийняте рішення об'єднати ресурси цих груп для спільної роботи над єдиним стандартом.

У 1987 р. ISO і ССIТТ об'єднали свої групи в комітет, що мав провести дослідження і розробити стандарт стиснення даних, який мав застосовуватись обома організаціями. Новий комітет одержав назву JPEG.

Розробники JPEG змогли передбачити безліч комерційних програм на базі розроблювальної технології, оскільки споживачі очікували маркетингових пропозицій щодо отримання зображень і мультимедіа. Більшість з раніше розроблених методів стиснення були малоприйнятні для стиснення даних повноколірних багатоградаційних зображень, що містять сотні і тисячі кольорів, що характеризують реальний навколишній світ. У цей період тільки невелика кількість файлових форматів могли підтримувати растрові зображення з глибиною кольору 24 біт/піксель і більше.

Наприклад, формат GIF давав змогу зберігати тільки зображення з максимальною глибиною кольору 8 біт/піксель, тобто не більш 256 кольорів. Його алгоритм стиску (LZW) мало підходив для сканованих зображень.

Формати TIFF і BMP дають змогу зберігати дані глибиною 24 біт/піксель, але їх версії, що існували до JPEG, давали змогу застосовувати тільки схеми кодування, що погано стискали цей тип даних зображення (LZW і RLE відповідно).

JPEG став методом, що давав змогу стискати дані повноколірних багатоградаційних зображень із глибиною від 6 до 24 біт/піксель з досить високою швидкістю й ефективністю. Сьогодні JPEG - це схема стиснення зображень, що дає змогу досягати високих коефіцієнтів стиску, щоправда, максимальне стиснення графічної інформації, як правило, пов'язане із певною втратою інформації. Для досягнення високого степеня стиснення алгоритм так змінює вихідні дані, що отримане після відновлення зображення буде відрізнятися від вихідного (що підлягав стисненню). Цей метод стиснення використовується для роботи з повноколірними зображеннями високої фотографічної якості.

JPEG не був визначений як стандартний формат файлів зображень, однак на його основі були створені нові або модифіковані існуючі файлові формати.

Алгоритм обробки даних JPEG.

Специфікація JPEG визначає мінімальні вимоги стандарту обов’язкові для підтримання всіма програмами, які використовують цей метод. JPEG базується на схемі кодування, на основі дискретних косинус-перетвореннях (DCT). DCT - це загальне ім'я визначеного класу операцій, дані про які були опубліковані кілька років назад. Алгоритми, що базуються на DCT, лягли в основу різних методів стиснення. Ці алгоритми стиску базуються не на пошуку однакових атрибутів пікселів (як у RLE і LZW), а на різниці між ними. Відповідно до свого механізму вони завжди кодують із втратами, але забезпечують високий ступінь стиснення при мінімальних втратах даних. Схема JPEG ефективна тільки при стисненні багатоградаційних зображень, де відмінності між сусідніми пікселями, як правило, досить незначні. Практично JPEG добре працює тільки з зображеннями, що мають глибину хоча б 4 або 5 біт/піксель на колірний канал. Основи стандарту передбачають глибину вхідного зразка - 8 біт/піксель. Дані з меншою бітовою глибиною можуть бути оброблені за допомогою масштабування до 8 біт/піксель, але результат для вихідних даних з низькою глибиною кольору може бути незадовільним, оскільки між атрибутами сусідніх пікселів буде значна різниця. З таких же причин погано обробляються вихідні дані на основі колірних таблиць, особливо якщо зображення представлене в розмитому вигляді.

Основна частина візуальної інформації, до якої найбільш чутливе око людини, складається з високочастотних напівтонових компонентів яскравості (Y) колірного простору YCbCr. Дві інші складові кольоровості (Сb і Сr) містять високочастотну колірну інформацію, до якої око людини менш чутливе. Отже, певна частина інформації може бути відкинута, тим самим зменшуючи кількість пікселів на канал кольоровості. Наприклад, у зображенні розміром 1000х1000 пікселів можна використовувати яскравість всіх 1000х1000 пікселів, але тільки 500х500 пікселів для кожного компонента кольоровості. У такому представленні кожен піксель кольоровості буде охоплювати ту ж область, що і блок 2х2 пікселі (для яскравості). У результаті ми збережемо для кожного блоку 2х2 всього 6 піксельних значень (4 значення яскравості і по одному значенню для кожного з двох каналів кольоровості) замість того, щоб використовувати 12 значень при звичайному описі. Практика показала, що зменшення обсягу даних на 50% майже непомітно впливає на якість більшості зображень.

Проте у випадку загальноприйнятих колірних моделей типу RGB таке представлення даних неможливе, оскільки кожен колірний канал RGB несе деяку інформацію про яскравість, і будь-яка втрата роздільної здатності є досить помітною.

Зменшення роздільної здатності каналів кольоровості шляхом субдискретизації або усереднення груп пікселів здійснюється компресором JPEG.

Оскільки засоби візуалізації і представлення інформації є цифровими, у них початково закладена визначена система квантування сигналу. В результаті рівень квантування визначається глибиною кольору, тобто кількістю кодових комбінацій, що використовуються для кодування кольору. Цей процес і називається квантуванням кольору.

Сегментація зображення. Сегментація зображення застосовується з метою поділу його на два чи більше сегменти. Це полегшує буферизацию даних зображення в пам'яті ПЭВМ, прискорює їх довільну вибірку з диску і дає змогу зберігати зображення розміром понад 64х64 Кбайт. JPEG підтримує три типи сегментації зображень: просту, пірамідальну і комбіновану.

При простій сегментації зображення розділяється на два або більше сегменти фіксованого розміру. Усі прості сегменти кодуються зліва направо і зверху вниз, є суміжними і не перекриваються. Сегменти повинні мати однакову кількість вибірок та ідентифікаторів компонентів і бути закодованими за одною схемою. Сегменти в нижній і правій частинах зображення можуть бути меншого розміру, ніж «внутрішні», оскільки величина зображення не обов'язково є кратною розміру сегмента.

При пірамідальній сегментації зображення також поділяється на сегменти, а кожний з них, у свою чергу, на ще більш дрібні сегменти. При цьому використовуються різні рівні роздільної здатності. Моделлю такого процесу є сегментована піраміда зображення JPEG (JPEG Tiled Image Pyramid, JTIP), що відображає процедуру створення пірамідального JPEG-зображення з декількома рівнями роздільної здатності. У схемі JTIP послідовні шари одного зображення зберігаються з різною роздільною здатністю. Перше зображення, що записане на вершині піраміди, займає одну шістнадцяту частину встановленого розміру екрана і називається віньєткою. Застосовується воно для швидкого відтворення вмісту зображення. Це набуває особливого значення при роботі з програмами перегляду (броузерами). Наступне зображення займає одну четверту частину екрана і називається мажеткою. Зазвичай вона використовується у випадках, коли на екрані необхідно одночасно відобразити два і більше зображення. Далі ідуть повноекранне зображення з низькою роздільною зданістю, зображення з поступово зростаючою роздільною зданістю і, нарешті, оригінал зображення. При пірамідальній сегментації доцільним є процес внутрішньої сегментації, коли кожен сегмент кодується як частина одного потоку JPEG-даних. Іноді може застосовуватися процес зовнішньої сегментації, при якому кожен сегмент є окремо кодованим потоком JPEG-даних. Зовнішня сегментація пришвидшує доступ до даних зображення, полегшує його шифрування і покращує сумісність з деякими JPEG-декодерами.

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

На основі JPEG-методу стиснення побудовані багаточисельні формати, наприклад формат TIFF/JPEG, відомий як TIFF 6.0, TIFF, QuickTime і ін.

Файли з графікою у форматі JPEG мають розширення *.jpg.

Формат JPEG є TrueColor-форматом, тобто може зберігати зображення з глибиною кольору 24 біт/піксель. Такої глибини кольору достатньо для практично точного відтворення зображень будь-якої складності на екрані монітору. У випадку перегляду кольорового зображення на екрані монітору з великою глибиною кольору (наприклад, 32 біт/піксель) воно практично не відрізняється від зображення з глибиною кольору 24 біт/піксель. Той же результат спостерігається і при роздруці зображення на більшості доступних принтерів. Глибина кольору 32 біт/піксель, як правило, використовується у видавничій діяльності.

JPEG має більш високий ступінь стиснення зображень, ніж GIF, але не має можливості зберігати декілька зображень в одному файлі. Щоправда, відома модифікація формату JPEG, що одержала назву Progressive JPEG, призначена для тих же задач, що і черезрядкове відображення GIF-зображень. Це зробило формат JPEG більш привабливим в якості мережевого стандарту.

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

Алгоритм JPEG і побудовані на його основі формати передбачають реалізацію функціональної можливості, що отримала назву етикетка. Фактично це зменшена копія зображення. Етикетку можна розглядати як свого роду аналог запропонованого у форматі GIF прийому черезрядкової розгортки зображення. При наявності великої кількості файлів JPEG можна виводити їх на екран у вигляді етикеток, що дає змогу відобразити їх досить швидко або у великій кількості (списком) і тим самим дати користувачеві уявлення про вміст кожного файлу. Етикетки можуть бути закодовані методом JPEG; збережені у форматі 1 байт/піксель (тобто у вигляді напівтонового зображення) або представлені у вигляді повноколірного зображення з 16,7 млн. кольорів (24 біт/піксель).

JPEG може розглядатися як набір методів стиснення зображень, придатних для задоволення потреб користувача. JPEG може налаштовуватись на відтворення дуже маленьких, стиснених зображень поганої якості, але придатних для конкретних цілей. У той же час він дає змогу робити стиснення зображень дуже високої якості, обсяг даних при цьому набагато менший, ніж оригінальних нестиснених даних.

JPEG, як правило, супроводжується втратами. Схема стиснення JPEG побудована на відкиданні інформації, яку важко помітити візуально. Відомо, що невеликі зміни кольору погано розпізнаються людським оком.

Схема JPEG була спеціально розроблена для стиснення кольорових і напівтонових багатоградаційних зображень: фотографій, телевізійних заставок, іншої складної графіки. Кінцевий користувач може «відрегулювати» якість кодера JPEG, використавши параметр, який іноді називають параметром якості або Q-фактором. Різні реалізації даного методу мають різні діапазони Q-фактору, але типовим вважається від 1 до 100. При значенні фактора, рівному 1, створюється стиснене зображення найменшого розміру, але поганої якості; при значенні фактора, рівному 100, можна одержати стиснене зображення більшого розміру, але й кращої якості. Оптимальне значення Q-фактора залежить від зображення і, отже, підбирається індивідуально. Особливим мистецтвом при стисненні JPEG є вибір мінімального значення Q-фактора, що дає змогу створити зображення прийнятної якості і найбільш близьке до оригіналу.