Мне действительно нужна помощь с кодированием Хаффмана для сжатия без потерь. Я готовлюсь к экзамену, и мне нужно это понять, знает ли кто-нибудь простые уроки, чтобы понять это, или кто-то может объяснить.
Вопросы на экзамене, вероятно, будут:
Предположим, что алфавит [A, B, C], а известное распределение вероятностей P (A) = 0,6,
P (B) = 0,2 и P (C) = 0,2. Для простоты давайте также предположим, что и кодер, и декодер знают
что длина сообщений всегда равна 3, поэтому терминатор не нужен.
Сколько битов требуется для кодирования сообщения ACB по кодированию Хаффмана? Вам нужно
предоставить дерево Хаффмана и код Хаффмана для каждого символа. (3 оценки)
Сколько бит необходимо для кодирования сообщения ACB с помощью арифметического кодирования? Вам нужно
предоставить подробную информацию о процессе кодирования. (3 оценки)
Используя приведенные выше результаты, обсудите преимущество арифметического кодирования над кодированием Хаффмана.
(1 балл)
Ответы:
Код Хаффмана: A - 1, B - 01, C - 00.
Результат кодирования - 10001, поэтому необходимо 5 бит. (3 оценки)
Процесс кодирования арифметического кодирования:
Символ Низкий высокий диапазон
0,0 1,0 1,0
А 0,0 0,6 0,6
С 0,48 0,6 0,12
B 0,552 0,576 0,024
Конечное двоичное кодовое слово равно 0,1001, то есть 0,5625. Поэтому необходимо 4 бита. (3 оценки)
В кодировании Хаффмана длина кодового слова для каждого символа должна быть целым числом. Но это
может быть дробным в арифметическом кодировании. Поэтому арифметическое кодирование часто более эффективно
чем кодирование Хаффмана, как результаты, показанные выше. (1 балл)