Студопедия — Практическая часть. Варианты заданий приведены в Приложении 1.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Практическая часть. Варианты заданий приведены в Приложении 1.






 

Варианты заданий приведены в Приложении 1.

Пункты 6-9 задания являются факультативными.

Порядок выполнения задания:

 

1) Провести «вручную» сжатие 2-х фрагментов данных методом группового кодирования. Сравнить полученные коэффициенты сжатия.

2) Провести «вручную» сжатие 2-х фрагментов данных методом LZW. Сравнить полученные коэффициенты сжатия.

3) Провести «вручную» сжатие 2-х фрагментов данных c применением кодов Хаффмана. Сравнить полученные коэффициенты сжатия.

4) Провести «вручную» сжатие фрагмента данных c применением алгоритмов RLE, LZW и кодов Хаффмана. Описать полученные результаты и сделать соответствующие выводы.

 

Приложение 1. Варианты заданий.

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

  Номер задания
1 (RLE) 2 (LZW) 3 (Haffman) 4 (все три метода) 5 JPEG
Вариант 1 1,2 5,6 9,10   17,22
Вариант 2 1,4 5,8 9,12   18,23
Вариант 3 3,2 7,6 11,10   19,24
Вариант 4 3,4 7,8 11,12   20,25
Вариант 5 1,2 5,8 11,10   21,26
Вариант 6 1,4 7,6 11,12   19,22
Вариант 7 3,2 7,8 9,10   20,23
Вариант 8 3,4 5,6 9,12   21,24
Вариант 9 1,2 7,8 9,10   17,25
Вариант 10 1,4 5,6 11,10   18,26

 

Данные для кодирования:

1) bbbbbbbccccccbbcaaaaaaabbbccccaaaaaaabbbbbaaaaadddddddddaaaadd

2) cbcbbbbcdccddaddabbddccaaaccddddccbbbaaadddddbbbbcacccddaabb

3) aaaaaccccaaccccbbccccccccfffffffffffffssssssssaaaaaabbbbbcccbbbbbffbbbb

4) ccccccbbaaccaddcdacdbcadcdadaaaddacaccadaabbbacadcccadbcbbbcbcbd

 

5) baaccbccbcabaccabbaabaaabcc

6) babaabbaabbaaabbbaaaaa

7) abbabbabaabbabbbba

8) aaacbcbbbbcccbbbcacc

 

9) dcafbfbabggbceffgggfhhhgghhhefffsffaabbabchhabffccaf

10) faaadddddbbbccbaffbbbaabbabbbabbfcadcbfababadddab

11) gdadafghggfghababahbagggabcdcdcahhggaghhhgacagca

12) bbffdddedffdfdccdcadcddddacacacccaccaccadccfcc

 

13) abaacadbbaaaaadcda

14) aacaddddccdbbaaaaad

15) bbbacadbccadcbaaadcda

16) abaaabbccdabaacadb

 

17) 250-257, 200-207

18) 290-297, 170-177

19) 50-57, 60-67

20) 150-157, 141-148

21) 220-227, 300-307

22) 121-128, 145-152

23) 122-129, 146-153

24) 123-130, 147-154

25) 140-147, 170-177

26) 123-130, 296-303

Приложение 2. Инструкции по выполнению пп. 6-9 задания.

Программная реализация алгоритма сжатия RLE в виде процедуры (функции) может быть выполнена на любом доступном языке высокого уровня, таком как Pascal (в среде Delphi) или C++ (в средах Воrland Builder или Microsoft Visual), однако следует учитывать, что при вызове процедуры в основной программе используется т.н. «паскалевское»(__stdcall) соглашение о передаче параметров.

Процедура входит в динамическую библиотеку (DLL), которая подключается к основной программе. Взаимодействие происходит по следующей схеме:

1) основная программа RLE.exe загружает исходный файл изображения и динамическую библиотеку в оперативную память;

2) из динамической библиотеки вызывается функция CompressImage c четырьмя параметрами:

- pInBuf – массив исходных данных;

- pOutBuf – массив сжатых данных;

- nInSize – размер входных данных;

- nOutSize – размер сжатых данных.

Функция реализует алгоритм и формирует массив сжатых данных;

3) Основная программа компонует новый файл изображения и записывает его на “жесткий” диск.

 

Ниже приведён пример шаблона реализации в среде программирования Delphi:

 

- создать новый проект с именем “RLE” c помощью мастера создания динамической библиотеки выбрав пункт меню Project / Add New Project / DLL Wizard;

- добавить в проект файл Module1.pas, выбрав команду Project / Add to Project (шаблоны файлов RLE.dpr и Module1.pas см. ниже);

- скомпилировать библиотеку RLE.dll и перенести её в каталог основной программы RLE.exe.

 

 

/////////////////////////////////////////////////////// Файл RLE.dpr /////////////////////////////////

library RLE;

 

 

uses

SysUtils,

Classes,

Module1 in 'Module1.pas'; {подключаем модуль файла Module1.pas}

exports

CompressImage name 'CompressImage '; {делаем функцию CompressImage экспортируемой }

 

begin

end.

 

 

/////////////////////////////////////////////////////// Файл Module1.pas /////////////////////////////////

unit Module1;

 

interface

type

TArray = array [0..9] of byte;

pArray = ^TArray; { объявляется тип указателя на массив элементов типа byte }

{ объявление процедуры CompressImage}

procedure CompressImage(pInBuf:pArray; pOutBuf:pArray; nInSize:longword; nOutSize:longword);

 

implementation

 

uses

Dialogs,

SysUtils;

 

{ определение процедуры CompressImage}

procedure CompressImage(pInBuf:pArray; pOutBuf:pArray; nInSize:longword; nOutSize:longword);

var

{ Здесь объявляются локальные переменные, например i: integer; Res: byte}

begin

{ Здесь размещается код алгоритма.

pInBuf – указатель на массив входных данных типа byte;

pOutBuf – указатель на массив выходных(сжатых) данных типа byte;

nInSize – размер входных данных, передаваемый процедуре;

nOutSize – размер выходных данных, вычисляемый процедурой;

Индексация массивов начинается с нуля.

Обращение к i-элементу массива по указателю выполняется в виде pInBuf^[i].

Пример:

for i:=0 to (n-1) do

begin

pOutBuf ^[i+1]:= pInBuf^[i];

end;

}

end;

 

end.

 

 







Дата добавления: 2015-08-30; просмотров: 438. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия