- •Виды информации, способы представления и передачи информации;
- •Виды и модели источников информации;
- •Источники Бернулли.
- •Источники Маркова.
- •Виды информации.
- •Энтропия источника и оценка количества информации;
- •Упаковка.
- •Методы сжатия числовой информации;
- •Способ хранения данных для больших числовых таблиц;
- •Алгоритм rle;
- •Коды целых переменной длины;
- •Принцип арифметического кодирования;
Упаковка.
Упаковка – процесс сродни укладке чемодана. Множество коробочек разного размера занимают больший объем, чем, если достать из них все вещи и сложить в один чемодан. Если путем изменения местоположения и взаимного расположения носителей информации удается сократить ее объем, то мы и будем считать такой процесс упаковкой. Упаковка отличается исключительной простотой и высокой скоростью работы. Например:
- известно, что файлы на дисках хранятся по секторам. Положим размер сектора равен 512 байтам. Размеры файлов самые разные. Поскольку кластер – минимальная, неделимая единица объема диска то файлы длиной 2 и 508 байт займут один кластер, а файлы размером в 513 и 1001 байт – уже два кластера. Таким образом мы можем потерять до 511 байт дискового пространства.
Такую же процедуру выполняют и современные архиваторы при создании так называемых Solid-архивов, выигрывая на этом несколько процентов в степени сжатия.
-
Методы сжатия числовой информации;
Одним из широко известных способов сжатия последовательности цифровых данных (например результатов измерения процесса F(ti) в дискретные промежутки времени ti, i=1..N) является аппроксимация. Действительно, вместо передачи длинного набора чисел можно передать лишь набор коэффициентов аппроксимирующего полинома Pj, j=0..K. Степень сжатия в этом случае равна (K+1)/N.
В качестве аппроксимирующего полинома можно взять один из широко известных в математике или подобрать свой собственный, наиболее соответствующий задаче. От соотношения параметров К и N зависит компромисс между степенью сжатия и точностью восстановления, поскольку извлечение информации при таком методе возможно лишь с некоторой погрешностью (потерями), которые тем больше, чем выше степень сжатия.
А как быть, если требуется передать данные без потерь? И здесь предложенный способ может помочь, стоит его лишь несколько расширить:
Предположим, нам надо передать массив из N чисел, каждое из которых не превышает величины n. При непосредственном представлении для этого потребуется Nlog(n) бит. Пусть нам удалось подобрать такой аппроксимирующий полином порядка К, что все погрешности (ошибки отклонения истинного значения от его аппроксимированного варианта) укладываются в диапазон значений k < n. Тогда, как нетрудно подсчитать, после сжатия длина массива составит N log(k) + (K+1) log(n) . При достаточно больших значениях N (N >> K) степень сжатия будет примерно равна
log(k) / log(n).
Рассмотренный способ особенно эффективно работает для данных, описываемых моделью Маркова 1 порядка, у которых большая часть условных вероятностей сосредоточена вблизи главной диагонали, т.е. pi,j тем больше, чем меньше разность между i и j. К таким процессам относятся, например, годовые или суточные колебания температуры. Маловероятно, что, если сегодня температура воздуха -20С, то завтра будет +10. Скорее ожидать -19 или -21.
Очень простым способом сжатия с потерями является отбрасывание незначащих разрядов или округление (о чем уже говорилось) или прореживание, т.е. простое отбрасывание некоторого количества результатов (обычно-через один, через два и т.д.). И то и другое, в конечном итоге, является методом снижения высокочастотного шума и сводится к более общему понятию низкочастотной фильтрации.