
П.5. Компрессия данных
Компрессию
(сжатие)
данных применяют для уменьшения времени
их передачи. На компрессию и декомпрессию
данных тратится время. Выигрыш во времени
от передачи сжатых данных заметен лишь
для низкоскоростных каналов (для
современной аппаратуры - на скоростях
Кбит/с). При статической
компрессии данные сжимаются предварительно
(например, - архиваторами типа
),
а уже потом отсылаются в сеть.
Напротив, многие
модели коммуникационного оборудования
(модемы, мосты, коммутаторы, маршрутизаторы
и т.д.) поддерживают протоколы динамической
компрессии данных. Эти протоколы могут
обеспечить коэффициент сжатия информации
,
а иногда – даже
.
Есть стандартные протоколы сжатия,
например, -
,
и много фирменных протоколов. Коэффициент
сжатия зависит от типа данных. Графические
и текстовые данные обычно сжимаются
хорошо, а коды программ – хуже.
Каждый алгоритм сжатия применим к определенному типу данных. Интеллектуальные модемы делают адаптивную компрессию: в зависимости от передаваемых данных берется определенный алгоритм сжатия. Опишем некоторые из алгоритмов сжатия данных в компьютерных сетях.
Десятичную
упаковку
применяют для числовых данных. Их
сжимают, уменьшая число бит на цифру с
до
простым двоичным кодированием (см. п.
5.1) десятичных цифр (вместо применения
кода
).
В таблице
старшие
бита кодов таких цифр содержат
.
Поместив управляющий символ в заголовок
кадра, можно сократить длину кадра.
Относительное
кодирование – альтернатива
десятичной упаковке при передаче
числовых данных с небольшими отклонениями
между последовательными цифрами.
Передаются лишь эти отклонения и
известное опорное значение, как, например,
- в методе
(см. п. П.3).
Символьное подавление применяют, если в часто передаваемых данных много повторяющихся байт. Например, при передаче черно-белого изображения черные поверхности (наиболее освещенные участки изображения) дают большое число байт из ( ). Каждую комбинацию из х и более одинаковых байт передатчик заменяет особой байтовой комбинацией. В последней указано значение байта, число его повторений и отмечено начало этой комбинации специальным управляющим символом.
Коды переменной длины (неравномерное кодирование) изучены в п. 4.2. Они наиболее эффективны при большой неравномерности распределения частот передаваемых символов. Например, - при передаче длинных текстовых строк. При передаче двоичных данных, таких как коды программ, они мало эффективны: их битовые коды распределены почти равномерно. Однозначное декодирование обеспечено лишь для префиксных кодов (см. п. 4.2).