Основные принципы Huffman-кодирования заключаются в том, что часто встречающимся символам присваивают короткие коды, а редким — длинные. el-ed.ru www.wscubetech.com В результате общий размер данных уменьшается, так как наиболее частые символы занимают меньше места. www.wscubetech.com
Процесс построения кода включает несколько этапов: el-ed.ru
- Анализ частот. el-ed.ru Каждый символ получает узел с весом, равным числу его проявлений. el-ed.ru
- Формирование дерева Хаффмана. el-ed.ru Два наименее частотных узла объединяются в новый, с суммарной частотой. el-ed.ru Процесс продолжается до тех пор, пока не останется одно дерево, представляющее всё множество символов. el-ed.ru
- Присвоение кодов. el-ed.ru Каждому символу присваивается уникальный двоичный код, соответствующий пути от корня до листа: «0» — для движения влево, «1» — вправо. el-ed.ru Благодаря такой структуре ни один код не пересекается с другим, что исключает двусмысленность при чтении. el-ed.ru
- Замена исходных символов на соответствующие коды. el-ed.ru В итоге получается компактное представление данных без потерь, что ценно в системах хранения, архивирования и цифровой передачи. el-ed.ru
Некоторые области применения Huffman-кодирования: