Методы арифметического кодирования информации и сравнение их коэффициентов сжатия

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

? 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;

-невысокая потребность ресурсов;

-наглядность разработки интерфейса;

-предоставляемые возможности работы с базами данных;

-скорость работы разработанного программного обеспечения;

-обработка исключительных ситуаций;

-время создания разработанного программного обеспечения;

-удобство эксплуатации;

-средства контроля версий составных частей проекта;

-наличие удобной справочной системы.

Для выбора инструментального средства воспользуемся методом вариантных сетей. Этот метод предназначен для выбора наилучшего варианта из нескольких предложенных и состоит из следующих этапов:

-определение критериев, по которым будет произведено сравнение и

-степени их важности;

-каждый вариант оценивается по полученному перечню критериев (получается численное значение - оценка);

-нахождение общего количества ба