Система стиснення відеоданих на основі аналізу ентропійності

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

“ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ"

Кафедра Обчислювальна техніка та програмування

Спеціальність Системне програмування 



До захисту допускаю

Завідувач кафедри









ДИПЛОМНИЙ ПРОЕКТ

Освітньо-каліфікаційного рівня спеціаліст

Тема проекту: Cистема стиснення відеоданих на основі аналізу ентропійності

























Харків 2009


ЗАВДАННЯ

на виконання дипломного проекту



1. Тема проекту Система стиснення відеоданих на основі аналізу ентропійності______________________________________________________

2. Зміст завдання Дослідити проблеми кодування відеоінформації, призначення й мету створення системи. Розробити загальну структуру програми та алгоритм. Розробити програмне забезпечення. Вивести результати роботи та тестування. Ознайомитись з питаннями охорони праці та навколишнього середовища. Зробити економічну оцінку проекту у вигляді бізнес-плану.

3. Вихідні дані для виконання проекту Айвазян С.А., Мхитарян.В.С. Прикладная статистика и основы эконометрики; Дидэ Э. и др. Методы анализа данных; Кричевский Р.Е. Сжатие и поиск информации; Куренков Н.И. Ананьев С.Н. Энтропийный подход к решению задач классификации многомерных данных; Левенштейн В.И. Об избыточности и замедлении разделимого кодирования натуральных чисел; Семенюк В.В. Применение вероятностного моделирования в методах экономного кодирования видеоинформации; Сакоян С.А. Об оптимальных разбиениях на градации в задачах классификации; Семенюк В.В. Экономное кодирование дискретной информации

4. Скласти звіт і виконати необхідні документи (програмні, плакати) відповідно до плану виконання дипломної роботи


Найменування програмного продукту "Графічний кодер чорно-білих зображень”. Розробляється для дипломного проекту "Система стиснення відеоданих на основі аналізу ентропійності".

Область застосування програмного продукту  вищі учбові заклади, книжкові та газетні видавництва, служби охорони, та державна служба безпеки. Програмний продукт дозволяє будь-які 256-кольорові чорно-білі зображення, які зберігаються у форматі. jpeg або. bmp, у зображення. bmp з меншою кількістю кольорів (від 2 до 16) із зберіганням інформативності зображення. Для покращення результатів обробка зображення виконується декількома методами, з метою отримати найбільш вигідне зображення.

1. ПІДСТАВА ДЛЯ РОЗРОБКИ

Розробка ведеться відповідно до наказу по Національному технічному університету "Харківський політехнічний інститут"

№_3001 - ІІІ_ від “_21_" _листопада_ 2008 р. Найменування програмного продукту: "Графічний кодер чорно-білих зображень".

Розробляється для дипломного проекту "Система стиснення відеоданих на основі аналізу ентропійності".

2. ПРИЗНАЧЕННЯ РОЗРОБКИ

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

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

3. ВИМОГИ ДО ПРОГРАМНОГО ПРОДУКТУ

Функціональні характеристики

Розроблюваний програмний продукт повинен забезпечувати:

Відкриття зображення з його виводом на екран;

Кодування відеоінформації методами на основі аналізу ентропійності;

Кодування інформації методом рівномірної розбивки;

Вивід отриманого зображення на екран;

Зберігання інформації у формат. bmp з кількістю кольорів 16.

Вивід гістограми початкового та кінцевого зображення

3.2 Вимоги до надійності

Розроблений програмний продукт повинен відповідати наступним вимогам за критерієм надійності:

коректно працювати, тобто не призводити до припинення роботи ПЕОМ, яке може виникнути у ході роботи програмного продукту;

відмова в роботі не повинна призвести до втрати даних у базі даних тестів.

3.3 Умови експлуатації

Програмний продукт повинен функціонувати у нормальних умовах для персоналу:

 температура навколишнього середовища від 100 С до 320 С;

 вібрації, зовнішні магнітні, радіаційні та електричні поля не повинні перевищувати норми.

Для нормальної експлуатації програмного продукту обслуговуючому персоналу необхідні знання по експлуатації ПК.

3.4 Вимоги до складу і параметрів технічних засобів.

Для експлуатації програмного продукту необхідна ПЕОМ з наступними апаратними характеристиками:

1) стандартна конфігурація IBM-сумісних ПК;.

2) процесор з частотою не менше 750 МГц;

3) ОЗП обсягом не менше 256 Мбайт;

4) жорсткий диск обсягом не менше 100 Гбайт;

5) сумісні монітор та відео адаптер;

6) маніпулятор типа “миша”;

7) мережна карта

8) зв`язок з іншими машинами за допомогою кабелів (витої пари, або оптоволокна), або радіозв`язку.

3.5 Вимоги до інформаційній та програмної сумісності

Розроблений програмний продукт повинен функціонувати на ПЕОМ з операційними системами Microsoft Windows 2000/XP.

3.6. Вимоги до маркування та упаковки

Вимоги до маркування та упаковки програмного продукту, розробленого в роботі на тему: “ Система стиснення відеоданих на основі аналізу ентропійності ” не пред’являються.

3.7. Вимоги до транспортування та збереження.

Вимоги до транспортування та збереження програмного продукту “ Графічний кодер чорно-білих зображень ” не пред’являються.

4. ВИМОГИ ДО ПРОГРАМНОЇ ДОКУМЕНТАЦІЇ

Для дипломної роботи, що розробляється, повинні бути складені наступні програмні документи:

1. Специфікація.

2. Опис програми.

3. Текст програми.

4. Керівництво оператора.

5. ТЕХНІКО-ЕКОНОМІЧНІ ПОКАЗНИКИ

Техніко-економічні показники повинні бути визначені в процесі розробки і зазначені у відповідному розділі звіту про виконання дипломного проекту.

6. СТАДІЇ ТА ЕТАПИ РОЗРОБКИ

Розробка програмного продукту відповідає стадії робочого проекту. Етапи розробки виконують в наступному порядку:

 отримання завдання;

 збір початкових матеріалів;

 огляд літератури й обґрунтування необхідності розробки;

 визначення областей застосування;

 розробка технічного завдання;

 техніко-економічне обґрунтування розробки;

 розробка алгоритму розв’язання задачі;

 розробка структури програмного продукту;

 визначення конфігурації програмних засобів;

 розробка звіту дипломного проекту;

 програмування і відлагодження програмного продукту;

 розробка програмних документів;

 тестування програмного продукту;

 коректування програми та програмних документів за результатами тестування.

7. ПОРЯДОК КОНТРОЛЮ І ПРИЙМАННЯ

При прийманні дипломної роботи перевіряється:

1. Комплектність, зміст та оформлення документації згідно розділу 4 цього документу.

2. Відповідність програмного продукту згідно вимогам до програмного продукту розділу 3 цього документу.


РЕФЕРАТ



Звіт про ДП: 98 стр., 15 рис., 18 табл., 32 джерела

КЛЮЧОВІ СЛОВА: ентропія, квантування, гістограма яскравості, кодування, стиснення, оптимальна градація, зображення.

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

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

Розглянуті питання охорони праці й навколишнього середовища, проведена техніко-економічна оцінка роботи. На підставі аналізу результатів зроблені висновки й рекомендації для подальшої роботи в даному напрямку.


Зміст



ЗАВДАННЯ на виконання дипломного проекту

РЕФЕРАТ

Вступ

1. Імовірнісний підхід у теорії кодування відеоінформації

1.1 Інформаційний опис

1.2 Імовірнісний підхід

1.2.1 Ентропія

1.2.2 Дешифровані коди

1.2.3 Оптимальна довжина коду

1.3 Методи генерації коду

1.3.1 Префіксне кодування

1.3.2 Алгоритм Шеннона

1.3.3 Алгоритм Хаффмана

1.4 Основні результати і висновки

2. Розробка імовірнісних методів для підвищення ефективності кодування

2.1 Квантування

2.2 Побудова інформаційного критерію

2.2.1 Оцінка інформативності ознак

2.2.2 Оптимальна градація ознак.

2.2.3 Градація перших 100 чисел натурального ряду

2.2.4 Градація яскравостей зображень

3. Розробка ефективного алгоритму кодування зображень на основі зміни градації яскравості

3.1 Загальна структура програми

3.3 Розробка алгоритму завантаження зображення з файлу

3.4 Розробка перетворення кольорового зображення у чорно-біле

3.5 Розрахунки гістограми яскравостей

3.6 Розробка функції обчислення порогового значення відрізку масиву яскравостей зображення

3.7 Розробка рекурсивної процедури розділення масиву гістограми яскравостей та складання масиву відповідностей елементів палітри

3.8 Розробка функції ентропійного кодування зображення

3.9 Опис використаних компонентів

4. Тестування програми

5. Техніко-економічна частина

5.1 Позначка й призначення

5.2 Оцінка ринку збуту

5.3 Оцінка конкурентноздатності

5.4 Стратегія маркетингу

5.4.1 Оцінка витрат на розробку продукту

5.4.2 Реклама

5.5 Оцінка ризику і страхування

5.6. Фінансовий план

5.7 Висновок

6. Охорона праці і навколишнього середовища

6.1 Основні питання охорони праці

6.2 Промислова санітарія

6.2.1 Мікроклімат

6.2.2 Виробниче освітлення

6.2.3 Шум

6.2.4 Випромінювання від екрана

6.3 Техніка безпеки на робочому місці

6.3.1 Електробезпека

6.3.2 Ергономічні вимоги до робочого місця

6.4 Пожежна безпека

6.5 Охорона навколишнього середовища

Висновки

Список джерел інформації

Додаток

Текст програми

Керівництво оператора

Опис програми




Вступ



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

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

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

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

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

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

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

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


1. Імовірнісний підхід у теорії кодування відеоінформації



1.1 Інформаційний опис



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

Існує кілька підходів до такого роду опису. Найбільше часто використовувані - комбінаторний й імовірнісний.

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

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

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

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



1.2 Імовірнісний підхід



1.2.1 Ентропія

Основоположником імовірнісного підходу є Шеннон. Він запропонував ввести характеристику невизначеності інформації H (p1; p2; …; pN), що залежить від імовірностей p1; p2; …; pN появи символів алфавіту A потужності N на виході інформаційного джерела. Шеннон зажадав, щоб міра невизначеності, за аналогією з аналогічною фізичною характеристикою названа їм ентропією, мала наступні властивості:

величина H (p1,p2,...,pn) інваріантна щодо перестановок аргументів p1,p2,...,pn;

функція H (p1,p2,...,pn) безперервна по шкірному з аргументів своїх аргументів p1,p2,…,pn]

функція A (N) = H (1/N,…1/N) з кількістю елементів 1/N=N, монотонно зростає по N

виконується співвідношення: H (p1; p2; …; pk; pk+1; …; pk+l) = H (p1; p2; …; pk; ps) + psH (pk+1/ ps,…, pk+l/ps), де ps = сума від 1 до l (pk+1).

Як показав Шеннон, функція, що задовольняє зазначеним властивостям, має вигляд H (p1; p2; …; pN) = - K∑pi logm pi, де K та m - деякі позитивні константи. Для зручності пропонується вибирати K рівним одиниці, а в якості m брати основу системи подання інформації. Як показує практика, такий вибір багато в чому виправданий. Наприклад, у системі подання інформації з підставою 2 невизначеність появи одного із двох символів, що з'являються з рівною ймовірністю, виявляється рівної 1 біту. Це добрі погодиться з визначенням біта як одиниці інформації, необхідної для подання вибору одного із двох равновероятных подій. Таким чином, підсумкова формула для обчислення ентропії інформаційного джерела з імовірнісним розподілом появи символів {pi}Ni=1 виглядає в такий спосіб:





 (1.1) 



Формула (1.1) дозволяє визначити ентропію джерела, що перебуває в деякому конкретному стані. Ентропія джерела в цілому - безвідносно до конкретного стану - може бути визначена далеко не завжди. Можливість визначення ентропії залежить від імовірностей тихнув або інших станів і відповідних цих станів ансамблів перехідних імовірностей (перехід зі стану в стан здійснюється при породженням джерелом чергового символу). Розглянемо окремий випадок, коли інформаційне джерело S може перебувати в одному з T станів, причому чітко відомі всі ймовірності переходів джерела з будь-якого стану i у стан j (pij). Якщо існує межа , де Р - матриця з компонентами pi,j, величина ентропії джерела S може бути обчислена по формулі





 (1.2) 



Отут pi - імовірність знаходження джерела S в i-м стані (pi є значення i - елемента будь-якого рядка матриці P∞), a m - підстава системи подання інформації.

Множина станів інформаційного джерела в сукупності з ансамблем перехідних імовірностей прийнято називати моделлю станів або марковской моделлю. Для визначення ентропії джерела інформації в рамках даної моделі необхідно правильно підібрати її структуру й параметри, які повинні повною мірою відповідати джерелу. На практиці це досить важко, тому що параметри інформаційних джерел, як правило, апріорі не відомі1. Визначити їх можна тільки приблизно, тому при рішенні практичних задач доводити прибігати до емпіричних способів оцінки ентропії. Як правило, мова йде про усереднення величини ентропії за годиною.

Нехай джерело послідовно перебуває в станах s1, s2,..., sn, які відповідають розподілу ймовірностей появи символів 



 



Через рі1, і2, іn позначимо ймовірність появи на виході джерела послідовності символів з індексами i1, i2,..., in (символ ik породжується джерелом у стані sk). Очевидно, що





 (1.3) 



Напівемпіричною ентропією джерела назвемо величину





 (1.4) 



З урахуванням тотожності (1.3) формула (1.4) приводитися до більше зручного для обчислення виду









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





 (1.6) 



У цьому випадку ri (sj) - емпірична оцінка ймовірності появи символу з індексом i при породженні j-й вибірки джерела інформації1. Причина, по якій особлива увага приділяється способах обчислення ентропії, полягає в тім, що величина ентропії є чисельною границею ефективності ощадливого кодування вибірки інформаційного джерела. Знаючи ентропію, можна оцінити ефективність того або іншого методу або алгоритму. В ідеалі ефективність винна збігатися з величиною ентропією. При цьому, якщо природа інформаційного джерела не є імовірнісної, тобто чітко виділити ті або інші імовірнісні стани не можна, мова може йти тільки про ентропію, що обчислює частково на емпіричній основі. В силу останньої обставини, надалі при вживанні терміна ентропія найчастіше буде матися на увазі напівемпірична ентропія.

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


1.2.2 Дешифровані коди

Найпростіший варіант кодування вибірки інформаційного джерела - установлення відповідності між конкретними символами алфавіту й кодами, що мають цілу довжину в одиницях подання інформації. Природно зажадати, щоб код, отриманий у результаті такого кодування, був дешифрованим, тобто по будь-якій комбінації кодів символів можна було б відновити закодоване повідомлення. Необхідна умова дешифруємості було запропоновано й доведене Макмілланом. Формулювання виглядає в такий спосіб: якщо система кодів із цілими довжинами {li}Ni=1 дешифровані, те виконується нерівність





 (1.7) 



де m - підстава системи подання інформації.

Виконання нерівності (1.7) спричиняє виконання більше важливої нерівності:





 (1.8) 



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

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

Будемо використати раніше уведені позначення. Джерело, що послідовно перебуває в станах s1, s2,..., sn, як і раніше, характеризується імовірнісними розподілами 



. 



Через pi1, i2,..., in позначається ймовірність появи повідомлення "i1, i2,... in", через li 1, i2,..., in - довжина коду повідомлення. Ефективність кодування повідомлень довжини n з розрахунку на один символ визначається по формулі







Коди для повідомлень довжини n повинні бути дешифрованими, тому можна скористатися нерівністю (1.8):







Права частина нерівності являє собою вираження для ентропії. Таким чином, ефективність кодування з розрахунку на один символ не може перевершувати величину ентропії повідомлення, що доводити на один символ. Використовуючи формулу (1.5), одержуємо більше зручну з обчислювальної крапки зору оцінку:







Якщо джерело, що породжує повідомлення, є стаціонарним (імовірнісний розподіл  не залежить від позиції символу в повідомленні), нерівність здобуває спрощений вид:







1.2.3 Оптимальна довжина коду

Тому що код виходить для повідомлення в цілому, не можна говорити про коди для конкретних символів, що становлять повідомлення. Проте виникає необхідність визначати деякий внесок у результуючу довжину коду повідомлення, внесень кожним вхідної в нього символом. Фізичний зміст такого внеску - середнє збільшення довжини коду повідомлення, обумовлене входженням у нього даного символу. Позначимо через xi внесок, внесень символом з індексом i (у загальному випадку величина внеску являє собою речовинне число). Через xi1, i2,..., in позначимо внесок, внесень повідомленням s = i1, i2,..., in - Виходячи зі змісту поняття "внесок", для випадку стаціонарної незалежної вибірки логічно зажадати виконання наступних властивостей:



 (адитивність)

, 



де li1, i2,..., in - довжина реального коду повідомлення (ціле число), а M (n) - ненегативна функція, така що M (n) /n - > 0 при n - > оо

Асимптотичне поводження функції M (n) /n дозволяє зробити висновок: 





 (1.9) 



Таким чином, отримане узагальнення нерівності Макміллана на випадок внесків символів у результуючу довжину повідомлень.

Узагальнена нерівність (1.9) дозволяє обчислити точне значення величини внеску xa символу з індексом a для випадку оптимального кодування. Для обчислення точного значення необхідно вирішити задачу про мінімізацію суми 



, 



яка визначає середню ефективність кодування, за умови виконання нерівності (1.9). У крапці мінімуму похідна від зазначеної суми звертається в нуль: 





 (1.10) 



Підстановка рішення задачі про мінімізацію в нерівність (1.9), мабуть, повинне перетворювати його в рівність. Звідси будь-який оптимальний внесок xk легко виражається через внески інших символів:







Підставляючи вираження для xk у рівняння (1.10), одержуємо







Після узяття похідної рівняння здобуває наступний вид:



, або 



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







що з урахуванням виконання рівності у вираженні (1.9) рівносильне







Звідси отримаємо формулу для xa:





(1.11) 



Таким чином, оптимальний внесок символу, що з'являється з імовірністю p: у довжину результуючого коду становить logm p одиниць інформації в системі подання з підставою m. - анный висновок може бути використаний для обчислення оптимальної довжини коду в рамках тієї або іншої імовірнісної моделі. Одержуючи оцінку ймовірності появи чергового символу на деякому етапі кодування, можна точно визначити оптимальну довжину відповідного інформаційного опису.



1.3 Методи генерації коду



1.3.1 Префіксне кодування

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

Геометрична трактування систем префіксних кодів - m-арные дерева. Властивість префікса гарантує відсутність циклів у графі, ребрам якого зіставлені різні значення інформаційної одиниці. Таким чином, граф є деревом зі ступенем розгалуження, що збігає з підставою системи подання інформації m. Слід зазначити, що нумерація ребер може бути здійснена довільним образом; значення має тільки конкретна структура дерева, а точніше - набір відстаней від кореневого вузла до листових вузлів. Ці відстані відповідають довжинам кодів префіксної системи. Крафт показав, що виконання нерівності (1.7) є гарантією існування кодового дерева зі структурою, що відповідає набору довжин , що фігурують у нерівності. Інакше кажучи, якщо система довжин задовольняє нерівності (1.7), можна побудувати систему префіксних кодів з відповідними довжинами. Дане твердження дозволяє відмовитися від розгляду систем кодів, відмінних від префіксних. Будь-яка система дешифрованих кодів задовольняє нерівності (1.7), а виходить, вона може бути без шкоди для ефективності замінена системою префіксних кодів. Нерівність (1.7) стосовно до систем префиксних кодів називають також нерівністю Крафта.

Розглянемо блокове кодування повідомлень довжини n, породжуваних деяким інформаційним джерелом. Як і раніше, позначимо через 



 



імовірнісний розподіл появи j-ro символу повідомлення (sj - відповідний стан джерела), через pi1, i2,..., in - імовірність появи повідомлення "i1, i2,..., in". Відповідно до твердження Крафта, можна побудувати систему префіксних кодів із длинами 



 



(Для доказу досить підставити ці довжини в нерівність Крафта й переконатися в тім, що воно виконується) Оцінимо ефективність кодування з розрахунку на один символ повідомлення:











Використовуючи альтернативне вираження для ентропії (1.5), одержуємо







Для випадку стаціонарного джерела з розподілом імовірностей 



 



маємо:







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



1.3.2 Алгоритм Шеннона

Алгоритм побудови системи префиксних кодів з довжинами, що залежать від імовірностей по формулі , був запропонований Шенноном. Алгоритм працює в такий спосіб. Імовірності появи повідомлень p1,p2,...,pn розташовуються в порядку убування (тут N - потужність множини повідомлень). Не обмежуючи спільності, можна вважати



. 



Як код повідомлення з індексом i беруться перші  m-ичных розрядів числа  так називаної накопиченої ймовірності. Тому що довжини кодів у такій системі не убувають зі зменшенням імовірності й імовірності появи повідомлень із індексами i+1, i+2,...,N відрізняються від імовірності появи повідомлення з індексом i принаймні на , код повідомлення з індексом i не є початком кодів повідомлень із індексами i+1, i+2,...,N. Таким чином, система кодів є префіксною. Розглянемо геометричне трактування алгоритму Шеннона. Інтервал [0,1) може бути розбитий на N підінтервалів 



, 



відповідним повідомленням з індексами i = 1, 2,...,N. Для ідентифікації i-го повідомлення необхідно вибрати деяке число з підінтервалу [ai, bi), представиме як можна меншою кількістю m-ічних розрядів. Для цього потрібно побудувати на інтервалі [0,1) одномірну мережу з постійним періодом, що містить  крапок (місце розташування будь-якої крапки визначається li-розрядним числом), рівно одна з яких (ідентифікуюча) належить інтервалу [ai, bi). Ясно, що шукана мережа повинна мати період, що не перевищує pi, тобто . Звідки отримуємо .

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



1.3.3 Алгоритм Хаффмана

Алгоритм Шеннона має досить високу ефективність, однак він не є оптимальним алгоритмом побудови системи префіксних кодів. Для знаходження оптимального алгоритму необхідно при фіксованому наборі ймовірностей {p1,p2,...,pn} вирішити задачу про мінімізацію суми  за умови виконання нерівності Крафта  (тут li - довжина коду повідомлення з індексом i).

На практиці алгоритм Хаффмана реалізується в такий спосіб. На початковому етапі кожному повідомленню ставиться у відповідність вага, дорівнює оцінці ймовірності появи даного повідомлення. Повідомлення містяться в список, що впорядковується по убуванню ваг. Надалі елементи списку обробляються з використанням ітеративної процедури. На кожному кроці (ітерації) m останніх елементів списку поєднуються в новий елемент, що потім міститься в список замість поєднуваних елементів. Новому елементу списку ставиться у відповідність вага, дорівнює сумі ваг елементів, що заміщають. Кожна ітерація закінчується впорядковуванням отриманого нового списку, що завжди містить на один елемент менше, ніж старий список. Паралельно з роботою зазначеної процедури здійснюється послідовна побудова m-арного дерева. На кожному кроці алгоритму будь-якому елементу списку відповідає кореневий вузол m-арного дерева, що складає з вершин, що відповідають елементам, об'єднанням яких був отриманий даний елемент. При об'єднанні m елементів списку відбувається об'єднання відповідних дерев в одне нове m-арне дерево, у якому кореневий вузол відповідає новому елементу, що поміщає в список, а заміщають елементам, що, списку відповідають дочірні вузли цього кореневого вузла. Алгоритм завершує роботу, коли в списку залишається один елемент, що відповідає кореневому вузлу побудованого бінарного дерева. Для гарантії коректного завершення роботи алгоритму вихідний розмір списку повинен мати довжину, представиму у вигляді n• (m-1) +1. Якщо кількість повідомлень не відповідає цій довжині, список доповнюється до необхідного розміру за рахунок додавання в кінець фіктивних елементів, що мають нульові ваги. Побудоване в результаті описаної процедури дерево називається деревом Хаффмана. Система префіксних кодів може бути отримана шляхом присвоєння конкретних m-арних значень ребрам цього дерева.

Алгоритм Хаффмана має найбільшу ефективність серед алгоритмів побудови префіксних кодів по заданому імовірнісному розподілі1. Очевидний недолік алгоритму - більша обчислювальна складність. Алгоритм доцільно використати в тих випадках, коли імовірнісний розподіл залишається незмінним для досить великого об'єму інформаційної вибірки. Застосування алгоритму Хаффмана у випадку, коли статистичні характеристики інформаційного джерела швидко міняються, сильно утруднено необхідністю здійснення частих змін структури кодового дерева. Галлагером був запропонований ефективний спосіб зміни структури дерева Хаффмана, не потребуючий його повної перебудови. Застосування даного способу хоча й приводить до істотного спрощення хутранизма генерації коду, проте не завжди дозволяє досягти необхідної швидкості обробки інформації. Тим же недоліком володіють і практичні реалізації алгоритму Шеннона.



1.4 Основні результати і висновки



У даній главі були докладно розглянуті різні аспекти імовірнісного підходу в теорії ощадливого кодування. Викладено методи побудови імовірнісних моделей, методи генерації коду змінної довжини на основі імовірнісних розподілів, методи одержання імовірнісних оцінок. Отримано наступні важливі результати:

Сформульовано й доведена нерівність Макміллана для випадку нероздільних кодів. Обчислено величину оптимального внеску символу в результуючу довжину коду повідомлення (див. розділ 1.2.3).

Алгебраїчно доведена оптимальність алгоритму Хаффмана для системи подання інформації з довільною підставою (див. розділ 1.3.3).

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

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


2. Розробка імовірнісних методів для підвищення ефективності кодування



2.1 Квантування



Ефективність ощадливого кодування природного напівтонового зображення (наприклад, фотографічного) методами, описаними в попередньому розділі, у середньому становить декілька бітів на одне закодоване значення колірної матриці. Стосовно до синтезованих зображень (такі зображення можуть містити текст, малюнки, графічні об'єкти й т.п.) ефективність виявляється трохи вище й іноді становить менш одного біта на закодоване значення. Однак існують технології кодування, що дозволяють домогтися істотно більшого результату. Висока ефективність досягається за рахунок того, що при кодуванні стають припустимими деякі інформаційні перекручування. Щоб перекручування були як можна менш помітні, їхні характеристики вибираються з урахуванням особливостей психовизуального сприйняття зображення людиною.

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

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

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

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

Позначимо через ∆ довжину інтервалу при рівномірному квантуванні {параметр квантування). Сукупність інтервалів представима у вигляді [x0+∆-i, x0+∆- (i + 1)). Значення x0 належить речовинному інтервалу [-∆/2, ∆/2) і задає базовий зсув інтервалів при квантуванні. i приймає довільні цілочисельні значення і являє собою номер інтервалу.

Номер інтервалу виступає в ролі кодуємого об'єкта. У процесі декодування по ньому відновлюється шуканий інтервал значень (деквантування). Тому що конкретні значення відновленню не підлягають, при деквантуванні вони заміняються деяким фіксованим числом. Оптимально використати як дане число математичне очікування значень інтервалу. У випадку, коли значення розподілені рівномірно, математичне очікування відповідає середині інтервалу - x0+∆•i+∆/2.

Квантуєма інформаційна вибірка часто представлена числами зі знаком, симетрично розподіленими щодо нуля. Маленькі по абсолютній величині значення звичайно не грають визначальної ролі - їхнє перекручування залишається практично непомітним для нашого сприйняття. У подібних ситуаціях базовий зсув інтервалу x0 має сенс вибирати рівним - ∆/2. При такому виборі значення в околиці [-∆/2, ∆/2) будуть замінятися нулями (так називана мертва зона). З метою поліпшення схеми квантування розмір мертвої зони збільшують, залишаючи незмінними розміри інших інтервалів. Крім підвищення ефективності це дозволяє спростити процедуру квантування: якщо вибрати розмір мертвої зони рівним 2∆, визначення номера інтервалу при квантуванні зведеться до ділення квантуємого значення на параметр квантування. Дане рішення використається в багатьох практичних додатках, зокрема, у стандартах кодування відеоінформації JPEG, JPEG2000, MPEG, Н.261, Н.263.

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

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


2.2 Побудова інформаційного критерію



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

Нехай  матриця з позитивними елементами 



, 



що має  рядків і  стовпців і нехай 



. 



Для кожної матриці  можна визначити функцію



, (2.1)



де  - транспонована матриця, елементи якої є зворотними значеннями елементів матриці .

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



. 



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

Можливість використання властивостей вектора  для рішення завдання кластерізації даних квітів ірису на три класи - virginic, versicol й setosa з покажемо на прикладі. На рис.2.1 показаний графік значень компонент вектора  для всієї вибірки. Як видно найбільші значення компонентів вектора відповідають двом елементам: [7,2 3,6 6,1 2,5] ; [4,3 3,0 1,1 0,1].

На першому кроці з використанням міри близькості



 (2.2)



виявилося можливим розбити всю сукупність характеристик квітів ірису на два кластери по ступені їхньої близькості до виділених елементів по алгоритму. Отримані в результаті кластери, перший - квіти virginic й versicol, другий - квіти setosa. На другому кроці після проведення аналогічної процедури для даних першого кластера спостерігалися 9 помилок, які розподілилися між класами (квітами) як 5 до 4.





Рисунок 2.1 Графік зміни компонент вектора  для всієї вибірки характеристик квітів ірису.



Загальні результати класифікації, представлені у вигляді матриці переплутування



.



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

Повернемося до основної мети нашого дослідження з формування інформаційного критерію. Розглянемо окремий випадок, коли матриця  в (2.1) складається з одного вектора-стовпця . Для цього випадку представимо (2.1) у вигляді



. (2.3)



Легко перевірити, що



1. ;

2.  (2.4)

3. .



На підставі цих властивостей будемо функцію (2.3) називати мірою розходжень компонент вектора  або інформаційною мірою, оскільки, там, де є розходження, там є й інформація. Далі, визначимо



 (2.5)



і шуканий інформаційний критерій



, (2.6)



де () і () - заелементні операції розподілу й множення відповідно.

Область  визначається умовами розв'язуваного завдання. Приведемо приклади використання формули (2.6). Почнемо із простого випадку. Нехай перетворення полягає в заміні вихідного вектора  вектором . Тоді область обмежень  визначиться співвідношеннями , а величина  - рівністю



, (2.7)



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



, (2.8)



що й випливало очікувати.

Розглянемо більше складні й практично важливі приклади.



2.2.1 Оцінка інформативності ознак

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

З погляду змісту поняття "інформативність", можна дати наступне визначення: інформативна ознака - це ознака, що має близькі значення на елементах (об'єктах) одного класу й істотно різні значення на елементах різних класів.

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



. (2.9)



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

Працездатність пропонованого методу покажемо при рішенні ряду завдань. Оцінимо інформативність чотирьох ознак квітів ірису при розбивці його на 3 класи (продовження вище наведеного приклада). Область (2.9) буде складатися із всіх векторів , для компонентів яких виконуються співвідношення: 







У таблиці 2.1 представлені результати оцінки інформативності ознак квітів ірису, а на малюнку 1 - графік значень їхніх характеристик. Низька інформативність перших двох ознак обумовлена їхньою невеликою варіативністю, тоді як для останніх двох, навпаки, спостерігається висока варіативність.


Таблиця 2.1 - Результати оцінки інформативності ознак квітів ірису

Властивості ознаки

Ознаки



чашолисток

маточка



довжина

ширина

довжина

ширина

Інформативність

0,0126

0,0079

0,3205

0,8158

Відносний діапазон зміни

0,6116

0,3980

5,0146

12,1539



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





Рисунок 2.2 - Графіки зміни ознак квітів ірису



2.2.2 Оптимальна градація ознак.

Дуже часто, у завданнях класифікації й розпізнавання образів ознаки, що описують об'єкти спостереження мають різну природу, наприклад, кількісні і якісні. Їхнє спільне використання при класифікації даних, як правило, пов'язане із серйозними труднощами. У зв'язку із цим виникає завдання перетворення кількісних ознак у якісні, або іншими словами, завдання розбивки кількісних ознак на градації. Причому така розбивка повинне бути оптимальним з погляду потреб розв'язуваного завдання. У дійсній статті пропонується метод градації ознак на основі інформаційного критерію (2.6). Це завдання складніше, ніж визначення ознак розпізнавання, оскільки її рішення припускає не тільки визначення значень критерію (2.6), але й визначення значень порогів градації. Залишаючи осторонь деталі, намітимо шлях рішення цього завдання й приведемо приклади.

Нехай  - вектор-стовпець речовинних позитивних чисел упорядкованих по зростанню. Потрібно розбити всі  його значень по ступені близькості на  груп по  значень у кожній (, ). Позначимо . Тоді для завдання (7) область  є 



.



З формули (2.6) видно, що як цільова функція використається функція 



, 



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



 (2.10)



Легко побудувати алгоритм визначення значень  на основі методу динамічних згущень й оцінок внесків (2.10). З використанням цього підходу, авторами розроблений ефективний метод градації значень. Його працездатність покажемо на конкретних прикладах.



2.2.3 Градація перших 100 чисел натурального ряду

У табл.2.2 наведені результати градацій цих чисел. Відзначимо, що при  відносна величина порога 0,21 близька до золотого перетину 0,168.



Таблиця 2.2 - Результати градації перших 100 чисел натурального ряду

Кількість градацій до

граничні значення  

2



3



4



5



10





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



2.2.4 Градація яскравостей зображень

Відзначений у п.1 факт можна використати для градації зображень, коли необхідно більше "часто" градуювати ті області яскравостей пікселей, розходження яких необхідно підкреслити. Для цього досить перейти до градації зображення з матрицею яскравості пікселей , рівного , де  - матриця, всі значення якої дорівнюють максимальному значенню матриці вихідного зображення . Для стислості такий метод градації назвемо "зворотним", на відміну від градації вихідного зображення, що ми назвемо "прямим".

На Рис.3 представлені результати 4-х рівневої (2 біти) градації яскравостей пікселей зображення "Роза". В інтересах зіставлення на всіх 4-х зображень (включаючи вихідне) сума яскравостей пікселей однакова.

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

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



4-х рівневі градуйовані зображення

рівномірна розбивка

пропонований метод



"прямий"

"зворотній"







Вихідне зображення

Графіки зміни критерію інформативності



"прямий" метод

"зворотній" метод







Рисунок 2.3. Результати градації зображення "роза"


3. Розробка ефективного алгоритму кодування зображень на основі зміни градації яскравості



Для написання програми було обрано мову програмування Delphi 7.0, тому що вона містить всі необхідні компоненти для створення віконних додатків, а також багато модулів для роботи із зображеннями.



3.1 Загальна структура програми





початок

Завантаження зображення у програму

Квантування та ентропійне кодування зображення

Розрахунок гістограм зображень

кінець

Вивід отриманих результатів на екран



Рисунок 3.1 - Загальна структура програми.


3.2 Розробка алгоритму основної програми



Розробимо схему алгоритму основної програми, в якій будемо використовувати функції, приведені нижче у розділі:



Початок

Завантаження зображення

Преобразування зображення з кольору у яскравість

Побудова гістограми яскравостей зображення

Вивід зображення на екран

Ентропійне кодування зображення

Побудова гістограми яскравостей зображення

Чи вибрано зображення?

Обробка елементів керування

«Невірний формат зображення»

Вивід отриманного зображення на екран

Чи вірний формат?



Чи вірний формат?

А

Рисунок 3.2- Схема алгоритму основної програми




Звільнення пам’яті



Обробка елементів керування

Вивід гістограм зображень на екран

Зберігання зображення



Кінець

А

Рисунок 3.2- Продовження схеми алгоритму основної програми



3.3 Розробка алгоритму завантаження зображення з файлу



У тому числі, для завантаження нашого зображення ми можемо скористуватися стандартним класом TBitmap, який дозволяє одразу преобразувати. bmp-зображення у матричний вид. При цьому всі параметри зображення зберігаються у відповідних масивах та змінних класу, які ми потім зможемо використовувати для проведення квантування та кодування зображення. Натомість, ми запропонуємо алгоритм, який одразу буде завантажувати зображення із преобразуванням його у 256 градацій сірого відтінку (див. пункт 3.5):


3.4 Розробка перетворення кольорового зображення у чорно-біле



Відповідно до особливостей представлення чорно-білих зображень (256 градацій сірого кольору), кожен піксель такого зображення має відповідати рівню яскравості кольору початкового зображення. Тобто для того, щоб ми змогли перетворити кольорове зображення, нам потрібно порахувати яскравість кожного пікселю зображення, та задати колір відповідної RGB-складної як рівень яскравості попереднього пікселю (нагадаємо, що у чорно-білому зображенні усі компоненти RGB мають однакове значення).

Рівень яскравості кожного пікселя розраховується по формулі

Lij = (30 * Rij + 59 * Gij + 11 * Bij) div 100 (3.1)

Таким чином, кожному пікселю початкового зображення потрібно змінити значення на отримане за формулою (3.1), що приведе до зміни картинки наступним чином:





Рисунок 3.3 Зміна кольору зображення на чорно-білий



3.5 Розрахунки гістограми яскравостей



Вектор яскравості (гистограмма):



 (3.2)



де n - кількість градацій яскравості в зображенні.

Компонента вектора яскравості - це кількість пикселей з даним значенням яскравості:



, k=1. n (3.3)



На основі цих формул, ми можемо побудувати гістограму яскравостей по зображенню, яка буде заполнюватися наступним чином:

Побудувати масив з 256 елементів (кожен елемент якого відповідає одному рівню яскравості нашого зображення), кожен елемент спочатку дорівнює 0.

Заповнити масив наступним чином: взяти піксель зображення, який має координати в матриці [1,1], отримати його яскравість, значення яскравості - номер елемента нашого масива, додати до цього елемента масива 1, перейти до наступного пікселя зображення.

Таким чином, ми отримаємо гістограму яскравості нашого зображення.



3.6 Розробка функції обчислення порогового значення відрізку масиву яскравостей зображення



Для початку, введемо умовні позначення, для спрощення орієнтування у функції GetMedian:

Вхідні дані: GisYar - масив гістограми яскравостей зображення, a1 - початковий елемент відрізку, на якому буде виконуватися квантування яскравостей, a2 - кінцевий елемент відрізку, Koef - коефіцієнт ентропійності, отриманий на основі методу, викладеного у главі 2.2.4

Вихідні дані: Elem - номер елементу масиву, який буде пороговим значенням (тобто відрізок початкового масив GisYar [a1; a2] буде поделено елементом Elem на 2 кластери)

Тимчасові дані: MasTemp - масив довжиною (a2-a1), кожним елементом якого буде сума попередніх його елементів, Sum - проміжна сума.





початок

кінець

MasTemp[a1]:=GisYar[a1];

Sum:=GisYar[a1];

Для i:=a1+1 до a2 виконати:

(на всій довжині відрізку [a1;a2]

MasTemp[i]:=GisYar[i]+MasTemp[i-1];

Sum:=Sum+GisYar[i];

(Кожен наступний елемент є сумою всіх попередніх, також запам’ятовуємо загальну суму

Обчислюємо порогове значення суми:

Sum:=Round(Sum*Koef);

i:=a1;

Враховуючи, що масив MasTemp упорядкован за зростанням, знайдемо таке значення i, щоб MasTemp[i] був ще меншне порогового значення Sum, а MasTemp[i+1] – більше.

Якщо таке не знайдеться, i стане рівним (a2-1).

Якщо різниця між елементами масиву MasTemp[i+1]-MasTemp[i] більша за значення елементу MasTemp[i], то збільшуємо i на один

Результат функції – значення i

Result:=i

Рисунок 3.4 - Алгоритм функції обчислення порогового значення.


3.7 Розробка рекурсивної процедури розділення масиву гістограми яскравостей та складання масиву відповідностей елементів палітри



Введемо умовні позначення процедури DelenieNa2:

Вхідні дані: a1 - початковий елемент відрізку масиву, на якому буде виконуватися процедура, a2 - кінцевий елемент відрізку, level - рівень глибини рекурсії, Maxlevel - максимальна глибина рекурсії для обранох кількості кольорів.

Тимчасові дані: Med - пороговий елементу масиву, отриманий в результаті виконання функції GetMedian, InfCrit - номер кольору нової палітри для зображення, Sootv - масив відповідностей (256 елементів, у який для кожного елементу буде заноситися значення номеру кванту, для якого потім ми отримаємо новий колір). 




початок

кінець

exit

Якщо InfCrit дорівнює кінцевій кількості кольорів – то завершити виконання

Інакше – викликати функцію GetMedian

Якщо level < Maxlevel та 

a2-a1 > 0, то

Для усіх елементів i відрізку масиву [a1;a2] 

Рекурсивно викликати процедуру DelenieNa2

Sootv[i]:=InfCrit

(відповідність номера нового кластера до старого кольору) 

Збільшити InfCrit на один 

Збільшити InfCrit на один 

Рисунок 3.5 - Алгоритм рекурсивної процедури складення масиву відповідностей.


3.8 Розробка функції ентропійного кодування зображення



Введемо умовні позначення функції DecreaseColor, результатом якої стане стисле зображення:

Вхідні дані: bmpPicture - початкове зображення, OldColor - кількість кольорів у початковому зображенні (дорівнює 255), NewColor - кількість кольорів у стислому зображенні, GisYar - масив гістограми яскравостей зображення, Koef - коефіцієнт ентропійності.

Тимчасові дані: Maxlevel - максимальна глибина рекурсії для обранох кількості кольорів, InfCrit - номер кольору нової палітри для зображення, ColNew - масив довжиною NewColor, з новими значеннями яскравостей для отримання стислого зображення, TempMas - тимчасовий масив яскравостей, Sootv - масив відповідностей, TempSootv - тимчасовий масив відповідностей.

MasPos - масив позиції порогових значень.



початок

Створення нового зображення

Встановлення параметрів зображення ідентично до початкового

Обчислення необхідної кількості рекурсій

Виклик рекурсивної процедури DelenieNa2 для отримання попередньої палітри та значень порогів

Запам’ятовування отриманої кількості порогів у NPorog

Обнулення тимчасового масиву відповідностей 

Для всієї довжини масиву відповідностей i:=0 to NewColor

TempSootv[Sootv[i]]:= TempSootv[Sootv[i]]+

GisYar[i],

В масиві будуть заповнені елементи сумою яскравостей у квантах

Запам’ятовування  у MasPos[Sootv[i]] числа i, на якому закінчується квант

Рисунок 3.6 - Алгоритм функції ентропійного кодування.




Доти t = true

For i:=1 to NPorog

Якщо Koef <0.5 то виконати динамічне згущення масива за зростанням, інакше – аналогічно за вбуванням

Якщо можливо посунути порог кванту (TempSootv[i]*Koef < TempSootv[i-1]*(1-Koef) & MasPos[i]>i & MasPos[i] > MasPos[i-1])

Виконати зсув порогу на 1 значення ліворуч, з переміщенням значення яскравості порогового елементу у соседній квант

Temp:=GisYar[MasPos[i]];

TempSootv[i]+=Temp;

TempSootv[i-1]-=Temp;

Dec(MasPos[i]);

Sootv[TempSootv[i]]:=i

(колір з яскрвостю I тепер входить у сусідній квант)

Для I елемента палітри ColNew запам’ятати значення центральної яскравості по всім пікселям кванту, викликавши функцію GetMedian

Рисунок 3.6 - продовження алгоритму функції.




Для всіх пікселей зображ.

Визначити новий колір цього пікселя, звернувшися до масиву відповідностей та нової кольорової палітри

Та змінити колір пікселя на отриманний

Рисунок 3.6 - Продовження алгоритму функції



3.9 Опис використаних компонентів



Компонент TForm

Хоча компонент TForm відсутній у палітрі компонентів, але все-таки має властиві для нього властивості, події.

Отже, компонент TForm це вікно у віконному додатку. Воно може бути мінімум одне, максимальне обмеження на кількість не накладається. Перше створене вікно в додатку автоматично стає головним. При закритті головного вікна додаток завершує свою роботу й займана їм пам'ять звільняється.

Якщо необхідно, щоб головне вікно форми автоматично не з'являлося на екрані, то в події OnCreate для цього вікна, або в програмі DPR до команди створення головного вікна необхідно вказати наступний рядок:



 // Код DelphiApplication. ShowMainForm: =false;



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



 // Код DelphiForm1. Show;



для відображення цього вікна. Тут Form1 - головне вікно додатка.

Даний метод може виявитися корисним для висновку запиту пароля на запуск програми. Саме це діалогове вікно потрібно показати користувачеві перед показом головного вікна, але не роблячи його головним вікном, тобто при закритті вікна уведення пароля, додаток не завершує свою роботу. І при уведенні невірного пароля можна без проблем завершити роботу програми командою



 // Код DelphiForm1. Close;



Або дати команду завершення роботи додатка.

Як уже говорилося в попередніх уроках, кожний компонент у програмі, як і сама форма, має унікальне ім'я, зазначене у властивості Name. Заголовок вікна втримується у властивості Caption. По заголовку вікна користувач довідається про функціональне призначення програми або поточного вікна.

Крім заголовка у верхній частині вікна перебуває іконка й кнопки керування станом. За замовчуванням іконка така ж сама, як і іконка в проекті. Щоб перемінити іконку в поточному вікні необхідно в інспекторі об'єктів вибрати властивість Icon у якому вибрати відповідний файл-малюнок. Файл повинен бути з розширенням ICO.

Для того, щоб перемінити іконку в проекті, потрібно ввійти в меню "Project", далі "Options... ", на вкладці Application ви бачите поточний малюнок файлу проекту. Перемінити його можна кнопкою "Load Icon... ". Іконка проекту зберігається у файлі ресурсів з розширенням RES.

Властивість BorderStyle

bsDialog - У вікна немає іконки. Відображена тільки кнопка керування "Закрити". Розмір вікна постійний. Такий тип вікон застосовується найчастіше в діалогових вікнах, наприклад вікно запиту на збереження проекту, якщо ви намагаєтеся вийти з delphi не зробивши збереження.

bsNone - У вікна немає іконки, кнопок керування, заголовка. Розмір вікна постійний. Закрити таке вікно можна тільки програмно або за допомогою комбінації клавіш Alt+F4. Цей тип вікон застосовується в заставці при запуску програми. На вікні розташований компонент TImage, що містить малюнок.

bsSingle - У вікні присутнє іконка, є заголовок. Кнопки керування згорнути, розгорнути (відновити), закрити. Розмір вікна постійний.

bsSizeable - Тип вікна за замовчуванням. Має всі елементи, зазначені в попереднім значенні властивості плюс зміна розмірів вікна.

bsSizeToolWin - Цей тип вікна встановлений у вікні інспектора об'єктів. Таке вікно не має іконки, є заголовок, кнопка керування "закрити". Можна змінювати розмір вікна.

bsToolWindow - Аналогічний попередньому значенню, за винятком того, що не можна змінювати розміри вікна.

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

Властивість BorderIcons

Ця властивість є вкладеним, обто якщо ви в інспекторі об'єктів натиснете на знак +, то відкриється ще трохи підвластивостей. Властивість BorderIcons має сенс установлювати тільки у відповідних значеннях властивості BorderStyle.

biSystemMemu - указує, відображати чи ні іконку й кнопки керування вікном.

biMinimize - відображати чи ні кнопку керування "згорнути".

biMaximize - відображати чи ні кнопку "розгорнути" ("відновити").

biHelp - відображати чи ні кнопку "допомога".

Можливі два значення для цих властивостей: true (істинно) і false (ложно).

Властивість Position

poDefault - Windows саме визначає розмір і положення вікна.

poDefaultPosOnly - довільне положення вікна.

poDefaultSizeOnly - тільки довільний розмір вікна.

poDesigned - такой-жі розмір і положення, кокою був при розробці. Значення за замовчуванням. Вам належить знати, що не на всіх комп'ютерах установлене такий же екранний дозвіл, яке є у вас, і значить вікна в програмі будуть перебувати в зовсім іншім місці.

poDesktopCenter - вікно перебуває в центрі екрана.

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

Властивість WindowState

wsMaximized - Вікно спочатку буде розгорнуто у весь екран.

wsMinimized - Вікно спочатку буде згорнуто в значок.

wsNormal - Вікно має ті ж розміри, що й під час розробки. Значення за замовчуванням.

Компонент TEdit

Цей компонент не містить власного коду, у ньому тільки опубліковані властивості його предка TCustomEdit. Він являє собою редагує строку, що (далі - просто редактор).

Стиль обрамлення цього компонента

(Pb) property BorderStyle: TBorderStyle;

за замовчуванням дорівнює bsSingle. Якщо властивість

(Pb) property AutoSize: Boolean;

дорівнює True, компонент змінює свою висоту залежно від розміру шрифту (властивість Font). Для того щоб зміни мали місце, повинен ще бути встановлений стиль обрамлення bsSingle.

Текст, що вводить у редактори, може автоматично піддаватися деяким перетворенням.

Перетворення, що задає властивістю CharCase, дозволяє автоматично перетворювати всі символи тільки у верхній або тільки в нижній регістр:

(Pb) property CharCase: TEditCharCase;

TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase);

За замовчуванням установлений стиль ecNormal і перетворення не відбувається. Аналогічно, властивість

(Pb) property OEMConvert: Boolean;

визначає необхідність автоматичного перетворення символів, що вводять, з кодування OEM в ANSI і назад. Така властивість часто буває потрібно при обробці тексту в кодуванні MS-DOS.

Дві наступні властивості описують поводження виділеного тексту при переході фокуса. Перше з них

(Pb) property AutoSelect: Boolean;

описує реакцію елемента, що редагує, при одержанні фокуса. Якщо воно встановлено в True (за замовчуванням це так), то при одержанні фокуса уведення весь текст у ньому виділяється незалежно від стану властивості SelText. Якщо AutoSelect установлено в False, то при одержанні фокуса виділяється лише те, що було виділено до його втрати.

Після втрати фокуса редактором виділений у ньому текст звичайно губить колірне виділення. Щоб воно залишалося, встановіть в False друга властивість:

(Pb) property HideSelection: Boolean;

На довжину тексту може бути накладене обмеження.

Властивість (Pb) property MaxLength: Integer;

визначає максимальну довжину тексту редактори в символах. Якщо значення цієї властивості дорівнює 0, то обмежень на довжину тексту немає.

Властивість PasswordChar призначена для уведення пароля з використанням редактора:

(Pb) property PasswordChar: Char;

Його значення - це символ, використовуваний для відображення замість будь-яких символів, що вводять.

Можна заборонити можливості редагування тексту. Якщо значення властивості:

(Pb) property Readonly: Boolean;

дорівнює True, текст змінити не можна.

Ви можете відстежити зміни тексту в редакторі, обробляючи вступників події:

(Pb) property OnChange: TNotifyEvent;

Компонент TButton

TObject - > TPersistent - > TCornponent - > TControl - > TWinControl - > - *TButtonControl - > Tbutton

Звичайна кнопка Windows. У цьому компоненті опубліковані тільки властивості Default, Cancel, Caption, ModalResult і OnClick. Подвійний щиглик на кнопці не передбачений.

Компонент TImage

Цей компонент служить надбудовою над класом TPicture і замикає всю ієрархію графічних об'єктів VCL. Він призначений для показу на формі зображення: бітової карти (TBitmap), метафайла (TMetafile), значка (TIcon).

Властивість (Pb) property Picture: TPicture;

служить контейнером для графічного об'єкта одного з перерахованих класів.

Як канва використається канва об'єкта Picture. Graphic - тільки якщо поле Graphic посилається на об'єкт класу TBitmap:

(Ro) property Canvas: TCanvas;

Якщо це не так, то спроба звертання до властивості викличе виняткову ситуацію EInvalidOperation, тому що малювати на метафайлі або значку не можна. Будьте уважні із цією властивістю.

Наступні три властивості визначають, як саме Tpicture розташовується в робочій області компонента:

(Pb) property AutoSize: Boolean;

означає, що розміри компонента настроюються по розмірах графічного об'єкта, що втримується в ньому. Установлювати його в True потрібно перед завантаженням зображення з файлу або буфера обміну;

(Pb) property Stretch: Boolean;

якщо ця властивість установлена в True, те зображення "натягається" на робочу область, при необхідності зменшуючи або збільшуючи свої розміри. Якщо воно встановлено в False, то відіграє роль наступна властивість;

(Pb) property Center: Boolean;

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

Компонент TLabel

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

Нижче наведені властивості компонента:

 (Pb) property Caption: TCaption;

TCaption = string [255] ;

Містить рядок з виведеним текстом. 

 (Pb) property Alignment: TAlignment;

Установлює правило вирівнювання тексту - по правому, лівому краї або по центрі клієнтської області.

 (Pb) property AutoSize: Boolean;

У випадку True відбувається автоматичне приведення розмірів компонента до розмірів тексту й висоті шрифту.

 (Pb) property ShowAccelChar: Boolean;

Показує, чи відображається в TLabel акселератор (символ, перед яким коштує знак амперсанда - '&'). Якщо воно дорівнює False, амперсанд ніяк не інтерпретується. У випадку True акселератор виділяється в рядку підкресленням і натискання клавіш <А11>+<символ> приводить до передачі фокуса вікну FocusControl (тому що TLabel сам не є віконним компонентом). 

 (Pb) property FocusControl: TWinControl;

Визначає віконний компонент, якому посилають повідомлення про уведення акселератора.

 (Pb) property Transparent: Boolean;

Прозорість компонента. Якщо властивість установлена в True, то при перемальовуванні елемента керування не відбувається зафарбовування клієнтської області. У противному випадку - відбувається зафарбовування кистю bsSolid і кольорами Color.

 (Pb) property WordMrap: Boolean;

Визначає можливість розриву слів у випадку, якщо довжина виведеного тексту перевищує ширину компонента.


4. Тестування програми



У цьому розділі дипломного проекту ми протестуємо нашу програму на стиснення кольорового зображення "восходження". Для тестування було обрані прямий та зворотній методи кодування, з глибиною кольору отриманого зображення 4 та 16 кольорів.

Початковий розмір файлу у форматі. bmp - 1.44 Мб. Розглянемо якість зображення в процесі кодування:





Рисунок 4.1 Метод зворотнього кодування з глибиною кольору 4





Рисунок 4.2 Метод прямого кодування з глибиною кольору 4




Рисунок 4.3 Метод зворотнього кодування з глибиною кольору 16





Рисунок 4.4 Метод прямого кодування з глибиною кольору 16



Як ми бачимо, "прямий" метод показав гарну чутливість до малих значень пікселей, "зворотній" - виділив всі яскраві ділянки вихідного зображення. При цьому всі 4 отриманних зображення мають гарну деталізацію, і чоловіче око майже не помічає різниці між зображеннями, особливо при глибині яскравостей кольорів зображення встановленого у 16.

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

В результаті зберігання отриманих файлів зображень, їх розмір зменшився до 240 Кб, що становить 1/6 розміру початкового файлу. При цьому, ці зображення можуть бути додатково закодовані у інший формат, оснований на довжині однакових кодів - тому що в наших отриманих зображеннях є великі одно яскраві частини, його розмір може зменшитися до 40-50 Кб, що майже у 30-35 разів менше за початкове зображення. Звісно, це дуже економить місце на жорсткому диску.

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

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


5. Техніко-економічна частина



5.1 Позначка й призначення



Розроблений комплекс програмного забезпечення (ПО) дозволяє стискати чорно-білі зображення з урахуванням аналізу енропійності.

Програма уявляє собою розробку програмного пакету для стиснення зображеннь.

Програмне забезпечення призначене для експлуатації в вищих учбових закладах на персональних комп’ютерах.

Програмне забезпечення, розроблене в дипломі, складається з декількох файлів програмного коду, займає 50Мб і призначено для використання на персональних комп'ютерах IBM PC/AT або сумісних з ними.

Швидкість виконання програми залежить в більшості тільки від людини, що керує процесом.

Пропонований комплекс ПО:

1) Створює файл зображення на основі початкового файлу зображення, який має менший розмір, але натомість менше кольорів. При створенні файлу використовується аналіз ентропійності.

2) Зберігає отриманний файл зображення, та інформує користувача о часі на виконання стиснення, та о розмірі отриманного файла.

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

Програмний продукт, що реалізовує це планування розроблений на мові Delphi 5.0 та призначений для персональних комп'ютерів IBM PC/AT або сумісних з ними.

Мінімальна конфігурація ПЕВМ - стандартна конфігурація IBM-сумісних ПК, процесор з частотою не менше 750 МГц, ОЗП обсягом не менше 64 Мбайт, жорсткий диск обсягом не менше 4 Гбайт, сумісні монітор та відео адаптер, маніпулятор типа “миша”.

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



5.2 Оцінка ринку збуту



При аналізі ринку збуту перед нами ставитися завдання відповісти на наступні питання: хто, чому, у якому обсязі, коли й за якою ціною може купити пропонований до розробки продукт.

Ціль цього дослідження - сегментація ринку й визначення ємності сегмента.

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

Сегмент ринку - це особливим образом виділена частина ринку, група споживачів, чи продуктів підприємств, що володіють визначеними загальними ознаками.

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

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

Основними вимогами споживачів є простота використання, наочність та якісна обробка інформації.

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

Основним регіоном при продажі розробленого програмного продукту є м. Харків і вся держава Україна, але не виключений продаж і за її межами.

Швидкість виконання програми залежить в більшості тільки від людини, що керує системою стиснення. Кількість продажу по роках: 1й рік - 18 продаж, 2й року - 25 продаж, Зй рік - 19 продаж. Для отримання прибутку необхідно продати 30 екземплярів.

Максимальне кількості потенційних споживачів в даному регіоні - 1200.

Основні споживачі сегменти.

Сегментація ринку по споживачах проводитися за наступною схемою:

1. Визначення параметрів сегментації: галузі використання.

2. Вибір параметрів сегментування: категорії користувачів.

Інформація представлена у виді табл.9.2, стовпці якої відповідають одному параметру, а рядка - іншому, а її елементи це сегменти ринку по обраних параметрах.


Таблиця 5.1 - Прогноз обсягу продаж продукції

Період

Споживачі

Обсяг продажів

1

2

3

Для першого року реалізації

Січень

Лютий

Березень

Квітень

Травень

Червень

Липень

Серпень

Вересень

Жовтень

Листопад

Грудень

Видавчничі підприємства, фотографи, програмістські контори

1

1

2

2

2

1

2

1

2

1

1

2

Усього



18

Для першого року реалізації

I

II

III

IV



Видавчничі підприємства, фотографи, програмістські контори

5

8

7

5

Усього



25

Для третього року реалізації

Усього

Видавчничі підприємства, фотографи, програмістські контори

19



Таблиця 5.2 - Сегментація ринку по споживачах

Області використання

Код

сегмента

Споживачі





I

II

III

1

2

3

4

5

Видавничі підприємства

Фотографи

Програмістські контори

А

Б

У



٭





٭

٭

٭



I - керівники підприємств.

II - обслуговуючий персонал.

III - користувальницький персонал.

Сумарна потреба орієнтованої ємності сегментів по галузях наведена в табл.5.3.



Таблиця 5.3 - Аналіз ємкості сегментів ринку

Області використання (сегменти) 

Кількість об'єктів, що будуть використовувати програму

Передбачуване число продажів одному об'єкту

шт. 

Передбачувана ємність сегмента

шт. 

1

2

3

4

Видавничі підприємства

Фотографи

Програмістські контори

25

25

250

20

4

1

500

100

250

Разом ємкості





850



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



Таблиця 5.4 - Параметрична сегментація ринку

Параметри

Код сегментів

Підсумкова оцінка

Відсоток



А

Б

В





Число операторів

3

4

5

12

11,7

Мінімальний об`єм ОЗУ

4

4

4

12

11,7

Кількість рівней стиснення

5

5

5

15

14,7

К-ть коментарів

4

3

4

11

10,78

Ціна

5

5

5

15

14,7

Швидкість виконання

4

4

4

12

11,7

Витрати на адаптацію к даним споживача

3

3

3

9

8,82

Налоги страхові

взноси

4

4

4

12

11,7

Разом

24

25

26

75

100



За результатами табличного розрахунку можна зробити висновок, що найбільш важливими параметрами на споживчому ринку є: к-сть рівней стиснення, мінімальний об`єм ОЗУ, швидкість виконання і ціна. А найбільш високі вимоги до сукупності якісних параметрів розроблювального прибудую пред'являють програмісти.



5.3 Оцінка конкурентноздатності



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

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

Оцінка конкурентноздатності виробляється по технічних й економічних характеристиках.

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

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

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

Як сервіс розроблений ПП підтримує:

вбудована система зберігання файлів, можливість відкривати файли найпоширеніших графічних форматів - bmp та jpeg.

система відображення поточних результатів стиснення, які можна побачити не виходячи з програми;

організацію всіх результатів у вигляді файлів зображеннь, що дозволяє багатократне їх використання надалі;

призначений для користувача інтерфейс, що полегшує роботу з системою.

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

Тому розрахунок узагальненого показника якості проводитимемо в

порівнянні даного ПП з варіантом даної програми. Початкові дані для розрахунку приведені в табл.4.7



Таблиця 5.5 - Розрахунок узагальненого показника якості



Параметри



Од.

виміру

Вісом ість,

В,



Абсолютне значення параметрів



Узагальнення значень показників









Новий

ПП Р1





Гіпотетичний продукт

Новий ПП

Гіпотетичний продукт











Віднос.

Ед. показник, Мп



В1*Мп

Віднос.

Ед. показник, Mg

В1*М,g

1. Число операторів



0.1

7500

12000

1.08

0,108

1.5

0.5

2. Мінімаль-ний об`єм ОП

Кб

0,15

10 Мб. 

20 Мб. 

2,5

0.25

1.2

0.12

3. Швидкість виконання



ед. 

0.1

3

5

2.0

0,2

1,0

0.1

4. Кількість коментарів

ед. 

0.1

 540

250

1.75

0,175

1,0

0,2



Параметри



Ед.

виміру

Вісом ість,

В,



Абсолютне значення параметрів



Узагальнення значень показників











Новый ПП Р1





Гіпотетичний продукт







Новый ПП Р1

Гіпотетичний продукт

Віднос.

Ед. показник, Мп



В1*Мп

Віднос.

Ед. показник, Mg

В1*М,g

5. Цена продажу



Тис грн. 

0,2

0,1

0,5

1,5

0,5

2,0

0,24

6. Витрати на навчання

Тис грн. 

0,25

0,1

0,2

1

1,25

1,2

1,5

7. Витрати на адаптацію к даним споживача



||--



0,05



1



0,8



1,9



0,4



1,0



0,1

Налоги страхові

взноси



||--



0,05



2



2



1.9



0,1



2,0



0,2

Всього

 

1,0







2,983



2,96



Величина відносного показника якості обчислена за формулою:



 при цьому Мп >1,0



З таблиці можна укласти, що розроблювальний пристрій по основних параметрах не уступає гіпотетичному.



5.4 Стратегія маркетингу



Основне завдання - пояснити потенційним партнерам й інвесторам головні елементи нашого плану маркетингу, також завдання вийти на ринок ПП м. Харкова, а потім й України.

Схема поширення товарів.

Даний пристрій буде реалізовуватися через:

а) Видавничі підприємства;

б) Програмістські контори;

в) Часні програмісти та фотографи, знавці на роботі із зображеннями



5.4.1 Оцінка витрат на розробку продукту

Розраховуємо витрати на науково-дослідну роботу, проведену при розробці програмного продукту. Ці витрати визначаємо на основі підрахунку трудомісткості виконаних робіт: вивчення опису завдання і її постановки, розробка алгоритмів, їх програмна реалізація і відладка програми, складання документації.

Трудомісткість на НДР в людино-дні обчислена по формулі: 







де Тоф - трудовитрати на вивчення опису завдання і формулювання її постановки;

Та - трудовитрати на розробку алгоритму програми;

Тс - трудовитрати на розробку схеми алгоритму;

Тп - трудовитрати на розробку програми;

То - трудовитрати на відладку програми на тестових прикладах;

Тд - трудовитрати на оформлення документації.

Трудовитрати всіх видів визначаються через умовну кількість операторів (Q) програми, що обчислюються за формулою







де: q - передбачувана кількість команд програми;

До - коефіцієнт складності програми;

P - коефіцієнт корекції програми;

n - кількість корекцій програм.

У даному програмному комплексі передбачуване число команд програми - 270. Оскільки програмний комплекс розроблений для вирішення задач в реальному масштабі часу, і потрібна висока якість обробки даних, що вводяться, то коефіцієнт складності програми К= 1,5. При відладці програми було проведено 10 корекцій, з них 5 з коефіцієнтом 0.85 і 3 - з коефіцієнтом 0.5, і 2 - з коефіцієнтом 0.4 Виходячи з цих даних можна обчислити умовну кількість операторів програми



Q =500*1.8* (1+ (5*0.85+3*0.5+2*0.4)) = 5 895 усл. операторів.



Трудомісткість на вивчення опису програми і формулювання її постановки визначаємо по формулі









де:

V - індивідуальна продуктивність виконавця (команд/годину);

До - коефіцієнт кваліфікації виконавця;

g - коефіцієнт, що враховує якість опису.

Трудовитрати на решту видів робіт розраховуємо по формулі







де:

i - вид роботи;

V - продуктивність виконавця для i-го виду робіт.



Таблиця 5.6 - Дані продуктивності виконавця

Вид роботи

Вид роботи Продуктивність, команд/час

Продуктивність команд/год

Вивчення опису завдання, формулювання постановки, завдання

80

Розробка алгоритмів рішення задачі

 90

Складання схеми програми

 55

Розробка програми

 95

Відладка програми 5

 70

Оформлення документації

 90



Розрахунок трудовитрат, проведений відповідно до цих даних, представлений в Табл.5.7.



Таблиця 5.7 - Розрахунок трудовитрат

Вид роботи

Розрахункова кількість людино/днів

1. Опис і формулювання

То= 6,9

2. Складання алгоритмів

та= 6,82

3. Складання схеми програми

Тс=11,16

4. Розробка програми

Tn=6,46

5. Відладка програми

То= 8,77

6. Підготовка документації

Тд = 6,82

РАЗОМ

т= 46,93



Коефіцієнт кваліфікації приймаємо рівним 1,2. Розраховуємо заробітну плату розробника (Ззп представленого ПП). Розрахунок виконуємо по формулі:







де:

Здн, - середньоднівна заробітна плата розробника:







де:

Змес - місячна зарплата розробника Приймаємо 1800 грн.

Ф - кількість робочих днів в місяці (22).







Експлуатаційні витрати: 

де Тмв - час відладки програми на ЕОМ.







Смч - вартість машино-години роботи ЕОМ. Приймаємо 2 грн.

m - витрати машинного часу на відладку однієї команди. (т-1 мін).







Решту статей витрат на розробку ПП виконуємо в Табл.5.8



Таблиця 5.8 - Розрахунок витрат на розробку програмного продукту

№ пп

Найменування статей затрат

Сума, грн. 

1. 

Зарабітна плата розробника

3 839

2.



Відчислення на соц. заходи и в т. ч.:

а) відчислення на мед. страхування (2,5% від п.1)

б) пенсійний фонд (32% от п.1);

в) відчислення у фонд зайнятості (2,5% от п.1);

г) страхування по травматизму (0,84%)





95,98

1 228

95,98

32 24,4

3. 

Вартість машинного часу



163,25

4. 

Комунальний податок

10,76

5. 

Накладні витрати (70% п.1) 

2 687

6. 

Вартість матеріалів

50,0

7. 

Ітого Зр 8 202




Прибуток П обчислюємо як 50 - 100% від витрат на розробку ПП



П = 0,5 Зр = 0,5*8 202 = 4 101 грн.



Максимальна ціна ПП, що розробляється, буде:



Цmax= l,2 (Зр + 1,3 П) = 1,2 (8 202 + 1,3*4 101) = 16 239 грн.



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

Витрати на тиражування складаються з вартості дискет І машинного часу, необхідного для розробки і відладки програми і на оплату праці виконавця. Мінімальну ціну Цmin визначуваний по формулі:



Цmin=1,2 (Зтір | Зпл | 1,3П`)



де Зтір - витрати на тиражування ПП



Зтир = Смч-Т1+Зд + Зи



де

Т1 - час копіювання системи, година (приймаємо 2 години);

Зд - вартість диска, грн (приймаємо 1 грн);

Зи - зарплата виконавця, грн в годину;

Зад - витрати на адаптацію (приймаємо 5% від 3)

П' - прибуток з одного продажу, грн;



Зтір = 2 *2+100+ 10 = 114 грн;

Зад = 0,05 • 8 202= 410,55грн;

П'=0,5 (114 + 410,55) = 262,05 грн. Мінімальна ціна буде:

Цmin= 1,2 (114 + 410,55+ 1,3*262,05) = 1 038 грн.



Виходячи з отриманих результатів Цmax і Цmin встановимо ціну без ПДВ Цлрод = 1 500 грн.



5.4.2 Реклама

Для вступу на ринок реалізації даного пристрою робить одним з основних упорів у маркетинговій стратегії на проведення рекламної компанії. Від цього залежить успіх просування товару.

Основний акцент у рекламі робиться на низьку ціну програми, його сумісність по всіх параметрах з найсучаснішими Операційними Системами.

Реалізація реклами.

Статті на поширених інтернет-сайтах та форумах, видання рекламних проспектів, теле - і радіо реклама, рекламні оголошення в наукових журналах і газетах, проспектах ЕОТ.

Сума, необхідна для реалізації рекламної компанії складе близько 30000 грн.

Методи стимулювання продажу.

Таким чином, планується розширити збут продукції за рахунок нових форм залучення покупців

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

Для успішної рекламної компанії необхідно опублікувати оголошення в 5-6 газетах і подати оголошення в комп'ютерній мережі і в Інтернет.

Вартість передачі 1 Мб інформації в рекламному оголошенні комп'ютерній мережі Relcom для комерційних телеконференцій 0,01 USA. Відповідно до курсу вартість оголошення, що містить 1 Мб інформації складає 1грн.

Вартість 1 см рекламного оголошення в газеті "Прем’єр" складає 0,05 грн. Розміщення одного рекламного оголошення розміром 4x5 см коштуватиме



10 (4x5) = 10 грн.



Протягом трьох років рекламні оголошення необхідно зробити 7 разів: 3 рази за перший рік і по два рази за другий і третій роки реалізації, що складе 70 грн.

Вартість рекламних оголошеннь на форумах - безкоштовно

Вартість реклами на поширених сайтах - від 3000 гривень/день. Для успішного виконання потрібно провести якнайменше 6 днів реклами, що складе 18000 гривень.

Вартість печатки листівок, що будуть роздані, складе близько 2000 гривень, а оплата за роздачу цих листівок - 9000 гривень.



5.5 Оцінка ризику і страхування



Для розробленого програмного продукту, що є об'єктом інтелектуальної власності, можливі наступні види ризику:

несанкціоноване копіювання з метою подальшого використання (з вірогідністю до 50%);

теж з метою продажів (з вірогідністю до 10%).

зменшити ступінь ризику можна двома способами: самострахування і страхування за допомогою страхових компаній.

Самострахування передбачає забезпечення контролю за ЕОМ і за самою системою і систему захисту інформації. Способами захисту інформації в даному випадку є:

контроль за доступом до терміналів;

контроль за доступом до програми і процесів її використання

створення архівних копій інформаційних файлів, що зберігаються в пам'яті ЕОМ.

Кодування інформації шляхом криптоалгоритмов

І реалізація цих заходів, в принципі, не особливо скрутна. Але також є можливість зменшити ризик за допомогою страхування, і, враховуючи що сучасні страхові компанії, маючи в своєму розпорядженні ексклюзивні ліцензії, мають можливість проводити всі види захисту об'єктів інтелектуальній власності з безумовним вкладенням статті 27 Загальній декларації прав людини. В даному випадку, користуючись послугами СНО "Оранта", маємо розмір страхової премії у розмірі 1% ціни програмного продукту, що складе 15 грн. в місяць.



5.6. Фінансовий план



Цей розділ Бізнес - плану узагальнює матеріали попередніх розділів і представляє їх у вартісному виразі, містить наступні документи:

Таблицю доходів і витрат;

Графік досягнення беззбиткової.

Цьому передує складання карт npoгнозів руху готівки для 1,2 і 3-го років реалізації Пп. Для першого року реалізації карта прогнозів складена на кожен місяць, для другого - по кварталах, для третього - в цілому по року. До карт прогнозу вноситься графа "готівка", тобто різниця між доходами і сумою витрат. Карти прогнозів готівки для 1, 2 і 3-го років реалізації ПП представлені відповідно в табл.4.5, 4.6, 4.7


Таблиця 5.9 - Карта руху готівки за 1-й рік реалізації

Доходи та витрати

 Сума, тис. грн. 





I

II

III

IV

V

VI

Об`єм продаж



 5

 4 

 

 6



Доход від реалізації



7,5 

6



 9



 ПОСТІЙНІ

Зарплата реалізації та налоги

 0,9

0,9

0,9

0,9

0,9

 0,9





Накладні витрати

1,1

1,1

1,1

1,1

1,1

1,1





Страхові внески

0,15

0,15

0,15

0,15

0,15

0,15





Витрати на рекламу

0,07









0,07 





Всього

 2,22

2,15

2,15

2,15

2.15

 2,22

 ЗМІННІ

Витрати на тиражування



0,118

0,118











Налоги



0,25

0,25



0,25







Витрати на адаптацію



0,15

0,15



0,15







Всього



0,518

0,518



0,518



Готівка

2,22

4,832

3,332

2,15

 6,332

 2.22



Таблиця 5.10 - Карта руху готівки за 2-й рік реалізації

Доходи та витрати

 Сума, тис. грн. 

Всього





I кв. 

II кв. 

III кв. 

IVkb. 





Об`єм продаж

8

6

6

5

25

 ПОСТІЙНІ

Зарплата реалізації та налоги

2,7

2,7

2,7

2,7

10,8





Накладні витрати

2,5

3,6

3,9

4

14





Страхові внески

0,45

0,45

0,45

0,45

1,8





Витрати на рекламу

0,14



0,14



0,28 





Всього

5,79

6,75

7, 19

7,15

26,88

 ЗМІННІ

Витрати на тиражування

0,354



0,354



0,708 





Налоги

0,5

0,75

0,5

0,25

 2





Витрати на адаптацію

0,30

0,30

0,45

0,15

1,2 





Всього

 1,154 

1,05

1,304

 0,4 

3,908

Готівка

5,056

1,2

0,506

0,05

6,712



Таблиця 5.11 - Карта руху готівки за 3-й рік реалізації

Доходи та витрати

Сума, тис. грн. 

Об`єм продаж

19

 ПОСТІЙНІ

Зарплата реалізації та налоги

10,8





Накладні витрати

10,1





Страхові внески

1,8





Витрати на рекламу

0,4 





Всього

23,1

 ЗМІННІ

Витрати на тиражування

0,708





Налоги

2,1





Витрати на адаптацію

1,5





Всього

4,308

Готівка

1,092



Таблиця 5.12 - Карта руху готівки



Найменування показника

 Сума, тис. грн. 

Ітого 





Поч.

реаліз. 

1 рік

2 рік

З рік





Кількість продажів



31

 25

19

75

Доход від продаж 

 0 

46,5

 37,5 

28,5

112,5

 Постійні витрати

 Витрати на розробку

Зарплата розробника

1,82







1,82









Вартість матеріалов

0,6







0,6









Вартість машинного часу

0,163

 





0,163









Відрахунок на соціальне страхування

3,65







3,65









Відрахунок в фонд занятости

1,1







1,1









Накладні витрати

2,48







 2,48 





З/п реалізації та налоги



10,8

10,8

10,8

32,4



Таблиця 5.13 - Карта руху готівки



Найменування показника



 Сума, тис. грн. 

Ітого



Поч. реаліз. 

1 рік

2 рік

3 рік





Накладні витрати при реалізації



13,2

14

10,1

37,3

 Змінні витрати

Страхові внески



1,8

1,8

1,8

5,4



Витрати на рекламу



0,35

0,28

0,4

1,03



Витрати на тиражування



0,708

0,708

0,708

2,124



Налоги



1,6

2

2,1

5,7



Витрати на адаптацію



0,9

1,2

1,5

3,6



Всього

10,613

29,358

30,788

27,408

98,167

Чистий прибуток

-10,613

17,142

6,712

1,092

14,333



Визначаємо точку беззбитковості+такий об'єм продажів, при якому окупаються усі витрати. Аналітично можна визначити по формуле: 



, де



Зпост - постійні витрати на термін реалізації ПП, грн; Зпост =25,37 тис. грн.

3Р - витрати на розробку ПП, грн.3Р =10,613 тис. грн.

Цед - ціна одиниці продукції, грн;

Зпер - змінні витрати на одиницю продукції, грн.

Зпост і Зр визначаються по таблиці доходів і витрат

Цед = 1 500 грн; Зпер = Зпер/Цород = 4 308: 31=138,96 грн.

Виходячи з цих даних визначаємо точку беззбитковості для кожного року: 











Рисунок 5.1 - Графік досягнення беззбитковості



5.7 Висновок



Проведений аналіз дозволяє зробити висновок про доцільність розробки та продажу системи стиснення відеоданих.

Потенціальними СДО покупцями будуть: Видавчничі підприємства, професійні фотографи, програмістські контори, знавці на зображеннях.

Собівартість продукту становить 29,358 грн., прибуток у перший рік - 4650 грн. В другий рік випуск буде десь 25 екземплярів програми, об’єм реалізації буде 37500 грн., собівартість - 30 788 грн., прибуток - 6 712 грн. У третій рік при реалізації 19 екземплярів програм та об’єму продаж 28 500 грн., собівартість буде 27 408 грн, а прибуток - 1 092 грн. За три роки реалізації планується отримати прибуток у розмірі -14 333 грн.


6. Охорона праці і навколишнього середовища



В даному розділі дипломного проекту на тему “Система стиснення відеоданих на основі аналіза ентропійності" розглядаються питання створення оптимальних умов роботи оператора, користувачів розробляємого програмного продукту.



6.1 Основні питання охорони праці



Охорона праці - це система правових, соціально-економічних, організаційно-технічних, санітарно-гігієнічних і лікувально-профілактичних заходів та засобів, спрямованих на збереження здоров'я і працездатності людини в процесі праці [17].

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

Kласифікація небезпечних та шкідливих виробничих факторів встановлена ГОСТ 12.0.003-74 [21]. За характером та природною впливу всі небезпечні та шкідливі фактори поділяються на чотири групи: фізичні, хімічні, біологічні та психофілогічні. Їх основна характеристика:

1) фізичні:

підвищена швидкість руху повітря;

підвищена або понижена вологість;

підвищений або понижений атмосферний тиск;

недостатня освітленість;

конструкції, що руйнуються;

підвищений рівень статичної електрики та ін.

2) хімічні:

хімічні елементи, речовини та сполуки, які перебуваються у різному агрегатному стані (твердому, газоподібному, рідкому);

які різними шляхами проникають в організм людини (через органи дихання, через шлунково-кишковий тракт, через шкірні покрови та слизові оболонки);

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

3) біологічні:

макроорганізми (рослини та тварини);

мікроорганізми (бактерії, віруси, рикетсії, спірохети, грибки, найпростіші).

4) психофізіологічні:

фізичні перевантаження (статичні, динамічні);

нервово-психічні перевантаження (розумові перевантаження, перевантаження аналізаторів, монотонність праці, емоційні перевантаження).

Небезпечні та шкідливі фактори дуже часто бувають прихованими, неявними або ж такими, які важко виявити чи розпізнати. Це стосується будь-яких небезпечних та шкідливих факторів, так само як і джерел небезпеки, які породжують їх.



6.2 Промислова санітарія



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


6.2.1 Мікроклімат

Метеорологічні умови на виробництві або мікроклімат визначають наступні параметри: температура (C), рухливість (м/с), відносна вологість повітря (%) і інтенсивність теплового випромінювання.

У відповіді до ГОСТ 12.1 005-88 [22] встановлюються оптимальні умови, при виборі яких враховується пора року та категорія роботи.

За затратами енергії розробка програмного продукту є легкою фізичною роботою (сидяча робота, не потребує фізичного навантаження) - категорія 1а.

Дипломна робота характеризується напруженою розумовою працею.

Тому обрані оптимальні параметри мікроклімату, що наведені у таблиці 6.1.

Приміщення обладнане системами централізованого опалення (загальне парове), кондиціювання повітря та штучною припливно-витяжною вентиляцією відповідно до СНиП 2.04.05-91 [23].



Таблиця 6.1 - Оптимальні параметри мікроклімату

Категорія роботи по енергозатратам

Пора року

Температура повітря, С

Відносна вологість повітря,%

Швидкість руху повітря,

м/с



легка 1а

Холодна

22-24

40-60

0,1



Тепла

23-25







6.2.2 Виробниче освітлення

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

Природне освітлення підрозділяють на бічне, верхнє, комбіноване.

В приміщенні використовується бічне природне освітлення, що здійснюється крізь бічні вікна. Воно повинне забезпечувати коефіцієнт природної освітленості (КПО) не нижче 1,5% СНиП 11-4-79 [24].

Загальне освітлення повинно бути рівномірним.

Штучне освітлення приміщення з робочими місцями, обладнаними відеотерміналами ЕОМ загального та персонального користування, має бути обладнане системою загального рівномірного освітлення. Даний вид штучного освітлення і використовується на робочому місці програміста.

Дані по нормах освітлення для створення умов нормальної роботи середньої точності містяться у таблиці 6.2.



Таблиця 6.2 - Характеристика виробничого освітлення

Точність зорової роботи

Міні-маль-ний розмір об’єк-ту

Розряд зорової роботи

Під-роз-ряд зоро-вої праці

Кон-раст об’єк-ту фо-ну

Харак-терис-тика фону

Нормоване значення освітлення













Природ-не

Штучне













,%



,%

Lmіn, лк

Тип ламп

Середня точність

0,5. .1

ІV

В

Се-ред-ній

Серед-ня

1,5

1,35

500

Га-зо-роз-ряд-ні



Загальне освітлення має бути виконане у вигляді суцільних або переривчатих ліній світильників, що розміщуються збоку від робочих місць (переважно зліва) паралельно лінії зору працівників. Допускається застосувати світильники таких класів світлорозподілу:

світильники прямого світла - П;

переважно прямого світла - Н;

переважно відбитого світла - В.

Як джерело світла при штучному освітленні повинні застосовуватися, як правило, люмінесцентні лампи типу ЛБ. При обладнанні відбивного освітлення у виробничих та адміністративно-громадських приміщеннях можуть застосовуватися метало галогенові лампи потужністю до 250 Вт.д.опускається у світильниках місцевого освітлення застосовувати лампи розжарювання.

Яскравість світильників загального освітлення в зоні кутів промінювання від 50 до 90 відносно вертикалі в подовжній і поперечній площинах повинна складати не більше 200кд/м2, а захисний кут світильників повинен бути не більшим за 40.

Коефіцієнт запасу (Кз) відповідно до СНиП 11-4-79 [24] для освітлювальної установки загального освітлення слід приймати рівним 1.4

Коефіцієнт пульсації повинен не перевищувати 5% і забезпечуватися застосуванням газорозрядних ламп у світильниках загального і місцевого освітлення.

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

Світильники місцевого освітлення повинні мати напівпрозорий відбивач світла з захисним кутом не меншим за 40.

Необхідно обмежувати відбиту блискість шляхом правильного вибору типів світильників та розміщенням робочих місць відносно джерел природного та штучного освітлення. При цьому яскравість відблисків на екрані відеотермінала на повинна перевищувати 40 кд/м2, яскравість стелі при застосуванні системи відбивного освітлення не повинна перевищувати 200 кд/м2.

Необхідно передбачити нерівномірність розподілу яскравості в полі зору осіб, що працюють з відеотерміналом, при цьому відношення значень яскравості робочих поверхонь не повинно перевищувати 3: 1, а робочих поверхонь і навколишніх предметів (стіни, обладнання) - 5:

1.

Необхідно використовувати систему вимикачів, що дозволяє регулювати інтенсивність штучного освітлення залежно від інтенсивності природного, а також дозволяє освітлювати тільки потрібні для роботи зони приміщення.

Для забезпечення нормованих значень освітлення в приміщеннях з відеотерміналами ЕОМ загально та персонального користування необхідно очищати віконне скло та світильники не рідше ніж 2 рази на рік, та своєчасно проводити заміну ламп, що перегоріли.



6.2.3 Шум

У приміщеннях з ЕОМ рівні звукового тиску, рівні звуку та еквівалентні рівні звуку на робочих місцях повинні відповідати вимогам ГОСТ 12.1 003-83 [25], ДНАОП 0.03-3.14-85 [26], затверджених Міністерством охорони здоров'я України. Рівні шуму на робочих місцях осіб, що працюють з відеотерміналами та ЕОМ, визначені ДСанПІН 3.3.2-007-98 [27].

Для забезпечення нормативних рівнів шуму у виробничих приміщеннях та на робочих місцях застосовуються шумопоглинальні засоби, вибір яких обґрунтовується спеціальними інженерно-акустичними розрахунками.

Як засоби шумопоглинання повинні застосовуватися негорючі або важкогорючі спеціальні перфоровані плити, панелі, мінеральна вата з максимальним коефіцієнтом звукопоглинання в межах частот 31-8000 Гц, або інші матеріали аналогічного призначення, дозволені для оздоблення приміщень органами державного санітарно-епідеміологічного нагляду. Крім того, необхідно застосовувати підвісні стелі з аналогічними властивостями.


6.2.4 Випромінювання від екрана

ВДТ генерує декілька типів випромінювання, у тому числі: гамма тормозне, рентгенівське, радіочастотне, мікроволнове, видиме, ультрафіолетове й інфрачервоне випромінювання. Рівні цих випромінювань не перевищують діючих норм.

Вимоги щодо допустимих значень неіонізуючого електромагнітного випромінювання:

напруженість електромагнітного поляна відстані 50 см. Навкруги

ВДТ за електричною складовою не повинна перевищувати:

а) у діапазоні частот 5 Гц - 2 кГц - 25 В/м,

б) у діапазоні частот 2 кГц - 400 кГц - 2,5 В/м,

щільність магнітного потоку не повинна перевищувати:

а) у діапазоні частот 5 Гц - 2 кГц - 250 нТл,

б) у діапазоні частот 2 кГц - 400 кГц - 25 нТл,

поверхневий електростатичний потенціал не повинен перевищувати 500 В.

Конструктивне рішення екрана дисплея таке, що рентгенівське випромінювання від екрана на відстані 10 см не перевищує 100 мкР/г ДСанПіН З. З.2. - 007-98 [27].

У помешканнях із дисплеями необхідно контролювати аероіонізацію. У таблиці 6.3 наведені рівні іонізації повітря робочої зони обчислювального центру (ОЦ).



Таблиця 6.3 - Рівні іонізації повітря робочої зони ОЦ

Рівні 

Кількість іонів в 1 см повітря 





n+ 

n - 

Мінімально необхідні 

400 

600 

Оптимальні 

1500-3000 

3000-5000 

Максимально допустимі 

50000 

50000 



Варто враховувати, що м'яке рентгенівське випромінювання, що виникає при напрузі на аноді 20-22 кВ, а також напруга на струмоведучих ділянках схеми викликає іонізацію повітря з утворенням позитивних іонів, що вважаються несприятливими для людини.



6.3 Техніка безпеки на робочому місці



6.3.1 Електробезпека

Лабораторія, де знаходяться ЕОМ є споживачем електричної енергії (трифазна мережа перемінного струму напругою 220 В та частотою 50 Гц), то як висновок - в даному помешканні є небезпека поразки людини електричним струмом. Тому розглянемо питання електробезпеки.

Передбачено такі міри електробезпеки:

конструктивні заходи електробезпеки;

схемно-конструктивні заходи електробезпеки;

експлуатаційні заходи електробезпеки.

Конструктивні заходи безпеки спрямовані на запобігання можливості дотику людини до струмоведучих частин.

Для усунення можливості дотику оператора до струмоведучих частин, усі рубильники встановлені в закритих корпусах, усі струмоведучі частини поміщені в захисний корпус або мають захисний прошарок ізоляції, що виключає можливість дотику до них, застосовується блоковий монтаж. Живлячий електричний ланцюг має ізоляцію, виконану відповідно до ГОСТ 14254-80 [28]. Ступінь захисту устаткування відповідає ІР44 (де 4 захист від твердих тіл розміром більш 1 мм; 4 - захист від бризок) відповідно до ПУЭ-87 [19].

Відповідно до ГОСТ 12.2 007.0-75* [29]. Приймаємо І клас захисту від поразки електричним струмом обслуговуючого персоналу тому, що комп'ютер має робочу ізоляцію й елементи занулення.

Схемно-конструктивні заходи електробезпеки забезпечують безпеку дотику людини до металевих не струмоведучих частин електричних апаратів при випадковому пробої їхньої ізоляції і виникнення електричного потенціалу на них.

Живлення здійснюється від трьох провідної мережі: фазовий дріт, нульовий робочий дріт, нульовий захисний дріт.

Тому що напруга менше 1000 В, але більше 42 В, то відповідно до ГОСТ 12.1 030-81 [30] із метою захисту від поразки електричним струмом застосовуємо занулення, тому що лабораторія є помешканням із підвищеною небезпекою поразки людини електричним струмом, так як можливий одночасний дотик людини до металоконструкцій будинків і т.п., що мають з’єднання з землею з одного боку, і до металевих корпусів електронного устаткування - з іншого.

Занулення - навмисне електричне з’єднання з нульовим захисним провідником металевих не струмоведучих частин, що можуть виявитися під напругою.

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

Занулення потребує наявності в мережі нульового дроту, глухого заземлення нейтралі джерела струму і повторного заземлення нульового.




Ф

НР

НЗ

Ік

Ік

Uф

Із

Із

Ін

Ік

Ік

Ік

Із

Із

R0

Rп

2



Рис.6.1. Принципова схема занулення

1 - корпус електроустановки;

2 - апарати захисту від струмів КЗ (запобіжники);

Ro - опір заземлення середньої точки обмотки джерела струму;

Rп - опір повторного заземлювача нульового захисного провідника;

Ік - струм короткого замикання;

Ін - частина струму короткого замикання, що протікає через нульовий

захисний провідник;

Із - частина струму короткого замикання, що протікає через землю.



По засобу захисту від поразки електричним струмом проектована система відноситься до І класу відповідно до ГОСТ 12.2 007.0-75* [29].

Призначення елементів занулення:

призначення нульового захисного провідника - забезпечити необхідне для відключення установки значення струму однофазного короткого замикання шляхом створення для цього струму ланцюга з малим опором;

призначення заземлення середньої точки - зниження напруги занулених корпусів (а отже, нульового захисного провідника) щодо землі до безпечного значення при замиканні фази на землю;

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

Таким чином, занулення здійснює дві захисних дії - швидке автоматичне відключення ушкодженої установки від живлячої мережі і зниження напруги занулених металевих не струмоведучих частин, що виявилися під напругою, щодо землі.

Первинним джерелом живлення ПЕОМ є трьохпровідна мережа: фазовий дріт, нульовий робочий дріт, нульовий захисний дріт. Електроживлення здійснюється від електроустановки (трансформатора) із регульованою напругою під навантаженням. Напруга мережі подається в розподільну шафу.

У помешканні лабораторії прокладена шина повторного захисного заземлення (заземлюючий провідник) виконана відповідно до ГОСТ 12.1 03081* [30], що металево з’єднується з заземленою нейтраллю електроустаткування.

Опір заземлюючого пристрою, до якого приєднана нейтраль, не більш 0,6 Ом. Шина повторного захисного заземлювача доступна для огляду.

Для роботи з пристроями під високою напругою необхідні наступні запобіжні заходи:

не підключати і не відключати рознімання кабелів при напрузі мережі;

технічне обслуговування і ремонтні роботи допускається виробляти тільки при виключеному живленні мережі;

до роботи допускаються особи, які навчені і які мають групи допуску до роботи на машинах відповідно до ПУЭ-87 [19].



6.3.2 Ергономічні вимоги до робочого місця

Робота з відеотерміналами включає самі різні задачі, які об’єднуються такими спільними факторами, як те, що робота проводиться у сидячому положенні та потребує уважного, безперервного та іноді довготривалого спостерігання.

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

Правильне установлення робочого стола:

при фіксованої висоті найкраща висота = 72 см;

повинен забезпечуватися необхідний простір для рук по висоті, ширині та глибині;

в області сидіння не повинно бути ящиків стола.

Правильне установлення робочого стільця:

висота повинна регулюватися;

конструкція повинна обертатися;

правильна висота сидіння: його площина на 3 см вище, ніж підколінна западина.

Правильне установлення приладів - необхідно так встановити

яскравість знаків та яскравість фону дисплея, щоб не існувало дуже великої різниці при порівнянні з яскравістю навколишньої обстановки, але щоб знаки чітко впізнавалися на відстані читання.

Не допускати:

дуже велику яскравість (викликає мерехтіння);

дуже слабку яскравість (сильне навантаження на очі);

дуже чорну фонову яскравість дисплея.

Правильне виконання робіт:

положення тулуба пряме, ненапружене;

положення голови пряме, вільне, зручне;

руки зігнути трохи більше, ніж під прямим кутом;

ноги зігнути трохи більше, ніж під прямим кутом;

правильна відстань для зору до клавіатури та дисплею приблизно однакова: при постійних роботах - близько 50 см, при випадкових роботах - до 70 см.

Правильне освітлення (по можливості):

освітлення з боку, зліва;

рівномірне освітлення усього робочого простору;

прилади встановлювати в місцях, віддалених від вікон;

обирати непряме освітлення приміщення або укривати корпуси світильників;

світло, що надходить через вікна, пом’якшувати за допомогою штор.

Правильне застосування допоміжних засобів: використовувати

підставку для документів, опору для ніг та підлокітники, якщо клавіатура вище 15 см.

Правильний метод роботи:

передбачувати по можливості переміну задач та навантажень;

додержувати перерви в роботі: 5 хвилин через 1 годину роботи з дисплеєм або 10 хвилин після 2-х годин роботи.



6.4 Пожежна безпека



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

Помешкання обчислювального центру по пожежній безпеці відноситься до категорії В відповідно до НАПБ Б.07.005-86 (ОНТП-24-86) [18], тому що в обігу знаходяться тверді спалимі речовини і матеріали. Ступінь вогнестійкості будинку - ІІ відповідно до ДБМ В 1.1-7-02 [20], клас помешкання по пожежній небезпеці П-ІІа, відповідно до ПУЭ-87 [19].

Пожежна безпека відповідно до ГОСТ 12.1 004-91 [31] забезпечується системами запобігання пожежі, пожежного захисту, організаційно-технічними заходами.

Система запобігання пожежі:

контроль і профілактика ізоляції;

наявність плавких вставок і запобіжників в електронному устаткуванні;

для захисту від статичної напруги використовується заземлення;

захист від блискавок будівель і устаткування.

Для даного класу будівель і місцевості із середньою грозовою діяльністю 10 і більш грозових годин у рік, тобто для умов м. Харкова встановлена ІІІ категорія захисту від блискавок.

Ступінь захисту відповідному класу помешкання П ІІ-а ІР44 для устаткування і ІР2Х для світильників.

Система пожежного захисту:

аварійне відключення і переключення апаратури;

наявність первинних засобів пожежегасіння, вогнегасників ОП-5, тому що вуглекислота має погану електропровідність, або порошкових вогнегасників;

система оповіщення, світлова і звукова сигналізація;

захист легкозаймистих частин устаткування, конструкцій захисними матеріалами;

використання негорючих матеріалів для акустичної обробки стін і стель;

у помешканнях, де немає робочого персоналу, встановлена автоматична система пожежного захисту.

Для успішної евакуації персоналу при пожежі розміри дверей робочого помешкання повинні бути наступними: ширина дверей не менше 1,5 м., висота дверей не менше 2,0 м., ширина коридору 1,8 м.; робоче помешкання повинно мати два виходи; відстань від найбільше віддаленого робочого місця не повинне перевищувати 100 м.

Організаційні заходи пожежної профілактики:

навчання персоналу правилам пожежної безпеки;

видання необхідних інструкцій і плакатів, плану евакуації персоналу у випадку пожежі.

Будівля обчислювального центру відповідає вимогам пожежної безпеки.



6.5 Охорона навколишнього середовища



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

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

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

Завданням законодавства про охорону навколишнього природного середовища є регулювання відносин у галузі охорони, використання і відтворення природних ресурсів, забезпечення екологічної безпеки, запобігання і ліквідації негативного впливу господарської та іншої діяльності на навколишнє природне середовище, збереження природних ресурсів, генетичного фонду живої природи, ландшафтів та інших природних комплексів, унікальних територій та природних об'єктів, пов'язаних з історико-культурною спадщиною [32].


Висновки



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

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

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

4. Було виявлено, що в результаті кодування зображення, розмір зображення при зменшенні кількості кольорів з 256 до 16 зменшився у 6 разів, а за допомоги додаткових алгоритмів кодування цей розмір можна зменшити ще більше, до 5% від початкового розміру зображення. Це обумовлено великою кількістю "кластерів" на зображенні з однаковими рівнями яскравості, які можна представити у коротшому коді, ніж початкове зображення.

5. За допомогою розробленої можна сформулювати рекомендації з оптимізації конструктивно-технологічних рішень у кодуванні відеоінформації.

6. Окрім цього були розглянуті економічні питання та розроблений бізнес-план, а також питання охорони праці та навколишнього середовища.


Список джерел інформації



Айвазян С.А., Мхитарян.В.С. Прикладная статистика и основы эконометрики. - М.: Юнити. 1998. - 1022 с.

Дидэ Э. и др. Методы анализа данных / под ред Айвазяна С.А. и Бухштабера В.М. - М.: Финансы и статистика, 1985. - 357с.

Кричевский Р.Е. Сжатие и поиск информации. - М.: Радио и связь, 1989.

Куренков Н.И. Ананьев С.Н. Энтропийный подход к решению задач классификации многомерных данных. // Информационные технологии. 2006. № 8. С.50-55.

Левенштейн В.И. Об избыточности и замедлении разделимого кодирования натуральных чисел // Проблемы кибернетики. - М., 1968. - Вып. 20. - С.173 - 179.

Рябко Б.Я., Фионов А.Н. Эффективный метод адаптивного арифметического кодирования для источников с большими алфавитами // Проблемы передачи информации. - 1999. - Т.35, Вып.4. - С.95 - 108.

Семенюк В.В. Применение вероятностного моделирования в методах экономного кодирования видеоинформации // Труды XI Всероссийской научно-методической конференции Теле-матика'2004. - Санкт-Петербург, Россия, 7-10 июня, 2004. - С.186 - 187.

Сакоян С.А. Об оптимальных разбиениях на градации в задачах классификации // Прикладная статистика - М.: Наука, 1983. - С.179-188.

Семенюк В.В. Экономное кодирование дискретной информации.

СПб: СПб ГИТМО (ТУ), 2001. - 115 с, - ISBN 5-7577-0076-9.

Хаффмен Д.А. Метод построения кодов с минимальной избыточностью: Пер. с англ. // Кибернетический сборник. - М.: ИЛ, 1961. - Вып.3. - С.79 - 87.

Шеннон К. Математическая теория связи: Пер. с англ. // Работы по теории информации и кибернетике. - М.: ИЛ, 1963. - С.243 - 332.

Howard P. G., Vitter J. S. Practical Implementations of Arithmetic Coding // Storer A. Image and Text Compression. - Kluwer Academic Publishers, Massachusetts, USA, 1992. - P.85 - 112

INTUIT.ru. Алгоритмы квантования для полутоновых и цветных изображений. - 2004. -С.1-4.

INTUIT.ru. Алгоритмические основы растровой графики. - 2004. -С.1-12.

Kraft L. A Device for Quantizing, Grouping and Coding Amplitude Modulated Pulses: MS Thesis. - Dept. of Electrical Engineering, MIT, Cambridge, Massachusetts, USA, 1949.

Rui Xu, D., Wunsch II. Survey of clustering algorithms // IEEE Transactions on Neural Networks. - 2005. - v.16, № 3. - р.645.

Закон України "Про охорону праці".

НАПБ Б.07.005-86 (ОНТП-24-86). "Общесоюзные нормы технологического проектирования. Определение категорий зданий и сооружений по взрывопожарной и пожарной опасности."

ПУЭ-87. Правила установки электроустройств

ДБМ В 1.1-7-02. “Захист від пожежі. Пожежна безпека об`єктів будівництва". - к.: 2003 - 41с.

ГОСТ 12.0.003-74. “ССБТ. Опасные и вредные производственные факторы. Классификация."

ГОСТ 12.1 005-88. "ССБТ Общие санитарно-гигиенические требования к воздуху рабочей зоны"

СНиП 2.04.05-91. "Строительные нормы и правила. Отопление, вентиляция и кондиционирование воздуха"

СНиП 11-4-79. "Строительные нормы и правила. Естественное и искусственное освещение"

ГОСТ 12.1 003-83. "ССБТ Шум. Общие требования безопасности"

ДНАОП 0.03-3.14-85. "Санітарні норми допустимих рівнів шуму на робочих місцях з урахуванням напруженості та тяжкості праці"

ДСанПіН З. З.2. - 007-98. Державні санітарні правила і норми роботи з візуальними дисплейним терміналами електронно-обчислювальних машин

ГОСТ 14254-80. “Электрооборудование напряжением до 1000 В. Оболочки. Степени защиты"

ГОСТ 12.2 007.0-75*. “ССБТ. Изделия электротехнические. Общие требования безопасности”

ГОСТ 12.1 030-81* “ССБТ. Электробезопасность. Защитное заземление. Зануление”

ГОСТ 12.1 004-91. "ССБТ. Пожарная безопасность. Общие требования"

Государственный стандарт Украины "Система управления окружающей средой" ISO 14001-97 - к.: ГОССТАНДАРТ УКРАИНЫ. 1997 - 31 с.


Додаток



Текст програми



1. Текст програми проекту D2009. dpr



program D2009;

uses

Forms,

Unit1 in 'Unit1. pas' {MForm},

MathImage in 'MathImage. pas',

UnitGisto in 'UnitGisto. pas' {FormG},

Unit2 in 'Unit2. pas' {AboutBox};

{$R *. res}

begin

Application. Initialize;

Application. Title: = 'Viplabs 2009';

Application. CreateForm (TMForm, MForm);

Application. CreateForm (TFormG, FormG);

Application. CreateForm (TAboutBox, AboutBox);

Application.run;

end.



2. Модуль MathImage. pas



unit MathImage;

interface

uses

Windows, Graphics, SysUtils,

Forms, ComCtrls, Controls,

{fCompressor, }Classes;

const

Fatalbit = pf24bit;

type

Tsvet = record

r, g, b: byte;

end;

PArray = ^TArray;

TArray = array [0. .10000] of Tcolor;

P3bArray = ^T3bArray;

T3bArray = array [0. .10000] of Tsvet;

T3x3FloatArray = array [0. .2] of array [0. .2] of Extended;

a1x = array of integer;

a2x = array of a1x;

a256w = array [0. .255] of integer;

function LoadFromBmp (bmp: Tbitmap; var Histo: a256w): boolean;

function HistoToBmp (bmp_: Tbitmap; var Histo: a256w): Tbitmap;

function DecreaseColor1 (bmp_: Tbitmap; NCOld, NCNew: integer): Tbitmap;

function DecreaseColor2 (bmp_: Tbitmap; NCOld, NCNew: integer; aa: a256w): Tbitmap;

function DecreaseColor3 (bmp_: Tbitmap; NCOld, NCNew: integer; cc: a256w; prg: double): Tbitmap;

function SaveTo4bitBMP (bmp_: Tbitmap; fname: string; var prgrs: TProgressBar): boolean;

{***********************}

function MedianFilter (bmp_: Tbitmap): Tbitmap;

function InByte (a: integer): byte; overload;

function InByte (f: real): byte; overload;

function InBytePRG (a: integer; pmin: byte): byte;

function GetTsvet (r, g, b: byte): Tsvet;

function GetMedian (a: a256w; n1, n2: integer; prm: double): byte;

implementation

const

dm = 1;

var

matrix: a2x;

Palette_: array [0. .15] of byte;

Sootvet: a256w;

function InByte (a: integer): byte;

var

i: integer;

begin

I: = a;

if (a > 255) then

InByte: = 255

else if (a < 0) then

InByte: = 0

else

InByte: = I;

end;

function InByte (f: real): byte;

var

i: integer;

begin

I: = round (f);

if (f > 255) then

Result: = 255

else if (f < 0) then

Result: = 0

else

Result: = I;

end;

function InBytePRG (a: integer; pmin: byte): byte;

begin

if (a < pmin) then

Result: = 0

else

Result: = 255;

end;

function GetTsvet (r, g, b: byte): Tsvet;

begin

GetTsvet. r: = r;

GetTsvet. g: = g;

GetTsvet. b: = b;

end;

function SummFTsvet (tsv: Tsvet): word;

begin

Result: = (30 * tsv. r + 59 * tsv. g + 11 * tsv. b) div 100;

end;

function LoadFromBmp (bmp: Tbitmap; var Histo: a256w): boolean;

var

i, j: integer;

ii, jj: integer;

hgt2m, wdt2m: integer;

p: P3bArray;

ts: tsvet;

summt: word;

begin

Result: = false;

try

with bmp do

begin

PixelFormat: = pf24bit;

hgt2m: = Height + 2 * dM + 1;

wdt2m: = Width + 2 * dM + 1;

SetLength (matrix, hgt2m, wdt2m);

for i: = 0 to 255 do

Histo [i]: = 0;

for i: = 0 to Height - 1 do

begin

ii: = i + dm;

p: = ScanLine [i] ;

for j: = 0 to Width - 1 do

begin

jj: = j + dm;

ts: = p [j] ; // ToTsvet ({p [j] } cc);

summt: = SummFTsvet (ts); // div 3;

matrix [ii, jj]: = summt;

inc (Histo [summt]);

p [j]: = GetTsvet (summt, summt, summt);

end;

for j: = 0 to dm - 1 do

begin

jj: = j + dm;

matrix [ii, Width + jj]: = matrix [ii, jj] ;

matrix [ii, (dm - 1) - j]: = matrix [ii, Width + dm - 1 - j] ;

end;

end;

for j: = 0 to Width - 1 do

for i: = 0 to dm - 1 do

begin

ii: = i + dm;

jj: = j + dm;

matrix [Height + ii, jj]: = matrix [ii, jj] ;

matrix [ (dm - 1) - i, jj]: = matrix [Height + dm - 1 - i, jj] ;

end;

end;

except

exit;

end;

Result: = true;

end;

 // ********************************************

function MedianFilter (bmp_: Tbitmap): Tbitmap;

var

i, j: integer;

k, l, t, s: integer;

a: array [0. .8] of byte;

mid: integer;

p, p2: P3bArray;

begin

Result: = Tbitmap. Create;

with Result do

begin

PixelFormat: = pf24bit;

width: = bmp_. Width;

height: = bmp_. Height;

for i: = 1 to Height - 2 do

begin

p2: = ScanLine [i] ;

for j: = 1 to Width - 2 do

begin

t: = 0;

for k: = - 1 to 1 do

for l: = - 1 to 1 do

begin

p: = bmp_. ScanLine [i + k] ;

a [t]: = SummFTsvet (p [j + l]);

inc (t);

end;

for l: = 1 to 5 do

begin

mid: = 255;

s: = 0;

for k: = 0 to 8 do

if a [k] < mid then

begin

mid: = a [k] ;

s: = k;

end;

a [s]: = 255;

end;

p2 [j]: = GetTsvet (mid, mid, mid);

end;

end;

end;

end;

function GetSquere2 (var aa: a2x; i0, j0: integer): integer;

var

i, j: integer;

begin

Result: = 0;

for i: = - 1 to 1 do

for j: = - 1 to 1 do

begin

Result: = Result + aa [i0 + i, j0 + j] ;

end;

end;

function HistoToBmp (bmp_: Tbitmap; var Histo: a256w): Tbitmap;

var

i, j: integer;

p: P3bArray;

c: integer;

z: integer;

Left: a256w;

delta: a256w;

dc: integer;

R: longint; // Cardinal;

Hsum, Hmid: integer; // Cardinal;

begin

Hmid: = 0;

for z: = 0 to 255 do

Hmid: = Hmid + Histo [z] ;

Hmid: = Hmid shr 8;

R: = 0;

Hsum: = 0;

if Hmid > 0.0001 then

for z: = 0 to 255 do

begin

left [z]: = R;

Hsum: = Hsum + Histo [Z] ;

while Hsum > Hmid do

begin

Hsum: = Hsum - Hmid;

inc (R);

end;

Delta [z]: = R - Left [z] ;

end

else

for z: = 0 to 255 do

left [z]: = 0;

for z: = 0 to 255 do

Histo [z]: = 0;

Result: = Tbitmap. Create;

with Result do

begin

PixelFormat: = pf24bit;

Width: = bmp_. Width;

Height: = bmp_. Height;

for i: = 0 to Height - 1 do

begin

p: = ScanLine [i] ;

for j: = 0 to Width - 1 do

begin

c: = matrix [i + dm, j + dm] ;

dc: = Delta [c] ;

c: = Left [c] + dc shr 0; // + random (dc shr 1 + 1);

c: = InByte (c);

p [j]: = GetTsvet (c, c, c);

inc (Histo [c]);

end;

end;

end;

end;

{*********************}

function GetMedian (a: a256w; n1, n2: integer; prm: double): byte;

var

sum: longint;

b: a256w;

i: integer;

begin

if n1 < 0 then

n1: = 0;

if n1 > 255 then

n1: = 255;

if n2 < 0 then

n2: = 0;

if n2 > 255 then

n2: = 255;

if n2 - n1 <= 1 then

begin

Result: = (n1 + n2) div 2;

exit;

end;

b [n1]: = a [n1] ;

sum: = a [n1] ;

for i: = n1 + 1 to n2 do

begin

b [i]: = b [i - 1] + a [i] ;

sum: = sum + a [i] ;

end;

sum: = round (sum * prm);

i: = n1;

while (b [i] < sum) and (i < n2) do

inc (i);

if (i < n2) and (b [i + 1] - b [i] > b [i]) then inc (i);

Result: = i;

end;

function DecreaseColor3 (bmp_: Tbitmap; NCOld, NCNew: integer; cc: a256w; prg: double): Tbitmap;

var

maxlv: integer;

ic: integer;

procedure Delenie2na (a, b: integer; lv: integer);

var

mi: integer;

i: integer;

begin

if (ic = NCNew) then

exit;

if a > 255 then exit; // a: = 255;

mi: = GetMedian (cc, a, b, prg);

if (lv < maxlv) and (b - a > 0) then

begin

Delenie2na (a, mi - 1, lv + 1);

Delenie2na (mi, b, lv + 1);

end

else

if (ic = 0) or (Inbyte (mi) <> Palette_ [ic - 1]) then

begin

Palette_ [ic]: = Inbyte (mi);

for i: = a to b do

Sootvet [i]: = ic;

inc (ic);

end;

end;

var

i, j: integer;

mid: integer;

p, p2: P3bArray;

bb: a256w;

t: boolean;

c0: integer;

cpos: array [0. .16] of integer;

NCN, ccc: integer;

begin

Result: = Tbitmap. Create;

with Result do

begin

PixelFormat: = pf24bit;

width: = bmp_. Width;

height: = bmp_. Height;

if not ( (NCNew > 0) and (NCNew <= 16)) then

exit;

for i: = 0 to NCOld - 1 do

sootvet [i]: = - 1;

case NCNew of

2: maxlv: = 1;

4: maxlv: = 2;

8: maxlv: = 3;

16: maxlv: = 4;

else

maxlv: = 0;

end;

ic: = 0;

Delenie2na (0, 255, 0);

for i: = ic to 15 do Palette_ [i]: = 255;

i: = 255;

for i: = 1 to NCOld - 2 do

if Sootvet [i] < 0 then

begin

if i < NCOld shr 1

then Sootvet [i]: = 0

else Sootvet [i]: = NCNew - 1;

end;

Sootvet [0]: = 0;

for i: = 0 to NCNew - 1 do

begin

bb [i]: = 0;

cpos [i]: = - 1;

end;

cpos [16]: =255;

c0: = - 1;

for i: = 0 to NCOld - 1 do

begin

bb [Sootvet [i]]: = bb [Sootvet [i]] + cc [i] ;

if c0 <> Sootvet [i] then

begin

cpos [Sootvet [i]]: = i;

NCN: = Sootvet [i] ;

end;

c0: = Sootvet [i] ;

end;

for i: = 1 to NCNew - 1 do

if cpos [i] < 0 then cpos [i]: = cpos [i-1] ;

if prg < 0.5 - 0.0001 then

repeat

t: = true;

for i: = 1 to NCN do

if (bb [i] *prg < bb [i - 1] * (1-prg)) and (cpos [i] > i) and (cpos [i] > cpos [i-1]) then

begin

ccc: = cc [cpos [i]] ;

bb [i]: = bb [i] + ccc;

bb [i - 1]: = bb [i - 1] - ccc;

cpos [i]: = cpos [i] - 1;

Sootvet [cpos [i]]: = i;

Palette_ [i]: = InByte (GetMedian (cc, cpos [i], cpos [i+1], 0.5));

t: = false;

break;

end

until t;

if prg > 0.5 + 0.0001 then

repeat

t: = true;

for i: = NCN-1 downto 0 do

if (bb [i+1] * (prg) > bb [i] * (1-prg)) and (cpos [i+1] < NCOld - i) and (cpos [i] < cpos [i+1]) then

begin

ccc: = cc [cpos [i+1]] ;

bb [i + 1]: = bb [i + 1] - ccc;

bb [i]: = bb [i] + ccc;

cpos [i+1]: = cpos [i+1] + 1;

Sootvet [cpos [i+1]]: = i;

Palette_ [i]: = InByte (GetMedian (cc, cpos [i], cpos [i+1], 0.5));

t: = false;

break;

end

until t;

for i: = 0 to Height - 1 do

begin

p: = bmp_. ScanLine [i] ;

p2: = ScanLine [i] ;

for j: = 0 to Width - 1 do

begin

mid: = SummFTsvet (p [j]);

mid: = Palette_ [Inbyte (Sootvet [mid])] ;

p2 [j]: = GetTsvet (mid, mid, mid);

end;

end;

end;

end;

function SaveTo4bitBMP (bmp_: Tbitmap; fname: string; var prgrs: TProgressBar): boolean;

var

i, j, j0: integer;

mid: word;

c1, c2: byte;

p: P3bArray;

f2: file;

buf1: Pbyte;

buf2: Pword;

buf4: PCardinal;

fsize: Cardinal;

NWritten: integer;

wdt, wdt2: integer;

begin

Result: = false;

try

AssignFile (f2, fname);

Rewrite (f2,1);

except

exit;

end;

New (buf1);

New (buf2);

New (buf4);

with BMP_ do

begin

buf2^: = 19778; // must always be set to 'BM' to declare that this is a. bmp-file.

BlockWrite (f2, buf2^, 2, NWritten);

wdt: = width div 2 + width mod 2;

case (wdt mod 4) of

3: wdt: = wdt + 1;

2: wdt: = wdt + 2;

1: wdt: = wdt + 3;

end; // выравние до ширины кратной 4

fsize: = 54 + 16 * 4 + (wdt * height);

buf4^: = fsize;

BlockWrite (f2, buf4^,

4);

buf4^: = 0; // rezerved

BlockWrite (f2, buf4^,

4);

buf4^: = $0076; // offset from the beginning of the file to the bitmap data

BlockWrite (f2, buf4^,

4);

buf4^: = 40; // size of the BITMAPINFOHEADER structure,

BlockWrite (f2, buf4^,

4);

buf4^: = width; // 

BlockWrite (f2, buf4^,

4);

buf4^: = height; // 

BlockWrite (f2, buf4^,

4);

buf2^: = 1; // number of planes of the target device

BlockWrite (f2, buf2^,

2);

buf2^: = 4; // number of bits per pixel!

BlockWrite (f2, buf2^,

2);

buf4^: = 0;

BlockWrite (f2, buf4^,

4);

BlockWrite (f2, buf4^,

4);

BlockWrite (f2, buf4^,

4);

BlockWrite (f2, buf4^,

4);

BlockWrite (f2, buf4^,

4);

BlockWrite (f2, buf4^,

4);

for i: = 0 to 15 do

begin

mid: = Palette_ [i] ;

buf2^: = mid shl 8 + mid;

BlockWrite (f2, buf2^,

2);

buf2^: = mid shl 0;

BlockWrite (f2, buf2^,

2);

end;

for i: = Height - 1 downto 0 do

begin

p: = ScanLine [i] ;

wdt2: = Width div 2;

for j: = 0 to wdt2 - 1 do

begin

mid: = SummFTsvet (p [j shl 1]);

c1: = Inbyte (Sootvet [mid]);

mid: = SummFTsvet (p [j shl 1 + 1]);

c2: = Inbyte (Sootvet [mid]);

buf1^: = (c1 shl 4 or c2) and $FF;

BlockWrite (f2, buf1^, 1, NWritten);

if NWritten <> 1 then break;

end;

j0: = 1;

if width mod 2 <> 0 then

begin

mid: = SummFTsvet (p [Width - 1]);

c1: = Inbyte (Sootvet [mid]);

buf1^: = (c1 shl 4 or 0) and $FF;

BlockWrite (f2, buf1^, 1, NWritten);

j0: = 2;

end;

if NWritten <> 1 then break;

buf1^: = 0;

for j: = j0 to (wdt - wdt2) do

BlockWrite (f2, buf1^, 1, NWritten);

prgrs. Position: = 100 * (Height - i) div Height;

end;

end;

try

finally

CloseFile (f2);

end;

Dispose (buf1);

Dispose (buf2);

Dispose (buf4);

Result: = true;

end;

end.



3. Модуль UnitGisto. pas



unit UnitGisto;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

type

TFormG = class (TForm)

Chart2: TChart;

BarSeries1: TBarSeries;

Chart1: TChart;

Series1: TBarSeries;

procedure FormShow (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormG: TFormG;

implementation

{$R *. dfm}

uses Unit1, MathImage;

procedure TFormG. FormShow (Sender: TObject);

var

i: integer;

aw: a256w;

s: string;

begin

Chart1. Series [0]. Clear;

aw: = Mform. HistoVals;

for i: = 0 to 255 do

begin

if (i mod 5) = 0 then

Chart1. Series [0]. Add (aw [i], s)

else

Chart1. Series [0]. Add (aw [i]);

end;

Chart2. Series [0]. AssignValues (Chart1. Series [0]);

end;

end.


Керівництво оператора



1. ЗАГАЛЬНІ ВІДОМОСТІ

1.1 Позначення і найменування програми

Програмний продукт має найменування „Графічний кодер чорно-білих зображень ”. Модулі програмного продукту мають назву, яка відповідає діям, що в них виконуються.

1.2 Програмне забезпечення, необхідне для функціонування програми

Для функціонування програми необхідні:

операційна система Windows.

1.3 Обрана мова програмування

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

2. ФУНКЦІОНАЛЬНЕ ПРИЗНАЧЕННЯ

2.1 Призначення програми

Область застосування програмного продукту  вищі учбові заклади, книжкові та газетні видавництва, служби охорони, та державна служба безпеки. Програмний продукт дозволяє будь-які 256-кольорові чорно-білі зображення, які зберігаються у форматі. jpeg або. bmp, у зображення. bmp з меншою кількістю кольорів (від 2 до 16) із зберіганням інформативності зображення. Для покращення результатів обробка зображення виконується декількома методами, з метою отримати найбільш вигідне зображення.

2.2 Функціональні обмеження

Програмний продукт відповідає поставленим до нього вимогам і у межах обумовлених ними не має функціональних обмежень.

3. ОПИС ЛОГІЧНОЇ СТРУКТУРИ ПРОГРАМИ

Розроблене програмне забезпечення функціонує за наступним загальним алгоритмом:

Завантажити зображення з файлу, зазначеного користувачем.

Якщо зображення має формат BMP, перейти на пункт 4.

Перетворити зображення у формат BMP.

Установити параметри пікселей для BMP в pf24bit

Розрахувати гістограму яскравості для зображення по формулах (1) - (3).

Якщо потрібно, вирівняти діаграму станів.

Розрахувати пороги областей квантування wi, з умов мінімізації їхніх внесків у значення цільової функції  й розрахованих на етапі 5 компонентів вектора яскравості.

Значеннями елементів палітри pi взяти центри відповідних кластерів.

Замінити кожен піксель зображення на відповідний до нього, відповідно до рівнів квантування й розрахованій палітрі.

Відобразити зображення із застосованими рівнями квантування.

Зберегти зображення у файл формату BMP 16 квітів.

Завершення роботи програми.

Загальна схема алгоритму програми наведена у звіті в підрозділі 4.2

4. ВИКОРИСТАНІ ТЕХНІЧНІ ЗАСОБИ

Для роботи програмного продукту необхідна IBM PC/AT сумісна персональна ЕОМ, наявність процесору Pentium II 433МГц та вище з обсягом оперативної пам’яті 128Мб або більше, наявністю відео адаптеру VGA або SVGA.

Необхідний об’єм на жорсткому диску 5 Мб для продукту.

При розробці використовувалася ПЕОМ з наступними параметрами: Atlon 1600XP+, 256 Мб ПЗУ, жорсткий диск ємністю 80 Гб, відеокарта GeForce2 MX 400 32Мб, мережева карта 100 Мбіт.

5. ВИКЛИК І ЗАВАНТАЖЕННЯ

Точкою входу до будь-якого з модулів програми є запуск головного модуля „D2009. ехе", що здійснює створення головного вікна програми, де є можливість обирати подальші дії.

Обсяг демонстраційної програми що використовується становить менше 1 Мб.

6. ВХІДНІ ТА ВИХІДНІ ДАНІ

Вхідними даними є графічні зображення формату. bmp або. jpeg, з глибиною кольору від 8 до 24 біт, чорно-білі або кольорові (які у процесі роботи програми будуть перетворені на чорно-білі). Дані можуть поповнюватися у процесі користування розробленим програмним забезпеченням, змінюватися та редагуватися.

Вихідними даними є зображення формату. bmp, з глибиною кольору 4 біт (16 кольорів), та гістограма яскравості початкового та отриманого зображень.

7. ВИКОРИСТАНІ МОДУЛІ

У програмі було використано наступні модулі:

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

Unit1. pas - модуль створення головного вікна програми, допоміжних вікон програми, головного меню програми, обробки натискувань на кнопки клавіатури та вікон програми, а також шляхи для доступу к файлам зображень.

Unit2. pas - модуль створення допоміжного вікна програми "о програмі".

UnitGisto. pas - модуль побудови гістограм яскравостей зображення.


Опис програми



1. ПРИЗНАЧЕННЯ ПРОГРАМНОГО ПАКЕТУ

Область застосування програмного продукту  вищі учбові заклади, книжкові та газетні видавництва, служби охорони, та державна служба безпеки. Програмний продукт дозволяє будь-які 256-кольорові чорно-білі зображення, які зберігаються у форматі. jpeg або. bmp, у зображення. bmp з меншою кількістю кольорів (від 2 до 16) із зберіганням інформативності зображення. Для покращення результатів обробка зображення виконується декількома методами, з метою отримати найбільш вигідне зображення.

2. УМОВИ ВИКОНАННЯ

Необхідні технічні засоби:

пристрій читання з компакт-дисків (CD-ROM);

процесор (AMD, Intel) із частотою не менше 433 МГц;

1 Мб вільного простору на жорсткому магнітному диску;

SVGA відеоадаптер із відеопамят’ю не менше 1 Мб;

128 Мб ОЗП; клавіатура; миша;

Необхідне програмне забезпечення:

Розроблений програмний продукт стійко працює в середовищах Windows 98 та Windows 2000.

Для запуску проекту необхідний виконуючий файл D2009. exe.

3. ЗАВАНТАЖЕННЯ ПРОЕКТУ

Щоб завантажити програму, необхідно запустити файл D2009. exe. Після цього перед користувачем з’являється вікно, розділене на 2 рівні квадрати.




Рисунок 3.1 - Вікно з необхідними елементами



Для того, щоб розпочати кодування зображення, потрібно загрузити файл формату. bmp або. jpeg, для чого потрібно натиснути кнопку , вибрати пункт меню File - > Open, натиснути кнопку F3, або зробити подвійний клік мишою на лівому квадраті екрану, після чого відкриється окно (див. рис.3.2) для вибору потрібного зображення (початковий каталог для вибору - каталог, де знаходиться виконавчий файл D2009. exe). Після вибору файлу зображення, у правому квадраті з'явиться зменшений рисунок зображення, а також його атрибути - ширина та висота.





Рисунок 3.2 - Вікно вибору зображення



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





Рисунок 3.3 - Вікно з загруженим та отриманним зображенням



Для того, щоб обрати потрібну кількість кольорів у отриманому зображенні, потрібно мишою обрати відповідну кількість у діалозі знизу





Рисунок 3.4 - Вибір кількості градацій зображення.



Для того, щоб переглянути гістограму початкового та отриманного зображень, потрібно обрати пункт меню Image - > Gistograme



Рисунок 3.5 Рівнева гістограма кольорів зображень.



Для того, щоб зберігти отриманний файл зображення, потрібно натиснути кнопку , вибрати пункт меню File - > Save, або натиснути кнопку F2. 

4. ПОВІДОМЛЕННЯ ОПЕРАТОРУ

Програма виключає загруження інших типів файлів, окрім. bmp та. jpeg, при спробі відкрити інший вид файлу буде виведено повідомлення "Не верный формат файла".

При спробі сохранити файл у інший формат, окрім. bmp, який пропонується спочатку, програма виведе повідомлення "Не верный формат файла".