Методы арифметического кодирования информации и сравнение их коэффициентов сжатия
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
блока нецелесообразно выбирать как слишком малую (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);;