100
ных системах передачи кодированной цифробуквенной информации алгоритм
RLE используется мало.
Вероятностные методы сжатия используют кодовые слова переменной
длинны. В основе вероятностных методов сжатия (алгоритмов Шеннона-Фано
и Хаффмена) лежит идея построения «дерева», на «ветвях» которого положение
символа определяется частостью его появления. Каждому символу присваива-
ется код, длина которого обратно пропорциональна частости появления этого
символа. Существуют две разновидности вероятностных методов, различаю-
щихся способом определения вероятности появления каждого символа:
– статические методы, использующие фиксированную таблицу частости
появления символов, рассчитываемую перед началом процесса сжатия,
– динамические или адаптивные методы, в которых частость появления
символов все время меняется и по мере считывания нового блока данных про-
исходит перерасчет начальных значений частостей.
Статические методы имеют значительное быстродействие и не требуют
большой оперативной памяти. Они нашли широкое применение в многочис-
ленных программах–архиваторах, например ARC, PKZIP и др., но для сжатия
передаваемых модемами данных используются редко – предпочтение отдается
арифметическому кодированию и методу словарей, обеспечивающим большую
степень сжатия.
Арифметические методы. При арифметическом кодировании строка сим-
волов заменяется действительным числом больше нуля и меньше единицы
Арифметическое кодирование позволяет обеспечить высокую степень сжатия,
особенно в случаях, когда сжимаются данные, где частость появления различ-
ных символов сильно варьируется. Однако сама процедура арифметического
кодирования требует мощных вычислительных ресурсов, так как активно ис-
пользует нецелочисленную арифметику, и до недавнего времени этот метод
мало применялся при сжатии передаваемых данных. Лишь появление мощных
процессоров, особенно с RISC–архитектурой, позволило создать эффективные
устройства арифметического сжатия данных.
Метод словарей. Алгоритм для метода словарей описан в работах Зива и
Лемпеля, которые впервые опубликовали его в 1977 г. В последующем алгоритм
был назван Lempel-Ziv, или сокращенно LZ. На сегодня LZ–алгоритм и его мо-
дификации получили наиболее широкое распространение по сравнению с дру-
гими методами сжатия. В его основе лежит идея замены наиболее часто встре-
чающихся последовательностей символов (строк) в передаваемом потоке ссыл-
ками на «образцы», хранящиеся в специально создаваемой таблице (словаре).
8.2.1 Вероятностные методы сжатия
Согласно методу Шеннона-Фано для каждого символа формируется бито-
вый код, причем символы с различными частостями появления имеют коды
различной длины [16]. Чем меньше частость появления символов в файле, тем
больше размер его битового кода. Соответственно, чаще появляющийся символ
имеет меньший размер кода.