
- •Оптимальне кодування
- •Основні властивості оптимальних кодів
- •Методика Шенона і Фано
- •Методика Хаффмана
- •Оптимальні нерівномірні коди (онк)
- •Завадостійке кодування
- •Роздільні і не роздільні коди
- •Лінійні групові коди
- •Спосіб формування кодів.
- •Лінійні блокові коди
- •Загальні особливості стиснення інформації.
- •Розглянемо деякі способи стиснення
- •Стиск інформації
- •Метод стиску Лемпеля-Зіва (Lempela-Ziva)
- •Алгоритм lzss
- •Алгоритм lz78
- •Алгоритм lzw
- •Стиск інформації із втратами
- •Загальні теоретичні основи цифрових комунікацій
- •Особливості та алгоритми кодування голосу.
- •Огляд каналів та систем передачі інформації
- •Мережі типу Wi-Fi
- •Мережі типуBluetooth
- •Мережі типу Wi-max
- •Cтандарт іеее 80216
- •Загальні особливості оптичних каналів зв’яку
- •Вірогідність передачі колових повідомлень
- •Деякі способи стиснення при передачі інформації
- •Зонне стиснення інформації
- •Стиснення інформації використанням адаптивного кодування
- •Стиснення інформації збільшення основи коду
- •Ефективність кодуванні при збільшення основи коду
- •Вплив зворотнього зв'язку на ефективність передачі інформації
- •Код Ріда-Соломона
Загальні особливості стиснення інформації.
Існує декілька підходів до проблеми стиснення інформації. Одні мають досить складну теоретично-математичну основу, складні в реалізації, однак забезпечують максимальний ефект від стиснення. Інші базуються на особливостях інформаційного потоку, алгоритмічно прості в реалізації, однак ефективності тільки для певних інформаційних потоків.
Будь-який спосіб, підхід чи алгоритм, який реалізовує стиснення даних призначений для усунення надлишковості інформації,призначений для зменшення об’єму пам’яті, що потрібно для зберігання інформації часто стиснення інформації називають : компресією інформації.
Усі алгоритми стиснення інформації оперують вхідним інформаційним потоком, мінімальною одиницею якого якого є біт.
Метою стиснення є отримання компактного вихідного потоку інформаційних одиниць з деякого некомпактного потоку за допомогою операцій перетворення у цьому потоці.
Основними характеристиками процесів стиснення та результатом роботи є наступне:
Степінь стиснення або відношення об’єму початкового та результативного потоків
Швидкість стиснення це – час, який затрачається стиснення деякого об’єму інформації вхідного потоку до отримання з якого еквівалентного вхідного потоку.
Якість стиснення – це величина, яка показує наскільки щільно упакований вихідний потік при застосуванні даного алгоритму стиснення
Усі алгоритми стиснення якісно діляться на 2 класи:
Алгоритми стиснення без втрат, при використанні яких вихідний потік має менший об’єм, а дані при оберненому перетворенні (декомпресії) відновлюються без найменших змін.
І відповідно цього процесу дані можна обробити у відповідності із їх внутрішнім форматом.
Алгоритмами стиснення з втратами які виділяються з потоку даних інформації, що несуттєво впливає на суть даних або взагалі не сприймається користувачем
Наприклад, для відео чи графічних зображень .
Перша група алгоритмів найчастіше використовується в крипто-системах (системах захисту).
Зупинимося на алгоритмах стиснення без втрат.
В них стиснення як процес розглядається із статичної точки зору, що є ефективним як для побудови алгоритмів стиснення так і для оцінки їх ефективності.
Для таких алгоритмів існує поняття вартості кодування.
Вартістю кодування вважається середня довжина кодового слова у бітах.
Фундаментальна теорія Шеннона про кодування інформації говорить про те, що вартість кодування завжди є більшою від ентропії первинного алфавіту, хоча може бути як завгодно близькою до неї. Тому для будь-якого алгоритму завжди є межа ступеню стиснення, яка визначається ентропією вхідного потоку.
Розглянемо деякі способи стиснення
Стиснення способу кодування серій
Кодування серій послідовностей (RLE) це найпростіший підхід та алгоритм стиснення інформації без втрат. Суть таких алгоритмів полягає в заміні послідовностей або серій байтів, які повторюються на один кодуючий байт і лічильних їх повторень. Перший байт вказує на те скільки раз потрібно повторити наступний байт, якщо перший байт нульовий то після нього йде лічильник який показує скільки за ним слідує байтів, що не повторюються. Такий метод досить ефективний для стиснення графічних зображень. Якщо файли з малою кількістю послідовних байтів, що утворюються, то стиснення таких файлів не ефективне.
Стиснення алгоритмом Хафмана
Метою кодування цим методом є перетворення вхідного потоку у потік біт мінімальної довжини. Якщо розподіл ймовірностей появи символів з алфавіту вхідного потоку відомо, то можна побудувати модель оптимального кодування, але існує велика кількість форматів файлів коли розподіл ймовірностей наперед не відомо, тому в загальному випадку використовують 2 підходи.
Перший полягає у перегляді вхідного потоку і побудові кодування на основі зібраної статистики. При цьому треба робити 2 проходи по файлу. Один для збору статистичної інформації та розподілу ймовірностей. Другий для кодування. У цьому підході у вихідний потік записується кодова таблиця яка потім використовується для декомпресії.
Інший підхід це метод адаптивного кодування, відомий як динамічний метод Хафмана, Клута, Вітера.
Його загальний принцип полягає в тому щоб змінювати схему кодування, взалежності від змін вхідного потоку. Такий підхід базується на однопрохідному алгоритмі і не вимагає передачі інформації про використане кодування у явному випадку. Адаптивне кодування може дати більшу ступінь стиснення у порівнянні із статичними, бо більш повно враховуються зміни частот появи символів вхідного потоку. Такий підхід часто застосовується в телекомунікаційних системах.
Арифметичне кодування
Це метод, що дозволяє стискати символи вхідного алфавіту без втрат за умови, що відомий розподіл частот усіх символів. Концепцію цього методу запропонував Еліас, в 60-х роках минулого століття, а потім було багато вдосконалень цього підходу. Арифметичне кодування є досить ефективним, бо досягається теоретична границя ступеня стиснення ентропії вхідного потоку. Текст який стиснений арифметичним кодером розглядається як деякий двійковий дріб з інтервалу 0…1. Результатом стиснення можна подати як послідовність двійкових цифр із цього дробу. Арифметичний декодер працює синхронно з кодером, починаючи з інтервалу 0…1 він послідовно визначає символи вхідного ланцюжка. Під час реалізації цього методу необхідно використовувати дійсну арифметику високої точності і результат кодування отримують із запізненнями.