русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Арифметическое сжатие


Дата добавления: 2015-07-23; просмотров: 1515; Нарушение авторских прав


 

Сжатие по методу Хаффмана постепенно вытесняется арифметическим сжатием. Свою роль в этом сыграло то, что закончились сроки действия патентов, ограничивающих использование арифметического сжатия. Кроме того, алгоритм Хаффмана приближает относительные частоты появления отсчетов в потоке частотами, кратными

Рисунок 3.2. Коды Хаффмана

 

степени двойки (например, для символов а, b, с, d с вероятностями 1/2, 1/4, 1/8, 1/8 будут использованы коды О, 10, 110, 111), а арифметическое сжатие дает лучшую степень приближения частоты. По теореме Шеннона наилучшее сжатие в двоичной арифметике мы получим, если будем кодировать отсчет с относительной частотой f с помощью бит.

На рис. приводится сравнение оптимального кодирования и кодирования по методу Хаффмана. Хорошо видно, что в ситуации, когда относительные частоты не являются степенями двойки, сжатие становится менее эффективным (мы тратим больше битов, чем это необходимо). Например, если у нас два отсчета а и b с вероятностями 253/256 и 3/256, то в идеале мы должны потратить на цепочку из 256 байт

 

,

т. е. 24 бита. При кодировании по Хаффману мы закодируем а и b как 0 и 1 и нам придется потратить 1 -253+1 -3=256 бит, т. е. в 10 раз больше.

 

Рисунок 3.3. Сравнение эффективности арифметического сжатия и метода Хаффмана

 

Арифметическое сжатие - достаточно изящный метод, в основе которого лежит очень простая идея. Кодируемая последовательность представляется в виде дроби, при этом дробь строится таким образом, чтобы последовательность данных была представлена как можно компактнее. Для этого последовательность разбивается на подынтервалы с длинами, равными вероятностям появления величин в потоке [5].

Арифметическое сжатие выделяется тем, что обеспечивает возможность кодирование менее одного бита на символ.



 



<== предыдущая лекция | следующая лекция ==>
Алгоритм Хаффмана | Методы сжатия с потерей информации


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.