![]()
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||||
Методичні вказівкиКодування Хаффмена. Нехай вхідний потік складається з символів, що належать до множини 1. Вибираємо з множини 2. Ставимо у відповідність символу, що має більшу ймовірність біт 0, а іншому – біт 1. 3. Об’єднуємо у множині А символи 4. Повторюємо кроки 1-3 доти, поки множина А не звузиться до одного символу. Результат роботи цього алгоритму зручно зобразити у вигляді бінарного дерева, у вузлах якого розташовані символи (або групи символів) множини
За код символу візьмемо значення бітів на гілках дерева, які треба пройти від кореня, щоб потрапити на цей символ: ’а’-0, ’в’-10 ,’с’-110, ‘d’-111. Отже, для вхідної послідовності авсаваdа одержиться результуючий код 01011001001110. Його довжина дорівнює 14 бітів, що на два біти менше, ніж звичайне кодування (по два біти на символ). Адаптивне кодування Хаффмена.Для практичної реалізації кодування Хаффмена необхідна апріорна інформація про ймовірності символів. Якщо ж ці ймовірності наперед невідомі, то потрібно застосовувати адаптивне кодування. В цій модифікації методу використовується цілочисельний масив 1. За лічильниками 2. Читаємо символ з вхідного потоку і записуємо в архівний файл його код. 3. Збільшуємо в масиві 4. Продовжуємо кроки 1-3 доти, поки вхідний потік не буде вичерпано. При розархівації даних масив 1. За лічильниками 2. Читаємо біти з архівного файла доти, поки не одержимо повністю код деякого символу. 3. Записуємо розкодований символ у результуючий файл і у масиві 4. Виконуємо кроки 1-3 доти, поки архівний файл не буде оброблено повністю. Арифметичне кодування. В алгоритмі використовуються змінні 1. Розбиваємо інтервал 2. Вибираємо ту частину, яка відповідає прочитаному з вхідного потоку символу. Одержуємо нові межі. 3. Якщо 4. Повторюємо кроки 1-3 доти, поки числа 5. Поки 6. Повторюємо кроки 1-5 доти, поки усі символи з вхідного потоку не будуть оброблені. При розархівації покладемо спочатку 1. Розбиваємо інтервал 2. Читаємо з архівного файла поточний біт. Якщо він дорівнює 0, то переобчислюємо 3. Якщо для деякого символу з кодом 4. Повторюємо кроки 1-3 доти, поки усі символи не будуть розкодовані. Зауважимо, що: 1. У архівний файл треба заносити довжину вхідного потоку і кількість заповнених бітів в останньому байті цього файла. 2. При декодуванні архівного файла може виникнути ситуація, коли всі біти вичерпано, а ще не всі символи ідентифіковані. Тоді у результуючий файл треба записувати ті символи, інтервали яких містять число 0.5. 3. Алгоритм можна пришвидшити, якщо замість дійсних чисел з інтервалу 4. Аналогічно як адаптивне кодування Хаффмена, формулюється алгоритм адаптивного арифметичного кодування. PPM методи обчислення ймовірностей.Для подаль-шого опису алгоритму введемо такі позначення :
Існує три модифікації РРМ-методів, які називаються РРМА, РРМВ, РРМС. РРМА: ймовірність появи символу РРМВ: РРМС: Метод Лемпеля-Зіва. Ідея цього методу полягає в тому, що замість довгих послідовностей символів, які вже зустрічалися у вхідному потоці, записувати в архівний файл посилання на ці послідовності (їх довжину і позицію входження). Найчастіше в архіваторах використовують модифікацію цього алгоритму, при якій входження шукається в останніх прочитаних 4К символів. У цьому випадку для ідентифікації позиції входження необхідно 12 бітів. Для запису довжини послідовності найкраще використовувати 4 біти.
Завдання для самостійної роботи Написати програму-архіватор (непарні варіанти) і програму-розархіватор (парні варіанти), які базуються на методах кодування, перелічених нижче. 1-2. Хаффмена (для текстів, написаних українською мовою), де ймовірності символів задані так: ‘ ‘ - 0.175 ‘о’ – 0.090 ‘е’ – 0.072 ‘а’ – 0.062 ‘і’ - 0.062 ‘т’ – 0.053 ‘н’ – 0.045 ‘с’ – 0.040 ‘р’ – 0.038 ‘в’ – 0.035 ‘л’ – 0.028 ‘к’ – 0.026 ‘м’ – 0.025 ‘д’ – 0.023 ‘п’ – 0.021 ‘у’ – 0.018 ‘я’ - 0.016 ‘и’ – 0.016 ‘з’ – 0.014 ‘б’ - 0.014 ‘г’ – 0.013 ‘ч’ – 0.012 ‘й’ – 0.010 ‘х’ – 0.009 ‘ж’ – 0.007 ‘ї’ – 0.007 ‘ь’ – 0.007 ‘ю’ – 0.006 ‘ш’ – 0.006 ‘ц’ – 0.004 ‘щ’ – 0.003 ‘ф’ – 0.002 ‘’’ – 0.002 3-4. Адаптивного методу Хаффмена. 5-6. Арифметичного кодування, (для текстів, написаних українською мовою), де ймовірності обчислюються так само, як і у варіантах 1-2. 7-8. Методом адаптивного арифметичного кодування. 9-10. Методом Лемпеля-Зіва. 11-12. РРМА + адаптивного Хаффмена. 13-14. РРМB + адаптивного Хаффмена. 15-16. РРМC + адаптивного Хаффмена. 17-18. РРМА + адаптивного арифметичного кодування. 19-20. РРМB + адаптивного арифметичного кодування. 21-22. РРМC + адаптивного арифметичного кодування. 23-24. Лемпеля-Зіва + адаптивного Хаффмена. 25-26. Лемпеля-Зіва + адаптивного арифметичного кодування.
Читайте також:
|
||||||||||
|