Содержание
- 2. 26.10.2015 Деревья Динамическое кодирование по Хаффману Недостатки статического метода Хаффмана : двухпроходность алгоритма (сначала вычисляются веса
- 3. 26.10.2015 Деревья Динамический (однопроходный) метод Хаффмана
- 4. 26.10.2015 Деревья Алгоритм перестроения дерева Хаффмана Пусть дерево Хаффмана (ДХ) строится так, что левый сын имеет
- 5. 26.10.2015 Деревья Пояснения: левый вариант правый вариант (2, 3, 4, 5, 5, 9, 14) (2, 3,
- 6. 26.10.2015 Деревья Дерево Хаффмана является строго бинарным и содержит ровно 2n − 1 узлов, n из
- 7. 26.10.2015 Деревья В общем случае неубывающая последовательность весов x1 ≤ x2 ≤ x3 ≤ … ≤
- 8. 26.10.2015 Деревья Строго бинарное дерево – упорядоченное, если:
- 9. 26.10.2015 Деревья Из различных деревьев Хаффмана можно выбрать такое, которое не изменится при модификации веса w
- 10. 26.10.2015 Деревья Пример обеспечения свойства модифицируемости Инвариант: (2, 3, 5, 5, 5, 6, 10, 11, 11,
- 11. 26.10.2015 Деревья
- 12. 26.10.2015 Деревья 9 Это дерево также имеет инвариант (2, 3, 5, 5, 5, 6, 10, 11,
- 13. 26.10.2015 Деревья Окончательно имеем В итоговом алгоритме перевешивания и коррекции весов происходят в одном цикле на
- 14. 26.10.2015 Деревья АБРАКАДАБРА! Пример динамического кодирования Обозначим α! – узел нулевого веса, отображающий любой символ алфавита,
- 15. 26.10.2015 Деревья А1Б2Р3А4К5А6Д7А8Б9Р10А11!12 А1Б2Р3А4К5А6Д7А8Б9Р10А11!12 А ⇒ А Б ⇒ 0Б
- 16. 26.10.2015 Деревья А1Б2Р3А4К5А6Д7А8Б9Р10А11!12 Р ⇒ 00Р
- 17. 26.10.2015 Деревья А1Б2Р3А4К5А6Д7А8Б9Р10А11!12 А ⇒ 0 К ⇒ 100 К
- 18. 26.10.2015 Деревья 18 А1Б2Р3А4К5А6Д7А8Б9Р10А11!12 А ⇒ 0 Д → 1100Д К
- 19. 26.10.2015 Деревья А1Б2Р3А4К5А6Д7А8Б9Р10А11!12 А ⇒ 0. Б → 110
- 20. 26.10.2015 Деревья А1Б2Р3А4К5А6Д7А8Б9Р10А11!12 Р ⇒ 110 (ср. шаг 9 !) А ⇒ 0
- 21. 26.10.2015 Деревья ! ⇒1000!. Конец текста. Перестраивать дерево не требуется. А 0Б 00Р 0 100К 0
- 22. 26.10.2015 Деревья Кодирование первых вхождений Если 1 ≤ i ≤ 2q, то символ αi кодируется как
- 23. 26.10.2015 Деревья А, Б, В и Г кодируются 6-битными кодами 000000, 000001, 000010 и 000011 остальные
- 24. 26.10.2015 Деревья А0Б00Р0100К01100Д011011001000! А0Б00Р0100К 01100Д011011001000! 000000 0 000001 00 01111 0100 01001 01100 00010 011011001000 11111
- 25. 26.10.2015 Деревья Спец.кодировка 0 0 0 0 0 0 0 0 0 0 0 0 0
- 26. 26.10.2015 Деревья Декодирование 00000000000010001111010001001011000001001101100100011111 1) В спец. кодировке: 000000 - А 00000000000010001111010001001011000001001101100100011111
- 27. 26.10.2015 Деревья 2) α! + Б 00000000000010001111010001001011000001001101100100011111 00000000000010001111010001001011000001001101100100011111 3) α! + Р → АБР
- 28. 26.10.2015 Деревья 00000000000010001111010001001011000001001101100100011111 4) А (вес(А) 1→2) 5) α! + К
- 29. 26.10.2015 Деревья 00000000000010001111010001001011000001001101100100011111 6) А (вес(А) 2→3) 7) α! + Д → АБРАКАД
- 30. 26.10.2015 Деревья 00000000000010001111010001001011000001001101100100011111 8) А (вес(А) 3 →4) 9) Б (перевес Б-Р) → АБРАКАДАБ
- 31. 26.10.2015 Деревья 00000000000010001111010001001011000001001101100100011111 10) Р (вес(Р) 1 → 2) 11) А (вес(А) 4 → 5)
- 32. 26.10.2015 Деревья АБРАКАДАБРА 00000000000010001111010001001011000001001101100100011111 12) α! + ! Конец сообщения
- 33. 26.10.2015 Деревья Проблемы динамического (адаптивного) кодирования Хаффмена Переполнение: переполнение весов Решение – масштабирование длина кода больше
- 35. Скачать презентацию