- •1. Представлення текстової інформації
- •2. Представлення графічної інформації
- •2.1. Растрова графіка
- •2.2. Методи растрування
- •4. Способи описання кольору
- •4.1. Моделі кольорів
- •4.2. Колірна модель cmyk та розділення кольорів
- •1. Теоретичні основи стиснення даних
- •2. Основні методи стиснення
- •2.1. Стиснення без втрати інформації
- •2.2. Стиснення з втратою інформації
- •3. Алгоритми стиснення без втрати інформації
- •3.1. Алгоритм rle
- •3.2. Коди Хафмана
- •4. Програмні засоби стиснення даних
- •5. Формати графічних даних
- •5.3. Різниця між форматом та алгоритмом стиснення
- •6. Автоматизована обробка документів
- •6.2. Вплив масштабування
- •1. Теоретичні відомості
- •1. Теоретичні відомості
- •1.1 Колір і методи опису кольору
- •1.1. Колірна модель rgb
- •1.3. Колірна модель cmyk та розділення кольорів
- •1.5. Формати графічних даних
- •4. Контрольні запитання
- •1. Теоретичні відомості
- •1.1. Параметри растрових зображень
- •1.2. Методи растрування
- •1.3. Параметри сканування.
- •1. Порядок виконання роботи
- •1.1. Сканування документа.
- •1.2. Перетворення зображення в текстовий документ.
- •1.3. Ручна сегментація документа.
- •1.4. Розрахунок лініатури растру.
- •1.5. Розрахунок роздільної здатності
- •1. Теоретичні відомості
- •1.1. Кодування
- •1.2. Декодування
- •1. Теоретичні відомості
- •1.1. Розмір біта даних на магнітному носії
- •1.2. Способи кодування даних
- •3 Питання з екзамена в якоїсь групи з попередніх років :
- •1)Приклади використання команд simd
- •2)Приклади використання кодів з корекцією помилок і пояснити принцип їх дії
- •3)Принципи архітектури numa–систем і smp–систем
- •1.Теоретичні відомості
- •1.1. Стандартні тести пк.
- •1.2. Деякі фактори, що впливають на швидкодію пк.
- •1.3. Організація роботи кеш-пам’яті.
- •1.1. Магнітні явища, на яких ґрунтується робота жорсткого диску.
- •1.2. Принцип запису інформації.
- •1.3. Принцип зчитування інформації.
- •1.4. Конструктивні елементи нагромаджувача на жорстких дисках.
- •1.5. Організація інформації на жорсткому диску.
- •1.6. Стандарти.
- •Теоретичні відомості
- •1.1. Принцип дії crt-монітору
- •1.2. Маски та їх основні типи
- •1.3. Особливості та переваги окремих типів трубок
- •1.4. Параметри монітору
- •Хід роботи
- •Теоретичні відомості
- •1.1. Динамічна і статична пам'ять.
- •1.2. Структура та призначення sram.
- •1.3. Структура та принцип дії динамічної пам'яті.
- •1.4. Типи динамічної пам'яті.
- •1.5. Специфікації модулів пам’яті.
- •1. Теоретичні відомості
- •1.1. Шинна архітектура
- •1.2. Чіпсети
- •1.3. Програмні засоби для забезпечення моніторингу
- •1.3.1. Core Temp
- •1.3.2. Hard Drive Inspector
- •1.3.3. HddScan
- •Теоретичні відомості
- •1.2.1. Системна шина
2.2. Стиснення з втратою інформації
Надмірність усувається за рахунок часткової зміни змісту даних, причому можна регулювати рівень втрати інформації та, в свою чергу, рівень стиснення, оскільки змінюється і структура. Але при цьому неможливо повністю відтворити вихідну інформацію. На щастя, інколи це і не потрібно, якщо говорити про передавання зображень та звука. Справа в тому, що наші органи не чутливі до невеликих спотворень інформації такого типу (локальні зміни зображення, високі гармоніки, тощо). Характерні приклади форматів з втратою інформації: .JPG – для графічних даних, .MPG – для відео даних, .MP3 – для звука. Не рекомендується використовувати алгоритми з втратою інформації, якщо зображення треба друкувати з високою якістю або воно призначено для автоматичної обробки типу систем розпізнавання символів.
3. Алгоритми стиснення без втрати інформації
3.1. Алгоритм rle
Першій варіант алгоритму
Цей алгоритм надзвичайно просто реалізується. Групове кодування — від англійського Run Length Encoding (RLE) — один із найбільш старих і найпростіших алгоритмів архівування даних. Наприклад, зображення при цьому представляється як послідовність байтів по рядкам растру. Стиснення в RLE відбувається за рахунок того, що у вихідній інформації зустрічаються ланцюжки однакових байтів. Заміна їх на пари < коефіцієнт повторення, значенню зменшує надлишковість даних.
В даному алгоритмі ознакою коефіцієнту (counter) є одиниці у двох верхніх бітах зчитаного байту:
Відповідно решта 6 бітів витрачаються саме на коефіцієнт, який може приймати значення від 1 до 64. Стрічку із 64 однакових байтів буде перетворено на два байти, тобто стиснуто у 32 рази.
Наприклад, стрічка АААББББВВВВВГГ буде записана як 3А4Б5В2Г. Для представлення послідовності треба 14 байтів, а для її коду – тільки 8. Але це дуже спрощена ілюстрація (треба враховувати максимальну довжину послідовності, кількість символів, все це потребує додаткової службової інформації. Приклад – код с розподілом рядка на частини).
Алгоритм застосовується найчастіше для стиснення ділової графіки, де є великі області однакового кольору. На ч.\б. зображенні це відрізки тільки 2 кольорів, що чергуються. Але уявить, що інформація пошкоджена – змінюється і послідовність, і довжини, тому стає потрібним захист.
Даний алгоритм застосовано у форматі PCX.
Другий варіант алгоритму
Другий варіант цього алгоритму має більший максимальний коефіцієнт стиснення та менше збільшує у розмірах вихідний файл.
Ознакою повтору в цьому алгоритмі є одиниця в старшому розряді поточного байту:
Як можна легко підрахувати, в кращому випадку цей алгоритм стискає файл в 64 рази (а не в 32 рази, як у попередньому варіанті), в гіршому - збільшує на 1/128. Середні показники приблизно однакові.
Даний варіант алгоритму застосовано у форматі TIFF.
Переваги RLE: не треба додаткової пам’яті, швидкість.
3.2. Коди Хафмана
Основні принципи:
- попередній статистичний аналіз джерела інформації (документа), щоби визначити ймовірності окремих символів (повідомлень);
- найбільш ймовірні символи представляють найбільш короткими кодовими послідовностями, а найменш ймовірні – більш довгими;
- ієрархічна структура кодових послідовностей додається до стиснутого документу або використовується певна модифікація з усередненою постійною структурою кодових послідовностей, що дає субоптимальний результат з точки зору стиснення (приклад – коди МККТТ, де використано постійну таблицю).
Розглянемо двійкове кодування для джерела з 5 можливими повідомленнями (наприклад, це текст, у якому певні літери зустрічаються з різною частотою):
Р1=0.4 Р2=0.35 Р3=0.10 Р4=0.10 Р5=0.05
Н=1.94 Нmax=log5=2.32 R= 0,16
Щоб побудувати код Хафмана, виписуємо елементи в порядку убування ймовірностей. Потім два найменш ймовірних елемента об’єднуємо в один і отримаємо додатковий набір 3 елементів, причому ймовірність одного з них дорівнює сумі ймовірностей двох. Аналогічно робимо с цим додатковим набором, поки не отримаємо один елемент з Р=1.
Далі будуємо граф, якій відображає ці операції:
Кодові комбінації находяться за допомогою графа як шлях до відповідного повідомлення, причому кожному відрізку цього шляху відповідає 0 в кодовій комбінації, якщо рух відбувається наверх, або 1 – якщо рух відбувається донизу:
1 – 1
2 – 00
3 – 011
4 – 0100
5 – 0101
При цьому середня кількість бітів на символ буде дорівнювати:
Н = 1 × 0.4 + 2 × 0.35 + 3 × 0.10 + 4 × 0.10 + 4 × 0.05 = 2 біта
Чому забезпечена однозначність декодування? Код є префіксним, тобто початок коду не може співпасти з більш коротким кодом (до кожного повідомлення на графі веде тільки один шлях). Ця властивість забезпечує зворотність кодування.
Найбільшу ефективність цей код демонструє для великих файлів, що зрозуміло, оскільки до закодованого файлу треба додавати таблицю кодування. В такому випадку ефективно діють модифіковані коди Хафмана, де кількість символів обмежена (наприклад, в кодах МККТТ для передачі факсів довжина відрізка до 512 ел. зобр., а більш довгі послідовності представляються як комбінація декількох відрізків максимальної довжини з відповідними кодами продовження та закінчення), але тоді не треба додавати таблицю. Код Хафмана є складовою складних форматів представлення зображень.
Стиснення даних (частина 2)
