Описание алгоритма программы сжатия — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Описание алгоритма программы сжатия

2020-04-01 126
Описание алгоритма программы сжатия 0.00 из 5.00 0 оценок
Заказать работу

Программа написана на языке программирования Паскаль, начинается с раздела описания констант, переменных и процедур, используемых в программе.

Во втором блоке на экран выводится сообщение «введите 7 цифр значения яркости элементов строки».

В третьем блоке сброс переменой l в ноль и переменной f, содержащей информацию на передачу.

В четвертом блоке описывается цикл от 1 до 7 дляобработки массива исходных данных.

В пятом блоке определяется координата нового значения, в процедуре to_binary переводится в двоичную форму и добавляется к f – переменную на передачу.

В шестом блоке к переменной f добавляется код начала строки – служебная комбинация из одиннадцати единиц.

В седьмом блоке на дисплей выводится содержимое переменной f, которая используется для хранения закодированной строки. Этим заканчивается алгоритм программы сжатия одной строки.

Описание алгоритма подпрограммы to_binary

Процедура to_binary переводит значение переменной l в двоичную форму, которое добавляется к переменной на передачу данных – f.

В первом блоке схемы представлен заголовок процедуры.

Во втором блоке описываются локальные переменные типа Word для хранения промежуточных данных.

В третьем блоке происходят начальные установки для перевода переменной l в двоичную форму.

В четвертом блоке происходит сравнение переменной S и переменной K, соответствующей 2n, где n изменяется от 10 до 0. При условии, что S >= K выполняется шестой блок, где добавляется единица к переменной f и изменяется содержимое переменной S, в противном случае выполняется пятый блок, где осуществляется добавление нуля к переменой f на передачу данных. В седьмом блоке происходит деление на два переменной К, т.е. переход к следующей степени.

При выполнении условия i = 12 выполнение подпрограммы завершается.

Описание алгоритма восстановления изображения по Адресно-позиционному методу

Во втором блоке описывается цикл от 1 до 7 для вывода на экран массива значений, полученных после восстановления закодированных данных, переменная i является счетчиком массива b для хранения восстановленных значений.

В третьем блоке схемы выполняются начальные установки необходимые для корректного восстановления закодированных данных.

В четвертом блоке описывается цикл от 1 до11 для перевода принятых значений из двоичной системы в десятичную. При этом, если значение строки ‘е’ =1, то n присваивается значение n+k, иначе – переход к седьмому блоку, в седьмом блоке происходит деление на два переменной k, т.е. переход к следующей степени.

В восьмом блоке добавляется 1 к переменной j, и если j=1, то возвращаемся к 4 блоку, если нет, то переходим к 9.

В девятом блоке b[i] присваивается значение переменной n, в 10 блоке текущее значение массива b[i] выводится на экран, переменной j присваивается значение на 1 большее. В 11 блоке происходит сравнение переменной i с числом 8, при выполнении условия происходит возврат ко второму блоку, иначе – конец.

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

 

Программа, реализующая сжатие и восстановление изображения по методу

Адресно-позиционного кодирования

Programm Coding-Decoding;

Uses Crt;

Var

f, e: string;

i, j, l, k, n: word;

b, a: array [1..7] of word;

 

Procedure to_binary;

Var k, i, s: word;

Begin

k:= 1024;

s:= l;

for i:= 1 to 11 do

Begin

if s>=k then Begin

f:= f + '1';

s:= s – k;

end;

else f:= f + '0';

k:= (k/2);

end;

End;

BEGIN

{–сжатие–}

Writeln (' Введите 7 цифр значения яркости элементов строки ');

Readln (a[1], a[2], a[3], a[4], a[5], a[6], a[7]);

f:= «; {начальное значение строки f}

l:= 0;

for i:= 1 to 7 do

Begin

l:= l + a[i];

to_binary;

end;

f:= '11111111111' +f;

Writeln ('Содержимое буфера', f);

{–восстанавление–}

e:=f;

For i:=1 to7 do Begin

b[i]:=0;

e:= Delete (e, 1,11);

k:= 1024;

n:= 0;

For j:= 1 to 11 do

Begin

if e[j] = '1' then n:= n + k;

k:= (k/2);

end;

b[i]:=n;

Writeln ('b = ', b[i]);

End;

END.

Пример сжатия двухградационного черно-белого изображения по методу АПК

 

В соответствии с заданием на курсовое проектирование приводится пример сжатия двух строк

 

  Цвет белый Цвет черный Цвет белый Цвет черный Цвет белый Цвет черный Цвет белый
Число пикселей   600   70   591   79   582   88   0  
Число пикселей   0   72   598   81   589   90   580  

 

При вводе данных чисел в программу получим код:

1 строка:

11111111111 01001011000 01010011110 10011101101 10100111100 11110000010 11111011010 11111011010

2 строка:

11111111111 00000000000 00001001000 01010011110 01011101111 10100111100 10110010110 11111011010

В данном примере последовательность 11111011010 следует в конце каждой линии.

Для оценки степени сжатия вычисляется коэффициент сжатия, вычисляемый по формуле

где, N – число элементов на тестовом изображении.

N сж – число двоичных разрядов для представления сжатого изображения с учетом служебных комбинаций.

 

= (2010 + 2010)/(88 + 88) =23

 

Данный код обеспечивает сжатие данных в двадцать три раза. Достоинством Адресно – позиционного кодирования является его низкая чувствительность к ошибкам. Поражение ошибкой кода координаты нового значения приводит к искажению небольшой группы элементов строки до следующего нового значения яркости. Недостатком является небольшой коэффициент сжатия по сравнению с методом КДС.


Литература

1. Зуев Е.А. Программирование на языке Turbo Paskal 6.0 7.0 – М.: Радио и связь, 1993

2. Орловский Е.Л. Передача факсимильных изображений. – М.: Связь, 1980.

3. Щелованов Л.Н. Системы факсимильной связи. Учебное пособие/ ЛЭИС. – Л., 1991.


Поделиться с друзьями:

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.016 с.