Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Методы кодирования данных

Содержание:

Введение

Это сухую, скрупулезную, высоко формализованную работу по кодированию и декодированию информации можно превратить в увлекательный и захватывающий процесс. Самое интересное состоит в том что криптография еще появилась очень и очень давно. Еще в древности у людей появилось потребность скрыть смысл текста от посторонних глаз. Концепция информации почти всегда присутствует в деятельности и жизни людей. Можно сказать, что хотя человечество уже существует, оно использует такое же количество времени и живет благодаря информации. Каждый человек в любом случае связан с получением, накоплением и обработкой информации. Все профессиональные навыки и секреты мастерства отдельных специалистов в производстве продукции или получении каких-либо материалов или являются не чем иным, как информацией, которая тщательно накапливалась в течение нескольких поколений, строго охранялась и передавалась или держалась в секрете при сохранении своей профессии. Информация также имеет большое значение в современном мире. С каждым днем, месяцем растет огромный объем информационных потоков. Особенно это актуально для науки, производственной деятельности и менеджмента. Помимо увеличения объема информации, наблюдается резкое увеличение темпов ее роста. Общий объем человеческих знаний в 18 веке удваивался каждые 50 лет, к 1950 году - каждые 10 лет, к 1970 году - 5 лет, к 1990 году - каждые 2-3 года, а к началу 21 века - 1-2 года., Из диаграмм хорошо видно, что в настоящее время в мире каждую минуту делается от 15 до 20 изобретений, а это далеко не предел. До 20 века материальные предметы были основным предметом труда. В последнюю очередь экономическая мощь государства определялась наличием научно-технического потенциала. Экономическая мощь государства измерялась, прежде всего, его материальными и энергетическими ресурсами, а также средствами материального производства. В настоящее время информационные технологии становятся одним из основных показателей, и мощь государства теперь определяется в большей степени наличием высококвалифицированных рабочих - ученых, рабочих, инженеров. Оценка сфер человеческой деятельности показывает, что более половины человечества в своей профессиональной деятельности в настоящее время непосредственно занято работой, связанной с обработкой той или иной информации. Одна из важнейших проблем человечества - лавинообразный поток информации практически в любой сфере его жизни. Например, согласно оценкам, в настоящее время профессионал должен тратить до 80% своего рабочего времени на отслеживание всех новых заданий печати в своей сфере деятельности. Во всех сферах человеческой деятельности необходимо накапливать, собирать, обрабатывать и использовать информацию. Разнообразие и огромное количество информации, а также растущий спрос на нее вынуждают прибегать к разработке автоматизированных систем хранения, обработки и передачи информации. При работе с информацией выполняются самые разные действия. Информация собирается, хранится, передается, анализируется, обобщается. Информация также распространяется, при этом ее можно обрабатывать и преобразовывать по форме и типу (например, она кодируется или декодируется, текст озвучивается, аудио- или видеоинформация преобразуется в радиоволны, передается на соответствующий приемник и снова преобразуется в аудио. или видео информацию) и т. д. e. Совершенно специфические действия с информацией - это получение новой информации, а также информация о продаже и покупке. Понятие информации может иметь разные значения. Есть несколько определений информации. Это связано со сложностью, спецификой и разнообразием подходов к трактовке сущности этого понятия. В повседневном понимании под информацией понимается сообщение, любые данные или знания, которые кого-то интересуют. На практике до середины 20 века под информацией понималась информация, передаваемая друг другу. Такое понимание информации основано на логико-семантическом подходе (семантика - это изучение сообщения с точки зрения смысла), при котором информация интерпретируется как знание, а не просто какое-либо знание, а только та его часть, которая используется для принятия решений, активных действий и управления. В дальнейшем понятие информации получило более широкое толкование - это информация, которой люди так или иначе обмениваются, обмен сигналами между животными и растениями, передача информации в живом мире на клеточном и генетическом уровне и т. Д. Это понимание информации рассматривает информацию как материю свойства (атрибута). В промышленной и научной деятельности под информацией также понимается информация, которой люди обмениваются друг с другом, с людьми и компьютерами. Возникновение концепции информации связано с развитием кибернетики и основано на утверждении, что информация содержит любые сообщения, воспринимаемые человеком или устройствами. Можно сказать, что сейчас, в широком смысле, информация - это отражение реального мира. В узком смысле информация - это любая информация, которая является объектом хранения, передачи и преобразования. С точки зрения фундаментальных наук понятие информации

Сегодняшняя тема “Методы кодирования данных”. Для начало разберем что такое кодирование. Этим процессом называют преобразованием данных, символов, алфавитов в определенный формат, для защищенной передачи данных. Так же этот процесс  использования различных комбинаций для представления единиц и нулей цифровых сигналов в линии передачи.Очень важной частью информатики является теория информации, которая изучает как ее появлением , развитием так и ее уничтожением. К этой науке примыкает теория кодирования, задача которой входит изучение форм представления информации как ее передаче по различным каналам связи, а также при хранении и обработке.

Современное общество использует цифровой вид представления информации во многих сферах бизнеса и жизнедеятельности. Большие объемы информации требует большой протяженности и пропускной способности для каналов передачи данных. В данный момент развитие информационной инфраструктуры, нынешние каналы далеко не справляются с требуемым передачи трафиком. Поэтому, актуальной темой задача которой, является сжатия данных для многих приложений обработки и передачи информации. Сжатие блока данных - это описание, в котором сгенерированный сжатый блок содержит меньше битов, чем исходный, но каждый бит исходного блока может быть однозначно реконструирован из него. Обратный процесс, восстановление, как описано, называется разжиманием. Также используются следующие пары терминов: сжатие / распаковка, кодирование / декодирование, упаковка / распаковка. Большинство методов сжатия для различных типов цифровой информации часто используют алгоритмы сжатия без потерь на определенных этапах. Это кодирование, в котором энтропия сжатых данных такая же, как энтропия исходного источника, а исходная информация может быть полностью восстановлена ​​из сжатых данных. Можно сказать, что сжатие без потерь - это крайний случай сжатия, при котором энтропия данных остается неизменной. Все методы сжатия основаны на простой идее: если вы представляете часто используемые элементы в коротких кодах и редко используются в длинных кодах, то для хранения блока данных требуется меньше памяти, чем если бы все элементы были представлены кодами одинаковой длины. Эффективность сжатия учитывает степень сжатия (отношение длины несжатых данных к длине соответствующих сжатых данных) и скорость сжатия и распаковки. Часто используется обратная степень сжатия - степень сжатия, определяемая как отношение длины сжатых данных к длине соответствующих несжатых данных. Данная работа посвящена изучению различных методов арифметического кодирования информации и сравнению их коэффициентов сжатия. Теоретические и экспериментальные исследования алгоритмов.

Код-это набор условных сигналов для передачи или записи заранее определенных понятий. А вот кодирование информации –является процессом образования определённого представления информации. В узком в смысле словом “кодирование” часто считают переходом от одной формы представления информации в другом его виде, наиболее удобной для ее хранения, обработки или передачи.Знаком можно считать элементом конечного множества отличных друг от друга элементы.

Кодирование часто считают что переход числа из одной формы представления информации в другую. Обычно каждый образ при кодировании(иногда говорят-шифровке)представлении отдельным знаком.

Схожим образом компьютер может обрабатывать текстовую информацию. Когда человек вводит ту или иную букву каждая буква кодируется только определенным числом,а вот при выводе на внешние устройства (будь это экран или печать)для восприятие человеку по этим числам генерируется изображения букв. Соответствие между набором букв и числами называется кодировкой символов. 

Таблица 1.9 - Омега коды Элиаса Число Код Длина 1 0 1 2-3 1х 0 3 4-7 10 1хх 0 6 8-15 11 1ххх 0 7 16-31 10 100 1хххх 0 11 32-63 10 101 1ххххх 0 12 64-127 10 110 1хххххх 0 13 128-255 10 111 1ххххххх 0 14 256-511 11 1000 1хххххххх 0 16 512-1023 11 1001 1ххххххххх 0 17 Количество групп в коде возрастает быстро вначале, но далее - очень медленно: ·        для 1 будет 0 групп; ·        2 ... 3 (21 ... 22 − 1) - 1 группа; ·        4 ... 15 (22 ... 222 − 1) - 2 группы; ·        16 ... 65536 (222 ... 2222 − 1) - 3 группы; ·        65536 ... 2 · 1019728 (2222 ... 22222 − 1) - всего 4 группы. .8 Коды Ивэн- Родэ Данные коды, также как и омега-коды Элиаса, состоят из последовательности групп длинной L1, L2, L3, …, Lm бит [1], которые начинаются с бита 1. В конце последовательности следует 0. Длина каждой следующей (n+1)-й группы задается значением битов предыдущей n-й группы. Значение битов последней группы является итоговым значением всего кода, то есть всей последовательности групп. В сущности, все первые m−1 групп служат лишь для указания длины последней группы. В Ивэн-Родэ-кодах длина первой группы - 3 бита, а длина каждой последующей группы равна значению предыдущей. Первые три значения заданы особым образом. При кодировании формируется сначала последняя группа, следующая непосредственно перед нулем, а потом по очереди восстанавливаются все предыдущие группы одна за другой, пока процесс не будет завершен. Рассмотрим несколько примеров кодов Ивэн-Родэ - таблица 1.10: Таблица 1.10 - Коды Ивэн-Родэ n Код Ивэн-Родэ 0 000 1 001 2 010 3 011 4 100 0 16 101 10000 0 32 110 100000 0 100 111 1100100 0 .9 Код Левенштейна Этот код проще всего объяснить на конкретном примере. Предположим, что нужно передать число n=21. Двоичное представление этого числа имеет вид 10101. Непосредственно использовать при кодировании двоичные представления натуральных чисел нельзя. Самый простой выход состоит в том, чтобы приписать в начале слова префикс, указывающий длину двоичной записи числа (в данном случае это число 5). Если это число закодировать унарным кодом и приписать слева к двоичной записи числа, то код получится однозначно декодируемым. В данном примере для числа 21 получим кодовое слово 11111010101. В общем случае длина двоичного представления будет равна 2[logn]. Шаг за шагом будем улучшать этот способ кодирования. Важно заметить, что первая значащая цифра двоичной записи числа - всегда 1. Её можно не передавать, декодер сам допишет недостающую единицу, если будет знать длину двоичной записи числа. Обозначим через bin’(n) двоичную запись натурального числа n без первой единицы. Длины кодовых слов равны n=2[log n]+  Чтобы сделать запись ещё короче, с длиной двоичной записи числа можно поступить так же, как и с самим числом, т.е. передать его значащие разряды (кроме первой единицы), затем длину двоичной записи числа значащих разрядов и т.д. Итерации продолжаются, пока не останется один значащий разряд. Чтобы декодирование было однозначным, достаточно приписать префикс, содержащий закодированное префиксным кодом (Префиксный код - это код, в котором код одного символа не может быть началом кода другого символа) число итераций. Минимальное число итераций равно 0 (при кодировании числа 1). Поэтому в качестве префиксного кода можно выбрать унарный код увеличенного на 1 числа итераций. Полученное кодовое слово будет кодовым словом кода Левенштейна. Например, для числа 21 вычисляется bin'(21)=0101, затем bin'(4)=00, bin'(2)=0. Число итераций равно 3, поэтому кодовое слово кода Левенштейна имеет вид lev(21)=(1110)(0)(00)(0101)=11100000101. Декодер кода Левенштейна, декодируя унарный код, узнает, что итераций было три. Прочитав один значащий разряд (0) и дописав к нему в начало 1, получает последовательность 10. Это означает, что на предпоследней итерации длина числа была 2. Прочитав 2 разряда и дописав слева 1, получает 100. Теперь декодер считает 4 разряда и дописывает слева 1. Получается последовательность 10101, ей соответствует число 21. Поскольку это уже последняя 3-я итерация, число 21 является результатом декодирования. Ниже приведена таблица 1.11 - таблица кодов Левенштейна для некоторых чисел натурального ряда. Таблица 1.11 - примеры кодов Левенштейна n Код Левенштейна Lev(n) ln 1 0 1 2 100 3 3 101 3 4 110000 6 … … 6 7 110011 6 8 1101000 7 … … 7 15 1101111 7 16 11100000000 11 … … 11 31 11100001111 11 32 111000100000 12 … … 12 63 111000111111 12 210111111026 2101001101041 Коды Левенштейна и Элиаса практически эквивалентны, выигрыш кода Левенштейна проявляется только при астрономически больших значениях n. .10 Гамма-коды Левенштейна Данный код для числа n получается путем обращения последовательности битов в двоичной записи этого числа и добавления перед каждым битом, кроме последнего, флагового (flag bit) бита 0. Последним флаговым битом является бит 1, который совпадает с самым старшим битом в исходной двоичной записи числа n. Рассмотрим несколько примеров кодов Левенштейна в таблице 1.12: Таблица 1.12 - Коды Левенштейна n Гамма-код Левенштейна 1 1 5 01001 13 0100011 63 01010101011 129 010000000000001 Подчеркиванием показаны флаговые биты. Заметим, что последним таким битом всегда будет единица, которая являлась старшим битом в двоичном представлении кодируемого числа. 1.11 Старт-шаг-стоп коды (Start-step-stop codes) Эти коды определяются тремя параметрами {i, j, k}. Код определяет серии блоков кодовых слов возрастающей длины: первый блок с числовой частью длиной i битов, второй - i + j битов, затем - i + 2j битов, и так далее до длины k битов. Группы кодовых слов имеют унарный префикс, дающий номер группы. Таким образом, код {3, 2, 9} имеет кодовые слова с числовой частью 3, 5, 7 и 9 бит и префиксы 0, 10, 110 и 111 (опуская последний 0 в последнем префиксе). Данные коды представлены в таблице 1.13 и выглядят так: Таблица 1.13 - Старт-шаг-стоп коды Кодовое слово Диапазон 0xxx 0-7 10xxxxx 8-39 110xxxxxxx 40-167 111xxxxxxxxx 168-679 Далее приводится общая формула для восстановления числа по коду, а также алгоритм, позволяющий получить код по заданному числу n. Восстановление числа n по заданному {i, j, k}-start-step-stop коду Пусть дан {i, j, k}-код и пусть количество единиц в унарной части (экспоненты) равно Q. Тогда число n (закодированное число) равно (1.7): , (1.7) где β - мантисса записанного кода, Dec(x) - функция, переводящая x в десятичную систему счисления. Получение {i, j, k}-start-step-stop кода по заданному числу n Теперь наоборот, пусть задано число n. Для получения его кода необходимо найти такое минимальное положительное число Q0, чтобы выполнялось неравенство (1.8):  .                                                        (1.8) При этом сам код будет выглядеть так (1.9): α(Q0 − 1) : β(n + 2IQ0 − S). (1.9)   Замечание В качестве частных случаев Start-step-stop кодов могут быть получены следующие коды и они сведены в таблицу 1.14: Таблица 1.14 - Частный случай старт-шаг-стоп кодов {i, j, k} Диапазон k, 1, k простой бинарный код для целых чисел 0, 1, ∞ γ-код Элиаса k, k, ∞ γ-код Элиаса по основанию 2k .12 Код Хаффмана Код Хаффмана (Huffman code) ещё называют минимально-избыточным префиксным кодом (minimum-redundancy prefix code). Идея, лежащая в основе кода Хаффмана, достаточно проста. Вместо того чтобы кодировать все символы одинаковым числом бит (как это сделано, например, в ASCII кодировке, где на каждый символ отводится ровно по 8 бит), символы которые встречаются чаще, кодируются меньшим числом бит, чем те, которые встречаются реже. Код при этом должен быть оптимален или, другими словами, минимально-избыточен. Первым такой алгоритм опубликовал Дэвид Хаффман в 1952 году. Алгоритм Хаффмана двухпроходный. На первом проходе строится частотный словарь и генерируются коды. На втором проходе происходит непосредственно кодирование. Стоит отметить, что за 50 лет со дня опубликования, код Хаффмана ничуть не потерял своей актуальности и значимости. Так с уверенностью можно сказать, что мы сталкиваемся с ним, в той или иной форме (дело в том, что код Хаффмана редко используется отдельно, чаще работая в связке с другими алгоритмами), практически каждый раз, когда архивируем файлы, смотрим фотографии, фильмы, посылаем факс или слушаем музыку. Задача построения кода Хаффмана равносильна задаче построения соответствующего ему дерева. Общая схема построения дерева Хаффмана: 1.      Составляется список кодируемых символов (при этом каждый символ рассматривается как одноэлементное бинарное дерево, вес которого равен весу символа). 2.      Из списка выбирается 2 узла с наименьшим весом. .        Формируется новый узел и к нему присоединяется, в качестве дочерних, два узла выбранных из списка. При этом полагается, что вес сформированного узла равен сумме весов дочерних узлов. .        Сформированный узел добавляется к списку. .        Если в списке больше одного узла, то повторяется. Описание алгоритма, реализующего код Хаффмана Суть алгоритма: Во входящей последовательности для каждого символа подсчитывается частота его «встречаемости» в ней. Затем по полученным частотам строится бинарное дерево по восходящему принципу: листья - это самые низкие частоты; узлы, которые стоят выше листьев по иерархии - это суммарное количество частот листьев-детей; корень дерева - это сумма всех частот. По бинарному дереву составляется бинарный код для каждого символа последовательности по принципу: совершается обход дерева с корня до необходимого символа, при проходе влево - в код записывается «0», вправо - «1». Благодаря такому подходу символ, который встречается чаще всего, кодируется меньшим количеством битов, чем символ с меньшей частотой. Ниже приведен пример кодирования последовательности «adamand» кодом Хаффмана. Итак, пошагово распишем действия: . Следует подсчитать частоты встречаемости всех символов во входящей последовательности: «a» - 3 ; «d» - 2 ; «m» - 1 ; «n» - 1 . Строим бинарное дерево, исходя из частот встречаемости. Полученное дерево изображено на рисунке 2.1:   Рисунок 2.1- Бинарное дерево Хаффмана . Выписываем полученные коды: «a» - 0 «d» - 10 «m» - 110 «n» - 111 . Итак, закодированная последовательность имеет вид: 0100110011110. Блок-схемы, описывающие логику вышеописанного алгоритма, показаны на рисунках 2.2 - 2.5. Рисунок 2.2 - Блок-схема алгоритма кодирования методом Хаффмана Рисунок 2.3 - Блок-схема алгоритма построения дерева для кода Хаффмана Рисунок 2.4 - Блок-схема алгоритма обхода дерева, формирования кодовой таблицы Рисунок 2.5 - Блок-схема алгоритма декодирования методом Хаффмана 2.2 Описание алгоритма, реализующего код Голомба Суть алгоритма кодирования: Этот метод требует ввод определенного параметра М. Если значение M равно двойке в целой положительной степени, то код Голомба переходит в свой частный случай - код Райса. Пусть есть число N, которое требуется закодировать, и фиксированное число М. Шаги алгоритма: . Находим частное q = N /М - деление целочисленное. . Находим остаток от деления N /М: r = N %М. . Закодированное число N имеет формат: <код q><код r> .1 Код q является просто унарным кодированием числа q, то есть представимо в виде: 111…110, где количество единиц равно самому числу q. .2 Для нахождения кода r введем параметр b=[log2(M)], причем b округляется в сторону большего целого, и параметр с = 2b-M. Далее, если число 0 ≤ r < c, то код r - это просто бинарный код числа r, помещенный в количество бит, равное b-1; если же r ≥ c, то код r - это бинарный код числа (r + c), помещенный в количество бит, равное b. Блок-схема, описывающая логику вышеописанного алгоритма, показана на рисунке 2.6. Рисунок 2.6 - Блок-схема алгоритма кодирования методом Голомба 2.3 Описание алгоритма, реализующего кодирование при помощи чисел Фибоначчи Суть алгоритма кодирования: Числа Фибоначчи - это последовательность чисел, в которой каждое последующее равно сумме двух предыдущих. То есть, 1,2,3,5,8,13… Пусть числа Фибоначчи имеют свой порядковый номер, то есть F(1)=1; F(2)=2; F(3)=3; F(4)=5; F(6)=8 и т.д. Пусть есть число Х, которое следует закодировать с помощью чисел Фибоначчи. По сути, требуется разложить это число Х на числа Фибоначчи. Итак, опишем пошагово алгоритм: . Находим число Фибоначчи наиболее близкое к числу Х. Пусть это будет число Fx ; а ix - порядковый номер числа Fx, то есть F(ix) = Fx. . В ix-м бите кода ставим «1». . Вычитаем из Х число Fx. Повторяем шаги 1,2,3 до тех пор, пока Х>0. . В полученной кодовой последовательности на местах, где нет «1», ставим «0», а после последней «1» ставим еще одну «1». Блок-схема, описывающая логику вышеописанного алгоритма, показана на рисунке 2.7. Рисунок 2.7 - Блок-схема алгоритма кодирования с помощью чисел Фибоначчи 2.4 Описание алгоритма, реализующего гамма-код Элиаса Суть алгоритма кодирования: Пусть есть целое положительное число N, которое требуется закодировать. . Находим b = log2(N) - максимальная целая степень, возводя в которую «2», получаем число, максимально приближенное к N. . Находим число q = N - 2b. . Гамма-код числа N имеет вид: <код b><код q> .1. Код b - инверсный унарный код числа b, то есть представимо в виде: 000…001, где количество нулей равно самому числу b. .2. Код q - просто бинарный код числа q, помещенный в количество бит, равное b. Блок-схема, описывающая логику вышеописанного алгоритма, показана на рисунке 2.8. Рисунок 2. 8 - Блок-схема алгоритма гамма - кодирования Элиаса 2.5 Описание алгоритма, реализующего дельта-код Элиаса Суть алгоритма кодирования: Пусть есть целое положительное число N, которое требуется закодировать. . Находим b = log2(N) - максимальная целая степень, возводя в которую «2», получаем число, максимально приближенное к N. . Находим число q = N - 2b. . Находим параметр b1=b+1 . Дельта-код числа N имеет вид: <код b1><код q> .1. Код b1 - гамма-код Элайеса числа b1. .2. Код q - просто бинарный код числа q, помещенный в количество бит, равное b. Блок-схема, описывающая логику вышеописанного алгоритма, показана на рисунке 2.9. Рисунок 2. 9 - Блок-схема алгоритма дельта - кодирования Элиаса Обоснование выбора инструментальных средств Современные программно-инструментальные средства разработки ПО характеризуются большим разнообразием характеристик. Так, в настоящее время инструментальные средства позволяют: -       базируясь на стандартных компонентах создавать интерфейс приложения в зависимости от состояния системы передавать управление различным процессам; -       создавать базы данных и оболочки для баз данных; -       выполнять корректную обработку исключительных ситуаций, что позволяет повысить надёжность ПО. Современные средства разработки характеризуются следующими параметрами: -       поддержка объектно-ориентированного стиля программирования; -       возможность использования CASE-технологий для проектирования разрабатываемой системы, использование визуальных компонент для наглядного проектирования интерфейса; -       наличие визуальной технологии разработки интерфейса; -       возможность использования алгоритмов реляционной алгебры для управления реляционными базами данных; -       предоставление средств синхронизации и контроля версий составных частей проекта (эти средства используются при разработке программного обеспечения группами программистов); -       создание инсталляционных пакетов для распространения разработанного программного обеспечения. При создании прототипа программного обеспечения главными критериями выбора программно-инструментальных средств разработки являются: -       скорость разработки приложений; -       удобство использования; -       возможность быстрого внесения изменений в программу; Обеспечить минимальное время разработки можно только при выполнении этих условий. Исходя из приведенных требований, выделим следующие характеристики средств разработки программного обеспечения: -       стоимость IDE; -       невысокая потребность ресурсов; -       наглядность разработки интерфейса; -       предоставляемые возможности работы с базами данных; -       скорость работы разработанного программного обеспечения; -       обработка исключительных ситуаций; -       время создания разработанного программного обеспечения; -       удобство эксплуатации; -       средства контроля версий составных частей проекта; -       наличие удобной справочной системы. Для выбора инструментального средства воспользуемся методом вариантных сетей. Этот метод предназначен для выбора наилучшего варианта из нескольких предложенных и состоит из следующих этапов: -       определение критериев, по которым будет произведено сравнение и -       степени их важности; -       каждый вариант оценивается по полученному перечню критериев (получается численное значение - оценка); -       нахождение общего количества баллов для каждого из вариантов (можно учитывать важность критериев). Для решения поставленной задачи будем использовать перечень характеристик, приведенный выше. Каждую характеристику будем оценивать балом в диапазоне [1..10], а так же весовым коэффициентом в том же диапазоне. Выбор будем проводить из таких программно-инструментальных средств разработки как: Java Eclipse,Borland Delphi 7, Microsoft VC++ 6. Лучшим будет тот вариант, который наберёт максимальное количество баллов. Выбор средств разработки методом вариантных сетей представлен в табл. 3.1. Таблица 3.1 - Сравнение сред разработки методом вариантных сетей Характеристика средства разработки Вес Оценка средств разработки Java Eclipse Borland Delphi7 Microsoft VC++ 6 Минимальная стоимость IDE 7 10 5 5 Невысокая потребность ресурсов 6 7 8 8 Наглядность разработки интерфейса 5 5 9 6 Скорость работы разработанного программного обеспечения 8 7 8 9 Обработка исключительных ситуаций 8 9 8 8 Минимальное время создания разработанного программного обеспечения 8 5 9 5 Удобство эксплуатации 7 8 8 6 Наличие удобной справочной системы 5 6 8 9 Итого 391 424 376 В результате применения метода вариантных сетей установлено, что лучшим инструментальным средством с точки зрения разработчика в данном случае является среда Borland Delphi7. .2 Описание основных функций программы, реализующей алгоритмы кодирования по методу Хаффмана Для программирования алгоритмов кодирования и декодирования с помощью кода формируем строку-декодинг end;:=str;; .3 Описание основных функций программы, реализующей алгоритмы кодирования по методу Голомба Golomb_M - параметр M в кодировании методом Голомба функция кодирования одного целого положительного числа // n - число, которое следует закодировать // возвращаемый результат - строка-код числа var q,r,b,cutoff,i:integer;:string; begin q:= n div Golomb_M; //нахождение частного от деления числа n на //параметр Golomb_M r:= n mod Golomb_M; //нахождение остатка от деления числа n на //параметр Golomb_M result:=UnaringCode(q); //получаем первую часть кода - унарный код //частного q b:= ceil(math.Log2(Golomb_M));// получаем параметр b cutoff:=round(power(2,b))-Golomb_M; // получаем параметр с if (r<="" c="" begin="" bin:="GetBinary(r);" получаем="" бинарный="" код="" числа="" в="" виде="" строки="" for="" i:="1" to="" (b-1)-length(bin)="" do:="result+'0';:=result+bin;" наращивание="" строки-кода="" ≥="" c:="GetBinary(r+cutoff);" r+с="" строкиi:="1" (b)-length(bin)="" строки-кода;;="" -функция="" декодирования="" golombdecoding(name:string):string;="" name="" -="" имя="" файла,="" котором="" содержится="" закодированная="" последовательность;="" возвращаемое="" значение="" строка-декодинг="" var="" kol,i,m,q,b,b1,b2,cutoff:integer;="" s_temp:string;:textfile;:char;(f,name);="" привязка="" логического="" файла="" к="" физическому(f);="" открытие="" для="" чтения="" readln(f);="" пропускаем="" первую="" строку="" файле="" readln(f,m);="" считываем="" с="" число="" Голомба="" М="" b:="ceil(math.Log2(M));" считаем="" параметр="" b="" cutoff:="round(power(2,b))-M;" s_temp:="" ;="" result:="" ;(f,c);not(eof(f))="" do="" идем="" до="" конца="" файла:="0;" c<="" style="outline: 0px; max-height: 999999px; color: rgb(0, 0, 0); font-family: MuseoSansCyrl; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">'0' do //считываем унарный код begin(f,c);:=kol+1;; //q q:=kol; //по считанному унарному коду определяем частное q s_temp:='';i:=1 to b-1 do //считывание b-1битов кода(f,c);_temp:=s_temp+c;; b1:=BinToInt(s_temp); //считаем возможный остаток b1 read(f,c);_temp:=s_temp+c//считывание b битов кода2:=BinToInt(s_temp);// считаем возможный остаток b2 if (b2<=cutoff)or(b2-cutoff>=M)or(b2-cutoff<=cutoff-1) then //проверка //условия формирования кода остатка по методу Голомба //в зависимости от условия остатком является либо b1, либо b2 result:=result+Code_table[q*M+b1]:=result+Code_table[q*M+b2-cutoff];(f,c);;; closefile(f); //закрываем файл; .4 Описание основных функций программы, реализующей алгоритмы кодирования с помощью чисел Фибоначчи Fib_arr - массив с числами Фибоначчи, глобальная переменная. процедура генерации чисел Фибоначчи procedure GenerateFib(n:integer); //n - количество генерируемых чисел var i:integer; begin Fib_arr[1]:=1; //инициализация первого числа Фиб. Fib_arr[2]:=2; //инициализация второго числа Фиб. for i:=3 to n do_arr[i]:=Fib_arr[i-1]+Fib_arr[i-2]; //число Фиб. = сумме предыдущих двух //чисел Фиб. end; функция кодирования одного целого положительного числа function FibCodingOne(one:integer):string; // one - число, которое надо закодировать // возвращаемое значение - строка-код числа one var i,kol:integer;_temp:integer;:boolean;_temp:=one;:=0; result:='';//инициализация выходной строки for i:=1 to FIB_MAX_LENGTH do :=result+'$'; // забиваем выходную строку символами «$» last:=true; //search closest Fib number (one_temp>0) do //пока число можно разложить на числа Фиб. for i:=1 to FIB_MAX-1 do //ищем большее число Фиб.(one_temp>=Fib_arr[i])and(one_temp<="" style="outline: 0px; max-height: 999999px;">'1') then[i]:='0';; -функция декодирования одного числа function FibOneDecoding(s_tmp:string):integer; // s_tmp - строка-код числа // возвращаемое значение - раскодированное число var i,kol:integer; begin kol:=0; // начальная инициализация числа-декодинга for i:=1 to length(s_tmp)-1 do // проход по всем символам строки-кода if (s_tmp[i]='1') then // нашли единичный бит kol:=kol+ Fib_arr[i];// складываем число из чисел Фибоначчи:=kol;; 3.5 Описание основных функций программы, реализующей алгоритмы гамма-кодирования Элиаса функция кодирования одного положительного целого числа методом гамма-кодирования Элиаса function ElGammaCodingOne(one:integer):string; // one - число, которое требуется закодировать // возвращаемое значение - строка-гамма-код для числа one var kol,temp,i:integer;:string;:=one;:=0; while (temp>0)do // делим на «2» число one максимальное кол-во раз begin temp:=temp div 2; kol:=kol+1; //считаем количество «2», на которые поделили число one end; kol:=kol-1; // kol = параметру b схемы решения result:='';i:=1 to kol do:=result+'0'; //заполняем «0» унарный код result:=result+'1'; //в строку-код занесен унарный код числа b bin:=GetBinary(one mod strtoint(floattostr((power(2,kol))))); // получаем //бинарное представление числа q схемы решения for i:=1 to kol-length(bin) do:=result+'0';one>1 then result:=result+bin; //добавляем в гамма-код бинарное представление //остатка q; функция декодирования гамма-кода function ElGammaDecoding(name:string):string; // name - имя файла с дельта-кодом // возвращаемое значение - раскодированная информация в виде строки begin assignfile(f,name); //связывание логического и физического имен файла reset(f); //открываем файл для чтения s_temp:='';:='';not(eof(f)) do //идем до конца файла:=0; read(f,c); while c<>'1' do // читаем с файла символы, пока не достигнем «1» begin read(f,c); kol:=kol+1; // считаем количество «0» унарного кода end;_temp:='';i:=1 to kol do //количество «0» унарного кода = кол-ву битов после «1» (f,c);_temp:=s_temp+c; //формируем бинарную строку числа q из схемы //решения end; result:=result+chr(BinToInt(s_temp)+strtoint(floattostr(power(2,kol))));// //накапливаем строку-декодинг, высчитывая код посчитанного числа из //параметров q, b end;(f); //закрываем файл; .5 Описание основных функций программы, реализующей алгоритмы дельта-кодирования Элиаса функция дельта-кодирования одного положительного целого числа function ElDeltaCodingOne(one:integer):string; // one - число, которое необходимо закодировать // возвращаемое значение - строка-дельта-код числа one var kol,temp,i:integer;:string; begin if one=1 then //если число one=1, то сразу определяем его дельта-код = «1» begin:='1';;;:=one; kol:=0; while (temp>0)do // делим на «2» число one максимальное кол-во раз begin temp:=temp div 2; //считаем количество «2»,на которые поделили число one kol:=kol+1; end; result:=ElGammaCodingOne(kol); //kol = b1 из схемы решения, ищем гамма- //код Элайеса параметра b1 (kol) bin:=GetBinary(one mod strtoint(floattostr((power(2,kol-1)))));//получаем //бинарное представление числа q схемы решения for i:=1 to kol-length(bin)-1 do :=result+'0';one>1 then result:=result+bin; //добавляем в дельта-код бинарное представление //остатка q; функция декодирования дельта-кода Элайеса function ElDeltaDecoding(name:string):string; // name - имя файла с дельта-кодом // возвращаемое значение - декодированная информация в виде строки var kol,i,pow:integer;_temp:string;:textfile;:char; begin assignfile(f,name); //связывание логического имени файла с физическим reset(f); // открытие файла для чтения s_temp:='';:='';not(eof(f)) do //идем до конца файла:=0; read(f,c); while c<>'1' do //считываем «0» пока не встретим «1» begin read(f,c); kol:=kol+1;// считаем количество нулей kol end; s_temp:=''; for i:=1 to kol do //накапливаем строку- бинарный код гамма-части кода begin(f,c);_temp:=s_temp+c; ;:= BinToInt(s_temp)+strtoint(floattostr(power(2,kol))); //нашли //параметр b1 из схемы решения s_temp:=''; for i:=1 to pow-1 do(f,c); s_temp:=s_temp+c; //накапливаем строку- бинарный код числа q из схемы //решения;:=result+ Chr(BinToInt(s_temp)+strtoint(floattostr(power(2,pow-1)))); //вычисляем дельта-закодированное число и добавляем его к //результирующей строке-декодинга end;(f); //закрываем файл; Цель и назначение Арифметическое кодирование известно сегодня как один из наиболее эффективных методов сжатия данных. Такие коды применяются для защиты информации от искажений при обработке в ПК и обеспечивает почти оптимальную степень сжатия с точки зрения энтропийной оценки кодирования Шеннона. Метод показывает высокую эффективность для дробных неравномерных интервалов распределения вероятностей кодируемых символов и в последние годы становится все более актуальным. Данное исследование и разработка будут востребованы во многих отраслях, где используется передача сигналов и сжатие данных. .2 Расчет себестоимости и цены изделия Производственная себестоимость промышленной продукции (работ, услуг)- это выраженные в денежной форме текущие расходы предприятия на её производство. Это один из основных экономических показателей предприятия, и это обуславливает необходимость однозначного определения методики его расчета не зависимо от того, где будет использоваться показатель производственной себестоимости. В качестве такой методики являются «Методические указания по формированию себестоимости продукции (работ, услуг) в промышленности», утвержденной приказом №7 Госкомитета промышленной политики Украины от 2.02.2002г. Целью учета себестоимости продукции является своевременное, полное и достоверное определение фактических расходов, связанных с производством продукции, исчисление фактической себестоимости отдельных видов и всей продукции, а так же контроль за использованием материальных, трудовых и денежных ресурсов. Расходы, включаемые в себестоимость продукции (работ, услуг) группируются по следующим экономическим элементам материальные расходы расходы на оплату труда отчисление на социальные мероприятия амортизация прочие операционные расходы Статьи калькуляции показывают, как формируются эти расходы для определения себестоимости продукции - одни расходы показываются по их видам (элементам), другие - по комплексным статьям (включая несколько элементов). При этом один элемент расходов может присутствовать в нескольких статьях калькуляции. .2.1 В состав элемента «Материальные расходы» включаются расходы: На сырье и материалы в производственной деятельности предприятия. При изготовлении продукции (работ, услуг) или для хозяйственных нужд, технических целей и содействия в производственном процессе. Расчет ведется по формуле (4.1):                                  (4.1) где  - норма расхода -го материала на единицу продукции;  - цена единицы -го материала; -количество видов материала. Расчеты приведены в таблице 4.1: Таблица 4.1 - Расчет стоимости сырья и материалов Материалы Количество, шт. Стоимость единицы в гривнах Сумма, грн Назначение Компакт-диски 4 1,00 4,00 Хранение программы и программного обеспечения Бумага(в пачках по 500 л) 1 25,00 25,00 Документирование, реклама Продолжение таблицы 4.1 Материалы Количество, шт. Стоимость единицы в гривнях Сумма, грн Назначение Картридж для принтера 1 40,00 40,00 Печать рекламы и документации. Всего 63,00 4.2.2 Расходы на оплату труда в состав элемента включается: заработная плата по окладам и тарифам, надбавки и доплаты к тарифным ставкам и должностным окладам в размерах, предусмотренным действующим законодательством; премии и поощрения материальная помощь, компенсационные выплаты, оплату отпусков и другого неотработанного времени, другие расходы на оплату труда персонала, занятого непосредственно на выполнении конкретной темы (научные работники, научно-технический, научно-вспомогательный персонал и производственные рабочие) Расчет затрат на основную заработную плату по теме приведенной в табл. 4.2: Таблица 4.2 - Расчет затрат на основную заработную плату Должность Оклад, грн./мес. Количество месяцев Долевое участие, % Сумма, грн. Руководитель темы 1900,00 3 20 1140,00 Инженер 1100,00 3 100 3300,00 Итого за 3 месяца 4440,00 .2.3 Дополнительная заработная плата Она включает доплаты и надбавки к тарифным ставкам и должностным окладам в размерах предусмотренных действующим законодательством; премии и поощрения рабочим, руководителям, специалистам и другим служащим за производственные результаты; и другие расходы на оплату труда. Дополнительную заработную плату принимаем в размере 10% от  :  грн .2.4 В состав элемента “Отчисления на социальные мероприятия” включаются: отчисления на обязательное государственное пенсионное страхование - 32% от;   отчисления на обязательное социальное страхование - 2,5% от ;   отчисления на общеобязательное государственное социальное страхование на фонд занятости - 2,5% от ; - отчисления на индивидуальное страхование персонала предприятия - 1% от . 4.2.5 Амортизационные отчисления. Амортизационные отчисления составляют 25 % от стоимости специального оборудования, и рассчитывается по формуле (4.2):                  (4.2) где  - цена специального оборудования;  - кол-во месяцев работы. В таблицу 4.3 занесем цены специального оборудования и количество месяцев их работы: Таблица 4.3 -Стоимость специального оборудования Оборудование кол-во месяцев работы Сумма, грн Примечание ЭВМ 3 3300,00 Разработка и тестирование программы Принтер 1 650,00 распечатка Итого 3950,00 ; .2.6 Затраты на машинное время рассчитываются по формуле (4.3):                                                   (4.3) где  - кол-во дней в месяце;  - число часов работы на ПК;  - стоимость Машино-час, грн. .2.7 Накладные расходы Вспомогательные расходы по управлению предприятием, амортизационные отчисления по действующим нормам, затраты на охрану труда, отопление, освещение, услуги сторонних организаций. Накладные расходы рассчитываются как 25% - 30 % . По результатам произведенных расчетов составляем калькуляцию себестоимости, которая приведена в таблице 4.4: Таблица 4.4 - Калькуляция себестоимости разработки программно-аппаратных средств оптимального арифметического кодирования Наименование статей калькуляции Сумма, грн. 1. Сырье и материалы  69,00 2. Основная заработная плата 4440,00 3. Дополнительная заработная плата  444,00  4. Отчисления на социальные мероприятия: - отчисления на обязательное государственное пенсионное страхование - отчисления на обязательное социальное страхование - отчисления на общеобязательное государственное социальное страхование на фонд занятости - отчисления на индивидуальное страхование персонала предприятия 1855,82 1562,88 122,10 122,10  48,84 5. Амортизационные отчисления  219,79 6. Затраты на машинное время  480,00 7. Накладные расходы 1110,00 8. Сметная стоимость 8618,71 9. Прибыль (35%) 3016,55 10. Оптовая цена 11635,26 11. Сумма НДС 12. Цена продажи  2327,05 13962,30 .3 Экономическая эффективность НИР Специфической особенностью проведения экономической эффективности научно-исследовательских работ является их прогнозный характер, а также наличие неопределенности в области применения и объемах использования результатов научно-исследовательских работ, в уровне затрат на производство, в оценке влияния характеристик приборов на характеристики более сложных систем. Определение экономической эффективности научно-исследовательской работы базируется на общих методах расчета сравнительной экономической эффективности новой техники. Количественное определение экономической эффективности научно-исследовательской работы возможно, если есть база для сравнения, известна область и объем промышленного использования результатов научно-исследовательской работы. Однако специфика расчета экономической эффективности научно-исследовательской работы заключается в том, что результаты работы самостоятельного значения не имеют, а дают экономический эффект в народном хозяйстве только будучи опосредованными через длинную цепочку стадий технического прогресса.

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


Двоичное кодирование

Представление информации в двоичной системе использовали люди еще с давних времен. Жители островов Полинезии передавали необходимую информацию при помощи барабанов: чередование звонких и глухих ударов. Звуки над водой распространялся на большие расстояние, таким образом работал полинезийский телеграф. В телеграфе в 19–20 веках информацию передавали с благодаря азбуки Морзе – в виде последовательности из точек и тире. Часто люди договариваются открывать входную дверь только по специальному сигналу или комбинации длинных и коротких звонков. Морзе в 1838 году придумал код – телеграфную азбуку – систему кодировки символов длинными и короткими посылками для передачи по линиям связи, именуемую как «код Морзе» или «морзянка». Современный вариант международного «кода Морзе» (International Morse) появился совсем не так давно – в 1939 году, когда была проведена крайняя от корректировка.Другая система существует и в вычислительной технике - она называется двоичным кодированием и основана на представлении данных последовательностью всего двух знаков: 0 и 1. Эти знаки называют двоичными цифрами, по-английски – “binary digit” или сокращенно bit (бит). Одним битом могут быть выражены два понятия: 0 или 1 (+или-,правда или ложь и т.д.).

Понятие информации часто встречается в деятельности людей. Можно сказать, что, сколько существует человечество, столько времени оно пользуется информацией. Жизнь каждого человека, так или иначе, связана с получением, накоплением и обработкой информации. Все профессиональные навыки и секреты мастерства отдельных специалистов по получению каких-либо материалов или изготовлению изделий представляют ни что иное как информацию, которая в течение нескольких поколений, бережно накапливалась, строго охранялась и передавалась, сохраняя секреты профессии. Информация имеет большое значение в современном мире. С каждым годом растет объем информации и величина информационных потоков. Особенно это характерно для науки, производственной деятельности и управления. Помимо увеличения объема информации, имеет место резкое увеличение скорости ее возрастания. Общая сумма человеческих знаний в XVIII веке удваивалась каждые 50 лет, к 1950 г. - каждые 10 лет, к 1970 г. - 5 лет, к 1990 г. - каждые 2-3 года, а к началу XXI век 1-2 года. Оценки показывают, что в настоящее время ежеминутно в мире делается от 15 до 20 изобретений. До XX века основным предметом труда были материальные объекты. Экономическая мощь государства измерялась, прежде всего, его материальными и энергетическими ресурсами, а также средствами материального производства. В последнюю очередь экономическая мощь государства определялась наличием научно-технического потенциала. В настоящее время, одним из основных показателем становится информационные технологии, и мощь государства определяется теперь, в большей степени, наличием высококвалифицированных работников - ученых, инженеров, рабочих. Проведенная оценка сфер человеческой деятельности показывает, что более половины человечества в своей профессиональной деятельности, в настоящее время, занимается непосредственно работой, связанной с той или иной обработкой информации. Одной из важнейших проблем человечества является лавинообразный поток информации практически в любой отрасли его жизнедеятельности. Подсчитано, например, что в настоящее время специалист должен тратить до 80% своего рабочего времени, чтобы уследить за всеми новыми печатными работами в его области деятельности. Во всех областях человеческой деятельности приходится накапливать, собирать, обрабатывать и и пользовать информацию. Разнообразие и огромное количество информации, и также растущий спрос на нее, вызывает необходимость прибегать к разработке автоматизированных систем хранения, обработки и передачи информации. При работе с информацией производятся самые разнообразные действия. Информация собирается, хранится, передается, анализируется, обобщается. Информация также распространяется, при этом она может перерабатываться и преобразовываться по форме и виду (например, кодируется или декодируется, текст озвучивается, звуковая или видеоинформация преобразуется в радиоволны, передается на соответствующий приемник и опять преобразуется в звуковую или видеоинформацию) и т.п. Достаточно специфическими действиями с информацией являются получение новой информации, а также продажа и покупка информации. В понятие информации может быть вложен различный смысл. Существует несколько определений информации. Это обусловлено сложностью, специфичностью и многообразием подходов к толкованию сущности этого понятия. В бытовом смысле под информацией понимается сообщение, любые данные или знания, которые кого-либо интересуют. Практически, до середины XX века под информацией понимались сведения, передаваемые друг другу. Такое понимание информации основано на логико-семантическом подходе (семантика - изучение сообщения с точки зрения смысла), при котором информация трактуется как знание, причем не любое знание, а только та его часть, которая используется для принятия решений, активных действий и управления. В дальнейшем понятие информации получило более широкое толкование - это сведения, обмениваемые тем или иным способом между людьми, обмен сигналами между животными и растениями, передача сведений в живом мире на клеточном и генном уровне и т.п. Такое понимание информации рассматривает информацию как свойство (атрибут) материи. В производственной и научной деятельности под информацией также понимают сведения, которыми обмениваются люди между собой, человек и компьютер. Появление понятия информации связано с развитием кибернетики и основано на утверждении, что информацию содержат любые сообщения, воспринимаемые человеком или приборами. Можно сказать, что сейчас, в широком смысле, информация - это отражение реального мира. В узком смысле информация - это любые сведения, являющиеся объектом хранения, передачи и преобразования. С точки зрения фундаментальных наук понятие информации является настолько общим и глубоким понятием, что оно не может быть определено через более простые - первичные понятия. Поэтому понятие информации является одним из фундаментальных основных понятий многих современных научных дисциплин (в философии существует даже такая философская категория как информация). С практической точки зрения информация всегда представляется в виде какого-либо сообщения. Любое информационное сообщение обязательно связано с источником информации, приемником информации и каналом передачи сообщения. Процесс, который происходит при установлении связи между источником информации (генератором информации) и приемником информации (получателем), называется информационным процессом. Обмен информацией происходит по каналам передачи сообщений посредством сигнала. Сообщение от источника к приемнику передается в материально-энергетической форме (электрической, магнитной, электромагнитной или световой, акустической, тепловой, химической реакции или веществом и т.п.). Физическая среда, в которой может фиксироваться или накапливаться информация для последующей обработки или передачи и анализа называется носителем информации. Чаще всего информация существует в форме электромагнитных волн различной частоты (световых или радиоволн), акустических волн (звуков), электрического тока или напряжения, в форме магнитных полей или, что для нас более привычно, в виде каких-либо знаков на бумаге, жестов, поз и мимики (в животном мире), наличия определенных веществ. Сигнал - это материальный носитель информации (предмет, символ, физический или химический процесс, явление), распространяющийся в пространстве и времени. Полученный сигнал, каким-либо образом, перерабатывается получателем информации и воспринимается в смысловом значении для дальнейшего его использования, учета, обработки или передаче к другим получателям. В принципе, информацию может переносить любая материальная структура или поток энергии. Таким образом, любой информационный процесс может происходить только в такой системе, в которой упорядочены и определенным образом связаны между собой ее элементы: источник, приемник, переработчик информации, а также каналы передачи информации или сообщений между ними. Упорядоченную совокупность таких элементов системы в дальнейшем будем называть информационной системой.

Кодирование графической информации

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

Файлы, созданные из векторной графики, содержат информацию в виде математических соотношений (математические функции, описывающие линейные отношения) и связанные данные о том, как рисовать изображение объекта с использованием сегментов линии (векторов) при отображении на мониторе компьютера.

Если внимательно посмотреть к графическому изображению на мониторе компьютера, можно увидеть большое количество разноцветных точек (пиксели - от английского pixel, образованные из элемента изображения), которые при соединении образуют это графическое изображение. Из этого можно сделать вывод: графическое изображение в компьютере определенным образом закодировано и должно быть представлено в виде графического файла. Файл является главной структурной организации для сохранения данных на компьютере и в этом случае должен иметь информацию о том, как представить этот набор точек на экране монитора.

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

Свет, отраженный или испускаемый объектом наблюдения, воспринимается нашей зрительной системой. Следовательно, «естественные» образы непрерывны. Пространственная выборка выполняется для преобразования такой информации в цифровую форму. Во время этого процесса изображение делится на конечное число элементов одинакового размера, в пределах которых изображение считается однородным.

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

Основные характеристики растрового изображения:

линейное разрешение - количество точек (пикселей) на единицу площади

цветовое разрешение - количество точечных градаций цвета

Параметры точек, яркость и цвет, должны быть измерены, то есть представлены в числовой форме. Эти характеристики могут непрерывно изменяться, а это значит, что они должны выражаться в действительных числах. Однако в этом случае возникают проблемы с точностью представления значений в компьютере. Поэтому непрерывные параметры (например, яркость и цвет точек изображения или громкость звука) квантуются.

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

Следует отметить, что определенное количество информации всегда теряется во время дискретизации и квантования. Степень различия оригинала и цифрового изображения зависит от качества компьютерного изображения.

Считается, что человеческий глаз способен различать около 16 миллионов оттенков цвета. Но как объяснить, например, компьютеру, что один объект красный, а другой розовый? В чем разница между этими двумя цветами, которые мы, в отличие от устройства, хорошо различаем на глаз. Для формального описания цвета были разработаны несколько цветовых моделей и связанных с ними методов кодирования.

Название этой модели происходит от названий трех основных цветов, используемых в модели - красного, зеленого, синего, а точнее их первых букв. Эта цветовая модель описывает, как цвет воспроизводится на экране монитора или телевизора, то есть на устройстве, содержащем электронно-лучевую трубку. Модель аддитивная (цвет получается сложением точек трех основных цветов, каждый со своей яркостью). Причем яркость каждого основного цвета может принимать значения от 0 до 255 (256 значений), таким образом, модель может кодировать 2563 или около 16,7 миллиона цветов. Эти триады основных цветов (светящиеся точки) расположены очень близко друг к другу, поэтому, когда мы смотрим на эти триады светящихся точек, каждая тройка сливается для нас в большую точку определенного цвета. Чем выше яркость цветной точки, тем больше этого цвета будет добавлено к получившейся (тройной) точке.

При минимальной совокупной яркости базовых точек, а точнее равной нулю, мы получаем черную точку. В противном случае, когда яркость будет максимальной (255), мы получим белую точку при добавлении базовых точек. Когда все яркости основных цветов одинаковы, мы получаем серую точку (чем выше значение яркости, тем светлее точка). Точку любого красивого насыщенного цвета можно получить, смешивая базовые цвета одного цвета гораздо реже, чем двух других. Например, сиреневый цвет получается, если мы возьмем максимально равное количество красного и синего цветов и не возьмем зеленый, а желтый - путем смешивания красного и зеленого. В этой модели используются устройства графического ввода, такие как сканер, цифровая камера и устройство вывода (монитор). Кодирование RGB - лучший способ описать цвет, излучаемый таким устройством, как монитор. Когда мы смотрим на изображение, напечатанное на бумаге, ситуация совершенно иная. Мы воспринимаем не прямые лучи источника, которые попадают нам в глаза, а лучи, отраженные от поверхности. Белый свет, излучаемый определенным источником (например, солнцем или лампочкой) и содержащий волны всего видимого спектра, попадает на бумагу, покрытую чернилами. В этом случае краска как бы поглощает часть лучей (их энергия расходуется на нагрев), а остальные воспринимаются нашими глазами, это тот цвет, который мы видим.

Цветовая модель CMY

Эта модель построена с использованием 3 дополнительных цветов - голубого, фиолетового и желтого (англ. Cyan - голубой, Magenta - фиолетовый, Yellow - желтый) и используется при печати изображения. Значения C = M = Y = 0 соответствуют белому цвету, поскольку чернила не наносятся на белую бумагу и все лучи отражаются. Когда мы добавляем синий, красные лучи поглощаются, оставляя только синий и зеленый. А если сверху все покрыть желтой краской, она, в свою очередь, поглотит синие лучи, останется только зеленый. При смешивании синей, фиолетовой и желтой красок, по идее, она должна получиться черной, так как все лучи поглощаются. Но на практике так не получается. Структура красок не всегда идеальна, может быть небольшое присутствие каких-то примесей, поэтому вместо черного часто получается грязно-коричневый. Он также использует больше чернил при печати черных областей. Также следует учитывать, что обычно принтеры часто печатают черный текст, а цветные чернила дороже черных. Для решения этой проблемы в набор цветов был добавлен черный цвет, так называемый ключевой цвет (English Key color), поэтому получившаяся модель получила обозначение CMYK. Изображение, которое печатают большинство принтеров, состоит из точек этих 4 цветов, которые очень близки друг к другу. Это создает визуальное впечатление, что узор состоит из разных цветов. Цветные несветящиеся объекты поглощают часть спектра белого света, который их освещает, и отражают остальную часть излучения. В зависимости от области спектра, в которой происходит поглощение, объекты отражают разные цвета (окрашенные в них). Цвета, в которых белый свет используется для удаления определенных частей спектра, называются субтрактивными. Для их описания используется субтрактивная модель CMY (голубой, пурпурный, желтый). В этой модели основные цвета формируются путем вычитания аддитивных основных цветов модели RGB из белого. То есть будет три основных субтрактивных цвета: голубой (белый минус красный), пурпурный (белый минус зеленый), желтый (белый минус синий). При смешивании двух субтрактивных компонентов полученный цвет темнеет (поглощается больше света, наносится больше краски). Таким образом, смешивание максимальных значений всех трех компонентов должно привести к черному цвету. Если чернил совсем нет (нулевые значения компонентов), цвет будет белым (белая бумага). Смещение равных значений трех компонентов даст нам оттенки серого. Эта модель используется в полиграфии и является там основной. Пурпурный, голубой, желтый составляют так называемую триаду печати, и при печати чернилами этих цветов большая часть видимого цветового спектра воспроизводится на бумаге. Однако настоящие краски имеют примеси, их цвет может быть не идеальным, и смешивание трех базовых красок, которые должны давать черный цвет, приводит к неопределенному грязно-коричневому цвету. Кроме того, для достижения интенсивных оттенков черного необходимо увеличить количество чернил каждого цвета, наносимого на бумагу во время печати, что приведет к заболачиванию бумаги и ухудшению качества печати. Кроме того, использование большого количества краски неэкономично. В базовые чернила (и в модель) был добавлен черный цвет для улучшения качества печати. Это позволило добавить к названию модели CMYK последнюю букву, пусть и не совсем обычную: C для голубого, M для пурпурного, Y для желтого. Черная составляющая сводится к букве К, потому что эти чернила - главный, ключевой (ключ) в процессе цветной печати. Таким образом, количество компонентов увеличилось до 4. Как и в модели RGB, количество каждого компонента может быть выражено в процентах или градациях от 0 до 255, но для кодирования цвета одного пикселя требуется 32 бита (4 байта). , , Примечание 1 Любое компьютерное изображение, помимо своих геометрических размеров и разрешения (точек на дюйм), характеризуется максимально возможным количеством цветов в зависимости от использования цветов. Максимальное количество цветов, которое можно использовать в этом типе изображения, называется глубиной цвета. Помимо полноцветного, существуют типы изображений с разной глубиной цвета - черно-белая линия, оттенки серого, индексированный цвет. Некоторые типы изображений имеют одинаковую глубину цвета, но различаются цветовой моделью. Для описания черно-белой штриховой графики на каждый пиксель изображения достаточно 1 бита.

Растровая и векторная графика

Техника формирования изображения из точек разного цвета является наиболее распространенной и называется растровой. Но помимо растровой графики в компьютерах используется еще и так называемая векторная графика. Векторные изображения создаются только на компьютере и формируются не из пикселей, а из графических примитивов (линий, многоугольников, окружностей и т. Д.). Векторная графика - это рисованная графика. Он очень удобен для компьютерного «рисования» и широко используется дизайнерами при графическом дизайне полиграфической продукции, в том числе при создании огромных рекламных баннеров. Векторное изображение в двоичном коде записывается как набор примитивов с указанием их размера, цвета заливки, расположения.

Кодирование чисел

Числовую информацию компьютер обрабатывает в двоичной системе счисления. Таким образом, числа в компьютере представлены последовательностью цифр 0 и 1, называемых битами (бит – один разряд двоичного числа). В начале 1980-х гг. процессоры для персональных компьютеров были 8-разрядными, и за один такт работы процессора компьютер мог обработать 8 бит, т.е. максимально обрабатываемое десятичное число не могло превышать 111111112 (или 25510). Последовательность из 8-ми бит называют байтом, т.е. 1 байт = 8 бит. Затем разрядность процессоров росла, появились 16-, 32- и, наконец, 64-разрядные процессоры для персональных компьютеров, соответственно возросла и величина максимального числа, обрабатываемого за один такт.

Использование двоичной системы для кодирования целых и действительных чисел позволяет с помощью 8 разрядов кодировать целые числа от 0 до 255, 16 бит дает возможность закодировать более 65 тыс. значений.

В ЭВМ применяются две формы представления чисел:

 Естественная форма, или форма с фиксированной запятой. В этой форме числа изображаются в виде последовательности цифр с постоянным для всех чисел положением запятой, отделяющей целую часть от дробной, например +00456,78800; +00000,00786; -0786,34287. Эта форма неудобна для вычислений и применяется только как вспомогательная для целых чисел;

Нормальная форма, или форма с плавающей точкой. В этой форме число выражается с помощью мантиссы и порядка как N = ±Μ • Р±r, где Μ – мантисса числа (|M| < 1), r – порядок числа (целое число), Р – основание системы счисления. Приведенные выше числа в нормальной форме будут представлены как +0,456788 • 103, +0,786 102, -0,3078634287 • 105.

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

В памяти ЭВМ для хранения чисел предусмотрены форматы: слово – длиной 4 байта, полуслово – 2 байта, двойное слово – 8 байт.

Разрядная сетка для чисел с плавающей запятой имеет следующую структуру:

1) нулевой разряд – это знак числа;

2)с 1-го по 7-й разряд – записывается порядок в двоичном коде;

3)с 8-го по 31-й – указывается мантисса.

Кодирование звука

Цифровой код - это аналоговый звуковой сигнал, представленный дискретными числовыми значениями его амплитуды.

Оцифровка звука - это технология с разделенными временными шагами и последующей записью полученных значений в числовой форме. Другое название оцифровки звука - аналого-цифровое преобразование звука. Оцифровка звука включает два процесса. Выборка сигнала с течением времени и процесс амплитудного квантования. Основная трудность при оцифровке - невозможность записать измеренные значения сигнала с идеальной точностью (хотя, согласно теореме Шеннона и Котельникова, это возможно).

Количество измерений величины сигнала, выполняемых за единицу времени, называется частотой дискретизации или частотой дискретизации, или частотой дискретизации (от английского «sampling» - «выборка»). Чем меньше шаг дискретизации, тем выше частота дискретизации и тем более точное представление сигнала мы получим.Кодирование или оцифровка, в результате чего значение каждой квантованной выборки представляется в виде числа, соответствующего порядковому номеру уровня квантования.Происходит это так: непрерывный аналоговый сигнал «разрезается» на участки с частотой дискретизации, получается цифровой дискретный сигнал, который проходит процесс квантования с определенной битовой глубиной, а затем кодируется, то есть заменяется последовательностью кодовых символов. Для записи звука в полосе частот 20-20 000 Гц требуется частота дискретизации 44,1 и выше (в настоящее время существуют АЦП и ЦАП с частотой дискретизации 192 и даже 384 кГц). Для получения качественной записи достаточно 16 бит, но для расширения динамического диапазона и улучшения качества записи звука используется 24 (реже 32) бит.

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

Первый - это ИКМ (импульсно-кодовая модуляция), метод цифрового кодирования сигнала путем записи абсолютных значений амплитуд. (Так записываются данные на всех аудио компакт-дисках.)

Второй - ADPCM (Adaptive Delta PCM - адаптивная относительная импульсно-кодовая модуляция) - запись значений сигнала не в абсолютных, а в относительных изменениях амплитуд (приращений).Вы можете сжать свои данные, чтобы они занимали меньше памяти, чем в исходном состоянии. Здесь также есть два пути.

Кодирование без потерь - это метод кодирования звука, который позволяет полностью восстанавливать данные из сжатого потока. Он используется, когда особенно важно сохранить исходное качество данных. Существующие сегодня алгоритмы кодирования без потерь (например, Monkeys Audio) позволяют уменьшить объем занимаемых данных на 20-50%, но при этом обеспечить стопроцентное восстановление исходных данных, полученных после сжатия.

Кодирование с потерями-здесь цель добиться схожести звучания восстановленного сигнала с оригиналом при минимально возможном размере сжатого файла. Это достигается за счет использования алгоритмов, которые «упрощают» исходный сигнал (удаляют из него «второстепенные» слышимые детали). Это приводит к тому, что декодированный сигнал перестает быть идентичным оригиналу, а только «звучит как». Существует множество методов сжатия, а также программ, реализующих эти методы. Самые известные из них - MPEG-1 Layer I, II, III (последний - всем известный MP3), MPEG-2 AAC (расширенное кодирование звука), Ogg Vorbis, Windows Media Audio (WMA), TwinVQ (VQF)., MPEGPlus., ТАС и другие. В среднем степень сжатия, обеспечиваемая такими кодировщиками, находится в диапазоне 10-14 (раз). Все кодеры с потерями основаны на так называемой психоакустической модели. Именно этим «упрощением» исходного сигнала она занимается. Степень его «упрощения» зависит от степени сжатия исходного сигнала - сильная компрессия достигается за счет «воинственного упрощения» (когда кодировщик игнорирует многие нюансы). Такое сжатие приводит к значительной потере качества, поскольку могут быть удалены не только едва различимые, но и важные детали звука.

Заключение

Для современного периода характерно новое соотношение двух сторон информационного общества - информационных ресурсов и информационных потребностей. На основе анализа этих сторон показана динамика и возможные сценарии дальнейшего развития общества в период информационного взрыва. Сделан вывод, что инерционное саморазвитие информационных ресурсов должно быть уравновешенно научно-обоснованной информатизацией образования, направляющей информационное общество на стабильный путь. Рост количества информации и повышение ее значения во всех сторонах жизнедеятельности человека привел к вложению огромных средств и сил в развитие возможностей информационно-компьютерных инфраструктур в обществе. Научный поиск дал стимул техническому перевооружению этой сферы и привел к столь стремительному возрастанию информационно-компьютерных возможностей и к новому витку роста количества информации, что подавляющее большинство из них остается не востребованным. Множество информационных структур, пронизывая систему образования составляет единую информационно-компьютерную и научную инфраструктуру системы образования, которая в настоящее время активно развивается. Интенсивный рост возможностей компьютерной техники и явное запаздывание ее теоретического осмысления в педагогике привели к тому, что преобладание бытового понимания и использования информационно-компьютерных систем в настоящее время вызвало стихийный перекос основ информационного общества, опасную однобокость и извращение самой идеи информатизации. Выравнивание сложившейся ситуации должно осуществляться на прочном научно-обоснованном фундаменте информационно-компьютерной подготовки современного человека.

Используемая литература

1.Каймин В.А. и др. «Основы информатики и вычислительной техники»; М.: «Просвещение»,1989г.

2.Основы информатики и вычислительной техники Под ред. А.П.Ершов и В.М. Монахова, М.: «Просвещение», 1985 г. I часть, 1986 г. II часть.

3. Шауцукова Л.З. «Информатика»: Учебное пособие для 10-11 кл. общеобразовательных учреждений. - М.: «Просвещение», 2000. - 416 с.: ил.

4. Вальциферов Ю.В., Тихомиров В.П. Информатика, часть 1, Системы счисления. Элементы математической логики, Учебно-практическое пособие, М.: МЭСИ, 1996. - 101 стр.

5. Савельев А.Я. и др. Основы информатики. Электронные вычислительные машины. В 8 кн. Кн. 2. Основы информатики. Под ред. А.Я. Савельев. - 2 изд. - М.: «Высшая школа», 1991. - 159 с.

6.Соколова Т.Е “Кодирование и хранение информации для 9-10 класса”; Учебное пособие 2008г- 124с