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

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

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

блока нецелесообразно выбирать как слишком малую (8..16), так и слишком большую (128). Оптимальной длиной блока представляется значение 32..64.

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

арифметическое кодирование алгоритм

 

СПИСОК ИСТОЧНИКОВ ИНФОРМАЦИИ

 

1.-.:-,2002.">Ватолин Д., Ратушняк А., Смирнов М., Юкин В. Методы сжатия данных. - М.: ДИАЛОГ-МИФИ, 2002.

2.,TechnicalReport137,December5,1996.">Fenwick P., Punctured Elias Codes for variable-length coding of the integers , Technical Report 137, December 5, 1996.

3.Воробъев Н.Н. Числа Фибоначчи.- М.:Наука, 1987.-144с.

.Кодирование информации (двоичные коды)/Березюк Н.Т. и др.-Харьков:Выща школа, 1987.-252с.

.Экстремальное программирование. - СПб.:Питер, 2002.-224с.:ил.

.Д. Кнут, Искусство программирования для ЭВМ т.1 Основные алгоритмы - М.: Мир, 1976.

.Архангельский А.Я. Программирование в Delphi 6. - М.: ЗАО Издательство Бином, 2002 г. - 1120 с.: ил.

.Архангельский А.Я. Программирование в Delphi 7. - М.: ЗАО Бином, 2004 г. - 1150 с.

.Трахтенброт Б.А. Тьюринговы вычисления с логарифмическим замедлением, Алгебра и логика 3, вып.4, 1964, 33-48.

.Окулов С.М. Программирование в алгоритмах. - М.: Бином. Лаборатория знаний, 2004. - 341 с.: ил.

.Берс Л. Математический анализ Т. II. Перевод с англ. Л.И. Головкиной. Учеб. пособие для втузов, М., Высш. школа, 1975, 544 с. с ил.

12.Закон України Про охорону праці,листопад 2002 р.

13.Санитарные нормы проектирования промышленных предприятий. СН 245-Н-М.:Стройиздат,1972.-96с.

.Долин П.А. Справочник по технике безопасности. -Энергоатомиздат, 1984-824с.

.НАПБ Б 07.005-86. Определение категорий помещений и зданий по взрывопожарной и пожарной опасности. -Действует с 01.01.87.

.ГОСТ 12.1.004-91 ССБТ. Пожарная безопасность. Общие требования.-Введ.01.07.92.

.ДНАОП 0.01-1.01-95 Правила пожежної безпеки в Україні.-Дії з 22.06.95

.ДБН В.1.1-7-2002 Пожежна безпека обєктів будівництва.-Діє з 01.01.03

19.Правила устройства электроустановок.Энергоатомиздат,1987.

.ГОСТ 12.0.003-74 ССВБТ. Опасные и вредные производственные факторы. Классификация.-Введ.01.01.76

.Жидецький В.Ц. Охорона праці користувачів компютерів.-Львів:Афіша,2000.-176 с.

.ГОСТ 12.1.005-88 ССБТ. Общие санитарно-гигиенические требования к воздуху рабочей зоны.-Введ.01.01.89.

.ДНАОП 0.03-3.06-80. Санітарно-гігієнічні норми допустимих рівнів іонізації повітря виробничих та громадських приміщєнь. - Діє з 01.01.81.

.СНиП 2.04.05-92 Нормы проектирования. Отопление, вентиляция и кондиционирование воздуха. - М.:Стройиздат,1992г.

.ДБН В.2.5-28-2006.Інженерне обладнання будівель та споруд. Природне і штучне освітлення. - К.:Мінбуд Укр.,2006.

.ГОСТ 12.1.003-83*.ССБТ. Шум. Общие требования безопасности.-Введ.01.07.1989.

.НРБУ-97. Норми радіаційної безпеки України.-Київ,1997.

.ДСан ПіН 3.3.2-0.07-98.Державні санітарні правила і норми роботи з візуальними дісплеями і терміналами електронно-обчислювальних машин.-Київ,1998.

.ГОСТ 12.1.045-84.ССБТ.Электростатические поля. Допустимые уровни на рабочих местах и требования к проведению контроля. -Введен 01.01.86

.ГОСТ 12.1.038-82.ССБТ.Электробезопасность. Предельно допустимые значения напряжения прикосновения и токов. -Введен 01.01.88.

ГОСТ 12.2.007.0-75*. Изделия электротехнические. Общие требования безопасности. -Введен 01.01.76

31.НПАОП 0.00-1.31-99. Правила охорони праці при експлуатації електронно-обчислювальних машин.-Діє з 01.01.00.

32.СНиП 11-4-79/80. Естественное и искусственное освещение. Нормы проектирования.- М.: Стройиздат,1980-110с.

 

ПРИЛОЖЕНИЕ А

 

Листинг программы кодирования-декодирования

 

unit Coding;

 

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Math, Golomb;

_TABLE_MAX = 39;_MAX = 13;_MAX_LENGTH = 377;_M_INFO = Golomb param M is ;= 256;_str_NotSuchMeth = Cant choose coding method;_str_WrongSymbols = Wrong symbol!! Input integer number or small latin letter;

= class

:array[0..ALPHABETSIZE] of integer;code:array[0..ALPHABETSIZE]of string;

function getLowestTree( used: integer):integer;procedure growTree (data:array of integer);procedure makeCode;

function coder(data:array of integer):string;

function decoder(data:String):string;

;

 

= classchild0: Tree;child1: Tree;leaf:boolean;character:integer;weight: integer;

constructor Create;overload;constructor Create( character:integer; weight:integer; leaf:boolean);overload;procedure traverse( code:String ; h:Huffman);;

 

= class(TForm): TGroupBox;: TComboBox;: TLabel;: TEdit;: TLabel;: TMemo;: TLabel;: TButton;: TButton;: TEdit;: TLabel;: TButton;: TLabel;: TLabel;FormCreate(Sender: TObject);ComboBox1Select(Sender: TObject);Edit1KeyPress(Sender: TObject; var Key: Char);Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };

: TForm1;

/////Our code table///_table: array[0..CODING_TABLE_MAX]of char;// 0..9 - 0..9

// 10..36 - a..z

// 37 -

// 38 - #13

// 39 - #10

_arr:array [1..FIB_MAX]of integer; // array with Fib numbers_M: integer;_meth: 0..5; // 0 - Fibonacci

// 1 - Haffman

// 2 - Unaring: array[0..ALPHABETSIZE] of Tree;: textfile;: Huffman;

StrUtils;

 

{$R *.dfm}

/////////////////////////////////////////////////////////////////////////////

//////////////////////////Coding procedures /////////////////////////////////

GenerateCode_table;i:integer;i:=0 to 9 do_table[i]:=chr(48+i);i:=10 to 36 do_table[i]:=chr(87+i);_table[37]:= ;_table[38]:=#13;_table[39]:=#10;;

CT_ord(c:char):integer;i:integer;:=0;i:=0 to CODING_TABLE_MAX do(c=Code_table[i]) then begin:=i;;;;

 

//////////////////////////////Fibonacci//////////////////////////////////////GenerateFib(n:integer);i:integer;_arr[1]:=1;_arr[2]:=2;i:=3 to n do_arr[i]:=Fib_arr[i-1]+Fib_arr[i-2];;

FibCodingOne(one:integer):string;i,kol:integer;_temp:integer;:boolean;_temp:=one;:=0;:=;i:=1 to FIB_MAX_LENGTH do:=result+$;:=true;

//search closest Fib number(one_temp>0) doi:=1 to FIB_MAX-1 do(one_temp>=Fib_arr[i])and(one_temp<Fib_arr[i+1])then[i]:=1;_temp:=one_temp-Fib_arr[i];(last) then begin[i+1]:=1;:=false;:=i+1;;;;

(result,kol+1,length(result)-kol);i:=1 to length(result) do(result[i]<>1) then[i]:=0;;

0then(f,FibCodingOne(CT_ord(s_str[i])));(f);;">FibCoding(s_str:string);i:integer;:textfile;(FIB_MAX);(f,FibCoding.txt);(f);i:=1 to length(s_str) dos_str[i]<>0 then(f,FibCodingOne(CT_ord(s_str[i])));(f);;