- •1 Обзор методов сжатия изображений
- •Общие понятия, связанные с изображениями
- •Требования к jpeg
- •Форматы графических файлов
- •Файлы bmp
- •1.3.2 Файлы pcx
- •1.3.3 Файлы jpeg
- •Сравнительная характеристика алгоритмов сжатия
- •Выбор и обоснование выбранного метода
- •Обоснование выбора метода сжатия изображения
- •Алгоритм архивации графики jpeg
- •2.2.1 Дискретное косинус преобразование
- •2.2.2 Этап Квантования
- •2.2.3 Этап Вторичного Сжатия
- •3. Разработка программно-аппаратных модулей
- •3.1 Разработка программного модуля на языке MatLab
- •4. Анализ вычислительной сложности
- •4.1 Требуемый объем памяти
- •Количество операций
- •Руководство пользователя
- •Заключение
- •Библиография
4. Анализ вычислительной сложности
4.1 Требуемый объем памяти
При анализе вычислительной сложности необходимо руководствоваться объемом ОЗУ ЦПОС TMS320C6711. Так как параметры системы сжатия хранятся в виде констант, то нужно определить какой объем памяти необходим для размещения всех значений.
Для работы с одним изображением (возьмем средних размеров изображение) нам необходимо выделить память под:
Исходное, сжатое и промежуточное изображения;( 3 таблицы – R,G,B)
Три промежуточные матрицы размером 8х8 для работы с блоками изображения;
Таблицу квантов 8х8;
Таблица коэффициентов ДКП и транспонированная таблица.
Исходя из того, что размер каждой из таблиц 8*8, имеем:
Объем памяти = 3*3*(100*100)+3*(8*8)+8*8+2*8*8 = 90384 [слов]
Из расчетов видно, что для размещения параметров системы сжатия в памяти необходимо примерно 90384 слова, следовательно, на ЦПОС TMS320C6711 с установленными 16 Мбайт оперативной памяти, реализовать поставленную задачу представляется возможным.
Количество операций
Процесс сжатия включает в себя косинусное преобразование – вычисление трансформант, деление каждой трансформанты матрицы на соответствующий коэффициент квантования, округление результата, а затем умножение на этот же коэффициент. Фрагмент изображения, размером 8х8 получается путем разбиения входного сигнала на блоки и вычисление для каждого из них ДКП. Для вычисления одной трансформанты нам необходимо 64 раза осуществить 8 операций сложения и 8 операций умножения. В нашем случае получим:
N1оп = 3*(64транс*(8+8)+ 64округл+64делен) = 3456 [операций]
Для обратного процесса понадобиться такое же количество операций,
N2оп = 3*(64транс*(8+8)+ 64округл+64умнож) = 3456 [операций]
Таким образом, общее число операций, необходимых для сжатия и разжатия 1 блока изображения:
Количество операций = 3456*2 = 6912 [операции].
Данные расчеты показывают средние числа, как для необходимого объема ОЗУ, так и для количества операций в секунду выполняемых процессором при обработке 1 блока изображения.
Руководство пользователя
Для работы с программой, разработанной на языке MATLAB необходимо:
1.Запустить программу jpeg.m в среде разработки MATLAB.
2.После выполнения данной программы на экране отображается исходное изображение и сжатое. Для представления возможности сравнить их, увидеть потерю качества.
Также вы можете улучшить/ухудшить качество сжатия, изменяя коэффициент сжатия непосредственно в программе.
Для работы с программой, разработанной на языке C++ необходимо:
1. Кодируемый файл изображения поместить в Папку “_kurs” и программа после запуска будет выполнятся в соответствии с «Описанием алгоритма работы программы» изложенным выше.
Варьируя коэффициентом сжатия вы можете пронаблюдать, как изменяется при этом качество восстанавливаемого изображения.