Методы арифметического кодирования информации и сравнение их коэффициентов сжатия
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
? r - это бинарный код числа (r + c), помещенный в количество бит, равное b.
Блок-схема, описывающая логику вышеописанного алгоритма, показана на рисунке 2.6.
Рисунок 2.6 - Блок-схема алгоритма кодирования методом Голомба
2.3 Описание алгоритма, реализующего кодирование при помощи чисел Фибоначчи
Суть алгоритма кодирования:
Числа Фибоначчи - это последовательность чисел, в которой каждое последующее равно сумме двух предыдущих. То есть, 1,2,3,5,8,13…
Пусть числа Фибоначчи имеют свой порядковый номер, то есть F(1)=1;
F(2)=2; F(3)=3; F(4)=5; F(6)=8 и т.д.
Пусть есть число Х, которое следует закодировать с помощью чисел Фибоначчи. По сути, требуется разложить это число Х на числа Фибоначчи.
Итак, опишем пошагово алгоритм:
. Находим число Фибоначчи наиболее близкое к числу Х. Пусть это будет число Fx ; а ix - порядковый номер числа Fx, то есть F(ix) = Fx.
. В ix-м бите кода ставим 1.
. Вычитаем из Х число Fx. Повторяем шаги 1,2,3 до тех пор, пока Х>0.
. В полученной кодовой последовательности на местах, где нет 1, ставим 0, а после последней 1 ставим еще одну 1.
Блок-схема, описывающая логику вышеописанного алгоритма, показана на рисунке 2.7.
Рисунок 2.7 - Блок-схема алгоритма кодирования с помощью чисел Фибоначчи
2.4 Описание алгоритма, реализующего гамма-код Элиаса
Суть алгоритма кодирования:
Пусть есть целое положительное число N, которое требуется закодировать.
. Находим b = log2(N) - максимальная целая степень, возводя в которую 2, получаем число, максимально приближенное к N.
. Находим число q = N - 2b.
. Гамма-код числа N имеет вид:
.1. Код b - инверсный унарный код числа b, то есть представимо в виде: 000…001, где количество нулей равно самому числу b.
.2. Код q - просто бинарный код числа q, помещенный в количество бит, равное b.
Блок-схема, описывающая логику вышеописанного алгоритма, показана на рисунке 2.8.
Рисунок 2. 8 - Блок-схема алгоритма гамма - кодирования Элиаса
2.5 Описание алгоритма, реализующего дельта-код Элиаса
Суть алгоритма кодирования:
Пусть есть целое положительное число N, которое требуется закодировать.
. Находим b = log2(N) - максимальная целая степень, возводя в которую 2,
получаем число, максимально приближенное к N.
. Находим число q = N - 2b.
. Находим параметр b1=b+1
. Дельта-код числа N имеет вид:
.1. Код b1 - гамма-код Элайеса числа b1.
.2. Код q - просто бинарный код числа q, помещенный в количество бит, равное b.
Блок-схема, описывающая логику вышеописанного алгоритма, показана на рисунке 2.9.
Рисунок 2. 9 - Блок-схема алгоритма дельта - кодирования Элиаса
3. ОБОСНОВАНИЕ И ОПИСАНИЕ ПРОГРАММ КОДИРОВАНИЯ
3.1 Обоснование выбора инструментальных средств
Современные программно-инструментальные средства разработки ПО характеризуются большим разнообразием характеристик. Так, в настоящее время инструментальные средства позволяют:
-базируясь на стандартных компонентах создавать интерфейс приложения в зависимости от состояния системы передавать управление различным процессам;
-создавать базы данных и оболочки для баз данных;
-выполнять корректную обработку исключительных ситуаций, что позволяет повысить надёжность ПО.
Современные средства разработки характеризуются следующими параметрами:
-поддержка объектно-ориентированного стиля программирования;
-возможность использования CASE-технологий для проектирования разрабатываемой системы, использование визуальных компонент для наглядного проектирования интерфейса;
-наличие визуальной технологии разработки интерфейса;
-возможность использования алгоритмов реляционной алгебры для управления реляционными базами данных;
-предоставление средств синхронизации и контроля версий составных частей проекта (эти средства используются при разработке программного обеспечения группами программистов);
-создание инсталляционных пакетов для распространения разработанного программного обеспечения.
При создании прототипа программного обеспечения главными критериями выбора программно-инструментальных средств разработки являются:
-скорость разработки приложений;
-удобство использования;
-возможность быстрого внесения изменений в программу;
Обеспечить минимальное время разработки можно только при выполнении этих условий. Исходя из приведенных требований, выделим следующие характеристики средств разработки программного обеспечения:
-стоимость IDE;
-невысокая потребность ресурсов;
-наглядность разработки интерфейса;
-предоставляемые возможности работы с базами данных;
-скорость работы разработанного программного обеспечения;
-обработка исключительных ситуаций;
-время создания разработанного программного обеспечения;
-удобство эксплуатации;
-средства контроля версий составных частей проекта;
-наличие удобной справочной системы.
Для выбора инструментального средства воспользуемся методом вариантных сетей. Этот метод предназначен для выбора наилучшего варианта из нескольких предложенных и состоит из следующих этапов:
-определение критериев, по которым будет произведено сравнение и
-степени их важности;
-каждый вариант оценивается по полученному перечню критериев (получается численное значение - оценка);
-нахождение общего количества ба