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

Методы кодирования данных (изучения основ кодирования)

Содержание:

Введение

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

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

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

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

До появления работ Шеннона, Фано а позже и Хаффмана, кодирование символов алфавита при передаче сообщения по каналам связи осуществлялось одинаковым количеством бит, получаемым по формуле Хартли. С появлением этих работ начали появляться способы, кодирующие символы разным числом бит в зависимости от вероятности появления их в тексте, то есть более вероятные символы кодируются короткими кодами, а редко встречающиеся символы - длинными (длиннее среднего).

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

Объект исследования: кодирование информации.

Предмет исследования: методы кодирования информации

Целью курсовой работы является изучения основ кодирования различных видов информации. Данная цель обусловила выделение следующих задач:

1) рассмотреть основные понятия и принципы кодирования информации;

2) изучить методы кодирования,

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

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

1. Теоретические основы кодирования информации

1.1 Основные понятия кодирования информации

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

Код - правило (алгоритм) сопоставления каждому конкретному сообщению строго определённой комбинации символов (знаков) (или сигналов) [1]

Кодирование – процесс представления информации в виде кода (представление символов одного алфавита символами другого; переход от одной формы представления информации к другой, более удобной для хранения, передачи или обработки)[2].

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

С появлением телеграфа появился и код Морзе.

Код Морзе – способ знакового кодирования, представление букв алфавита, цифр, знаков препинания и других символов последовательностью сигналов: длинных («тире») и коротких («точек»)[2]). За единицу времени принимается длительность одной точки. Длительность тире равна трём точкам. Пауза между элементами одного знака – одна точка, между знаками в слове – 3 точки, между словами – 7 точек[3].

В дальнейшем м появлением вычислительной техники появилось.

Рассмотрим основные системы кодирование информации.

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

Для передачи информации обязательно нужно, чтобы свойства носителя как-то изменялись. Самый простой используемый код должен содержать, по крайней мере, два разных знака. Такое кодирование называют двоичным (от слова «два»), оно используется практически во всех современных компьютерах.[4]

Двоичное кодирование получило широкое распространение в электронике благодаря тому, что можно легко соотнести логическую еденицу определённому напряжению, а логический ноль – отсутствию напряжения.

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

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

Самой распрастранённой таблицей кодирования текстовой информации является таблица ASCII.

ASCII (англ. American standard code for information interchange,) – название таблицы (кодировки, набора), в которой некоторым распространённым печатным и непечатным символам сопоставлены числовые коды. Таблица была разработана и стандартизована в США в 1963 году [1].

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

Как и все виды информации, изображения в компьютере закодированы в виде двоичных последовательностей. Используют два принципиально разных метода кодирования графической информации растровый и векторный, каждый из которых имеет свои достоинства и недостатки.[4]

Растровый способ кодирования заключается в том что графический объект, подлежащий представлению в цифровом виде, делится вертикальными и горизонтальными линиями на крошечные фрагменты – пиксели. Чёрно-белое изображение можно представить в виде последовательности двоичного кода где каждому чёрному пикселю будет соответствовать логическая единица, а каждому белому логический ноль.[5]

Любое растровое изображение характеризуется тремя основными параметрами: глубиной цвета, размером изображения и разрешением.

Разреше́ние – величина, определяющая количество точек (элементов растрового изображения) на единицу площади (или единицу длины) [1] .

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

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

Этих недостатков лишены изображения, закодированные векторным способом.

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

Ещё одним не мало важным аспектом в кодировании графической информации является кодирование цвета.

В настоящее время широко используются два основных метода кодирования цвета:

RGB – аддитивная цветовая схема, основанная на трех цветах: красном, зеленом и синем. Смешение их дает полный спектр оттенков воспринимаемых человеческим глазом.

CMYK – субтрактивная цветовая схема, основанная на цветах: циан (сине-зеленый), маджента (пурпурный), желтый и черный (дополняющий).

Основное отличие этих систем кодирования заключается в том что RGB цвета образуются за счет интенсивности свечения пикселей, в CMYK – за счет процента непрозрачности красок.

Таким оброзом становится понятно что для переноса изображения на монитор необходимо закодировать его в системе RGB, а при переносе на бумагу плёнку или другие поверхности (т.е. для осуществления печати) необходимо его закодировать в системе CMYK.

Штриховое кодирование

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

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

1.2 Классификация назначения и способы представления кодов

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

Знание основ кодирования информации в современном мире необходимо. IT-технологии проникли всюду и теперь даже на уроках по информатике преподают кодирование информации.

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

двоичная система исчисления. Используется при эффективном конструировании электронных систем, существуют усовершенствованные версии, представляющие собой восьмеричные и шестнадцатеричные системы исчисления, что упрощает работу с объемными массивами предоставленных числовых данных;

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

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

Условные знаки, или коды, используемые в ходе кодирования в обязательном порядке проходят систематизацию и помогают представлять любые объемы информации для быстрой и эффективной их обработки в ходе дальнейшего применения необходимых данных.

В качестве элементов кодируемой информации могут выступать:

- буквы, слова и фразы естественного языка;

- различные символы, такие как знаки препинания, арифметические и логические операции, операторы сравнения и т.д. Следует отметить, что сами знаки операций и операторы сравнения – это кодовые обозначения;

- числа;

- аудиовизуальные образы;

- ситуации и явления;

- наследственная информация;

- и т.д.

Кодовые обозначения могут представлять собой:

- буквы и сочетания букв естественного языка;

- числа;

- графические обозначения;

- электромагнитные импульсы;

- световые и звуковые сигналы;

- набор и сочетание химических молекул;

- и т.д.

Кодирование может выполняться в целях:

- удобства хранения, обработки и передачи информации (как правило, закодированная информация представляется более компактно, а также пригодна для обработки и передачи автоматическими программно-техническими средствами);

- удобства информационного обмена между субъектами;

- наглядности отображения;

- идентификации объектов и субъектов;

- сокрытия секретной информации;

- и т.д.

Кодирование информации бывает одно- и многоуровневым. Примером одноуровневого кодирования служат световые сигналы, подаваемые светофором (красный – стой, желтый – приготовиться, зеленый – вперед). В качестве многоуровневого кодирования можно привести представление визуального (графического) образа в виде файла фотографии. Вначале визуальная картинка разбивается на составляющие элементарные элементы (пикселы), т.е. каждая отдельная часть визуальной картинки кодируется элементарным элементом. Каждый элемент представляется (кодируется) в виде набора элементарных цветов (RGB: англ. red – красный, green – зеленый, blue – синий) соответствующей интенсивностью, которая в свою очередь представляется в виде числового значения. Впоследствии наборы чисел, как правило, преобразуются (кодируются) с целью более компактного представления информации (например, в форматах jpeg, png и т.д.). И наконец, итоговые числа представляются (кодируются) в виде электромагнитных сигналов для передачи по каналам связи или областей на носителе информации. Следует отметить, что сами числа при программной обработке представляются в соответствии с принятой системой кодирования чисел.

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

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

1.3. Методы шифрования и кодирования

Представление чисел в двоичном виде (в компьютере). Как известно, информация, хранящаяся и обрабатываемая в компьютерах, представлена в двоичном виде. Бит (англ. binary digit - двоичное число; также игра слов: англ. bit - кусочек, частица) - единица измерения количества информации, равная одному разряду в двоичной системе счисления. С помощью бита можно закодировать (представить, различать) два состояния (0 или 1; да или нет). Увеличивая количество битов (разрядов), можно увеличить количество кодируемых состояний. Например, для байта (англ. byte), состоящего из 8 битов, количество кодируемых состояний составляет 28 = 256.

Числа кодируются в т.н. форматах с фиксированной и плавающей запятой.

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

Для беззнакового представления все разряды отводятся под представление самого числа. Например, с помощью байта можно представить беззнаковые целые числа от 010 до 25510 (000000002 - 111111112) или вещественные числа с одним десятичным знаком от 0.010 до 25.510 (000000002 - 111111112). Для знакового представления, т.е. положительных и отрицательных чисел, старший разряд отводится под знак (0 – положительное число, 1 – отрицательное).

Различают прямой, обратный и дополнительный коды записи знаковых чисел.

В прямом коде запись положительного и отрицательного числа выполняется так же, как и в беззнаковом представление (за исключение того, что старший разряд отводится под знак). Таким образом, числа 510 и -510 записываются, как 000001012 и 100001012. В прямом коде имеются два кода числа 0: «положительный нуль» 000000002 и «отрицательный нуль» 100000002.

При использовании обратного кода отрицательное число записывается в виде инвертированного положительного числа (0 меняются на 1 и наоборот). Например, числа 510 и -510 записываются, как 000001012 и 111110102. Следует отметить, что в обратном коде, как и в прямом, имеются «положительный нуль» 000000002 и «отрицательный нуль» 111111112. Применение обратного кода позволяет вычесть одно число из другого, используя операцию сложения, т.е. вычитание двух чисел X – Y заменяется их суммой X + (-Y). При этом используются два дополнительных правила:

- вычитаемое число инвертируется (представляется в виде обратного кода);

- если количество разрядов результата получается больше, чем отведено на представление чисел, то крайний левый разряд (старший) отбрасывается, а к результату добавляется 12.

В следующей таблице приведены примеры вычитания.

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

X – Y

5 – 5

6 – 5

5 – 6

5 – (-6)

X2

00000101

00000110

00000101

00000101

Y2

00000101

00000101

00000110

11111001

Замена сложением

5 + (-5)

6 + (-5)

5 + (-6)

5 + 6

Обратный код для вычитаемого (-Y2)

11111010

11111010

11111001

00000110

Сложение

00000101
+
11111010
11111111

00000110
+
11111010
100000000

00000101
+
11111001
11111110

00000101
+
00000110
00001011

Отбрасывание старшего разряда и добавление 12

не требуется

00000000
+
00000001
00000001

не требуется

не требуется

Результат

-0

1

-1

11

Несмотря на то, что обратный код значительно упрощает вычислительные процедуры, а соответственно и быстродействие компьютеров, наличие двух «нулей» и другие условности привели к появлению дополнительного кода. При представлении отрицательного числа его модуль вначале инвертируется, как в обратном коде, а затем к инверсии сразу добавляется 12.

В следующей таблице приведены некоторые числа в различном кодовом представлении.

Таблица 2. Представление чисел в различных кодах

Десятичное
представление

Код двоичного представления (8 бит)

прямой

обратный

дополнительный

127

01111111

01111111

01111111

6

00000110

00000110

00000110

5

00000101

00000101

00000101

1

00000001

00000001

00000001

0

00000000

00000000

00000000

-0

10000000

11111111

---

-1

10000001

11111110

11111111

-5

10000101

11111010

11111011

-6

10000110

11111001

11111010

-127

11111111

10000000

10000001

-128

---

---

10000000

При представлении отрицательных чисел в дополнительных кодах второе правило несколько упрощается - если количество разрядов результата получается больше, чем отведено на представление чисел, то только отбрасывается крайний левый разряд (старший).

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

X – Y

5 – 5

6 – 5

5 – 6

5 – (-6)

X2

00000101

00000110

00000101

00000101

Y2

00000101

00000101

00000110

11111010

Замена сложением

5 + (-5)

6 + (-5)

5 + (-6)

5 + 6

Дополнительный код для вычитаемого (-Y2)

11111011

11111011

11111010

00000110

Сложение

00000101
+
11111011
00000000

00000110
+
11111011
100000001

00000101
+
11111010
11111111

00000101
+
00000110
00001011

Отбрасывание старшего разряда и добавление 12

не требуется

00000001

не требуется

не требуется

Результат

-0

1

-1

11

Можно возразить, что представление чисел в дополнительных кодах требует на одну операцию больше (после инверсии всегда требуется сложение с 12), что может и не потребоваться в дальнейшем, как в примерах с обратными кодами. В данном случае срабатывает известный «принцип чайника». Лучше сделать процедуру линейной, чем применять в ней правила «Если A то B» (даже если оно одно). То, что с человеческой точки зрения кажется увеличением трудозатрат (вычислительной и временной сложности), с точки зрения программно-технической реализации может оказаться эффективней.

Еще одно из преимуществ дополнительного кода перед обратным заключается в возможности представления в единице информации на одно число (состояние) больше, за счет исключения «отрицательного нуля». Поэтому, как правило, диапазон представления (хранения) для знаковых целых чисел длиной один байт составляет от +127 до -128.

2. Формат с плавающей запятой, в основном, используется для вещественных чисел. Число в данном формате представляется в экспоненциальном виде

X = en * m, (22.1)

где e - основание показательной функции;

n - порядок основания;

en - характеристика числа;

m - мантисса (лат. mantissa - прибавка) – множитель, на который надо умножить характеристику числа, чтобы получить само число.

Например, число десятичное число 350 может быть записано, как 3.5 * 102, 35 * 101, 350 * 100 и т.д. В нормализованной научной записи, порядок n выбирается такой, чтобы абсолютная величина m оставалась не меньше единицы, но строго меньше десяти (1 ≤ |m| < 10). Таким образом, в нормализованной научной записи число 350 выглядит, как 3.5 * 102. При отображении чисел в программах, учитывая, что основание равно 10, их записывают в виде m E ± n, где Е означает «*10^» («…умножить на десять в степени…»). Например, число 350 – 3.5Е+2, а число 0.035 – 3.5Е-2.

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

bn±

bn7

bn6

bn5

bn4

bn3

bn2

bn1

bm±

bm15

bm14

bm13

bm12

bm11

bm10

bm9

bm8

bm7

bm6

bm5

bm4

bm3

bm2

bm1

знак

величина

знак

величина

порядок

мантисса

Рис. 1. Двоичный формат представления чисел с плавающей запятой

Биты bn± и bm±, означающие знак порядка и мантиссы, кодируются аналогично числам с фиксированной запятой: для положительных чисел «0», для отрицательных – «1». Значение порядка выбирается таким образом, чтобы величина целой части мантиссы в десятичном (и соответственно в двоичном) представлении равнялась «1», что будет соответствовать нормализованной записи для двоичных чисел. Например, для числа 35010 порядок n = 810 = 0010002(350 = 1.3671875 * 28), а для 57610 – n = 910 = 0010012 (576 = 1.125 * 29). Битовое представление величины порядка может быть выполнено в прямом, обратном или дополнительном коде (например, для n = 810 бинарный вид 0010002). Величина мантиссы отображает дробную часть. Для ее преобразования в двоичный вид, она последовательно умножается на 2, пока не станет равной 0. Например,

Рис. 2. Пример получения дробной части в бинарном виде

Целые части, получаемые в результате последовательного перемножения, и представляют собой двоичный вид дробной части (0.367187510 = 01011112). Оставшаяся часть разрядов величины мантиссы заполняется 0. Таким образом, итоговый вид числа 350 в формате с плавающей запятой с учетом представления мантиссы в нормализованной записи

0

0

0

0

1

0

0

0

0

0

1

0

1

1

1

1

0

0

0

0

0

0

0

0

знак
+

величина
28

знак
+

величина
(1) + 0.3671875

порядок

мантисса

Рис. 3. Двоичный вид числа 350

В программно-аппаратных реализациях арифметических действий широко распространен стандарт представления чисел с плавающей точкой IEEE2 754 (последняя редакция «754-2008 - IEEE Standard for Floating-Point Arithmetic»). Данный стандарт определяет форматы с плавающими запятыми для представления чисел одинарной (англ. single, float) и двойной (англ. double) точности. Общая структура форматов

bn±

bni

...

bn1

bmj

...

bm1

знак
мантиссы

порядок

величина
мантиссы

Рис. 4. Общий формат представления двоичных чисел в стандарте IEEE 754

Форматы представления отличаются количеством бит (байт), отводимым для представления чисел, и, соответственно, точностью представления самих чисел.

Таблица 4. Характеристики форматов представления двоичных чисел в стандарте IEEE 754

Формат

single

double

Общий размер, бит (байт)

32 (4)

64 (8)

Число бит для порядка

8

11

Число бит для мантиссы
(без учета знакового бита)

23

52

Величина порядка

2128 .. 2-127
(±3.4 * 1038 .. 1.7 * 10-38)

21024 .. 2-1023
(±1.8 * 10308 .. 9.0 * 10-307)

Смещение порядка

127

1023

Диапазон представления чисел
(без учета знака)

±1.4 * 10-45 .. 3.4 * 1038

±4.9 * 10-324 .. 1.8 * 10308

Количество значащих цифр числа
(не более)

8

16

Особенностью представления чисел по стандарту IEEE является отсутствие бита под знак порядка. Несмотря на это, величина порядка может принимать как положительные значения, так и отрицательные. Этот момент учитывается т.н. «смещением порядка». После преобразования двоичного вида порядка (записанного в прямом коде) в десятичный от полученной величины отнимается «смещение порядка». В результате получается «истинное» значения порядка числа. Например, если для числа одинарной точности указан порядок 111111112 (= 25510), то величина порядка на самом деле 12810 (= 25510 - 12710), а если 000000002 (= 010), то -12710 (= 010 - 12710).

Величина мантиссы указывается, как и в предыдущем случае, в нормализованном виде.

C учетом вышеизложенного, число 35010 в формате одинарной точности стандарта IEEE 754 записывается следующим образом.

0

1

0

0

0

0

1

1

1

0

1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

знак
мантиссы
+

порядок
28 (8 = 135 - 127)

величина мантиссы
(1) + 0.3671875

Рис. 5. Двоичный вид числа 350 по стандарту IEEE

К другим особенностям стандарта IEEE относится возможность представления специальных чисел. К ним относятся значения NaN (англ. Not a Number - не число) и +/-INF (англ. Infinity - бесконечность), получающихся в результате операций типа деления на ноль. Также сюда попадают денормализованные числа, у которых мантисса меньше единицы.

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

Другой нюанс обнаруживается при сложении двух чисел, у которых значительно отличается порядок. Например, результатом сложения 1010 + 10-10 будет 1010. Даже если последовательно триллион (1012) раз добавлять 10-10 к 1010, то результат останется прежним 1010. Если же к 1010 добавить произведение 10-10 * 1012, что с математической точки зрения одно и то же, результат станет 10000000100 (1.0000000100 * 1010).

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

В ДНК используется четыре азотистых основания - аденин (А), гуанин (G), цитозин (С), тимин (T), которые в русскоязычной литературе обозначаются буквами А, Г, Ц и Т. Эти буквы составляют алфавит генетического кода. В молекулах ДНК нуклеотиды выстраиваются в цепочки и, таким образом, получаются последовательности генетических букв.

Белки практически всех живых организмов построены из аминокислот всего 20 видов. Эти аминокислоты называют каноническими. Каждый белок представляет собой цепочку или несколько цепочек аминокислот, соединенных в строго определенной последовательности. Эта последовательность определяет строение белка, а, следовательно, все его биологические свойства. Синтез белков (т.е. реализация генетической информации в живых клетках) осуществляется на основе информации, заложенной в ДНК. Для кодирования каждой из 20 аминокислот, а также сигнала «стоп», означающего конец белковой последовательности, достаточно трех последовательных нуклеотидов (триплета).

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

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

2. Особенности кодирования различных видов данных

2.1. Кодирование текстовой информации

Для кодирования текстовой информации разработаны различные системы кодирования, но для обеспечения процессов обмена информацией между различными компьютерными системами потребовалась стандартизация представления текстовой информации. Первым был разработан американский стандартный код для обмена информацией ASCII (American Standard Code for Information Interchange), созданный Американским национальным институтом стандартов (ANSI). Код ASCII первоначально использовал 7 бит для представления прописных и строчных букв английского алфавита, цифр, знаков пунктуации и управляющей информации. Управляющая информация была необходима для управления вводом/выводом информации в ЭВМ с перфоленты. В настоящее время код ASCII состоит из 8 бит, одному символу соответствует ровно 1 байт. Это позволило существенно увеличить разнообразие представляемых символов, в том числе добавить символы национальных алфавитов.

Для оценки объема информации, представляемой для обработки и хранения ее в ЭВМ, используется простейший пересчет – число символов (знаков, букв, пробелов) в тексте пересчитывается в количество байтов.

Одна машинописная страница текстового документа при использовании шрифта Times New Roman, 14 пунктов содержит в среднем 34 строки по 77 символов, т.е. 2618 символов, или около 2,5 Кбайт.

Экран в текстовом формате содержит 80 символов в строке и 25 строк, что соответствует 2000 символов, или около 1,9 Кбайт.

Грубо определить размер текстового документа в байтах можно следующим образом. Пусть, например, документ содержит порядка 1200 страниц текста, подготовленного в формате Times New Roman, 14 пунктов. Тогда ориентировочный размер файла для представления информации[1]. 2,5 (Кб/стр.) ∙ 1200 (стр.) = 3067,97 Кбайт (около 3 Мбайт).

В конце 1980-х г. на смену коду ASCII пришел Unicode, который существенно расширил алфавит символов, но увеличил размерность текстовых файлов.

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

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

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

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

Стандарты кодирования.

Первый широко известный стандарт кодирования текста был принят в 1963 году и получил название ASCII (American Standard Code for Information Interchange) – американский стандартный код для обмена информацией). Таблица кодирования содержала символы латинского алфавита, цифры, набор управляющих символов и некоторые знаки препинания.

Рис. 5 . Кодировка ASCII

В таблице 1 код ASCII представлен в свернутой шестнадцатеричной форме. Если развернуть в двоичную форму код превращается в семиразрядные двоичные числа (например, код 0D16 (CR) означает возврат каретки (переход к началу строки)).

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

Изначально в стандарте ASCII использовался семиразрядный двоичный код. Всего можно было закодировать 27 = 128 символов. Затем, код ASCII расширили за счет добавления 8-го бита (28 = 256 символов). Первая половина восьмиразрядной кодировки совпадает с ASCII, а во второй, получившей название кодовой страницы (CP – code page), - содержатся представления символов национальных алфавитов и некоторых других знаков. Для русского языка в разных операционных системах используются свои кодовые страницы, например, Windows - CP1251, MS DOS – CP866.

Однобайтные кодировки имеют определенные неудобства, одно из которых недостаточно большое количество кодовых слов для использования одновременно нескольких языков. Для решения этих проблем в 1991 году был разработан шестнадцатиразрядный международный стандарт символьного кодирования Unicode, который позволяет закодировать 216 = 65536 символов.

Более поздние разработки стандарта Unicode за счет более сложной организации кода, при сохранении 16-ти разрядности, позволяют кодировать 1112064 символов. Таким образом, Unicode позволяет использовать в одном тексте символы алфавитов любых языков мира, в том числе и «мертвых».

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

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

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

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

Рис. 6. Пространственная дискретизация изображения

Дискретные элементы изображения на экране монитора называют пикселями (от англ. pixel, pel – сокращение от piсtures element - элемент изображений).

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

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

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

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

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

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

N = 2 i

где N – количество возможных цветов,

i – число бит (глубина цвета), отводимых для кодирования цвета точки

2.3. Кодирование звуковой информации

Звук представляет собой непрерывный сигнал, а именно звуковую волну с меняющейся амплитудой и частотой. Чем выше амплитуда сигнала, тем он громче воспринимается человеком. Чем больше частота сигнала, тем выше его тон.

Частота звуковой волны определяется количеством колебаний в одну секунду. Данная величина измеряется в герцах (Гц, Hz). Ухо человека воспринимает звуки в диапазоне от 20 Гц до 20 кГц, данный диапазон называют звуковым. Количество бит, которое при этом отводится на один звуковой сигнал, называют глубиной кодирования звука. В современных звуковых картах обеспечивается 16−, 32− или 64−битная глубина кодирования звука. В процессе кодирования звуковой информации непрерывный сигнал заменяется дискретным, то есть преобразуется в последовательность электрических импульсов, состоящих из двоичных нулей и единиц. Частота дискретизации звука Одной из важных характеристик процесса кодирования звука является частота дискретизации, которая представляет собой количество измерений уровня сигнала за 1 секунду:

одно измерение в одну секунду соответствует частоте 1 гигагерц (ГГц); 1000 измерений в одну секунду соответствует частоте 1 килогерц (кГц) .

Чем выше частота и глубина дискретизации звука, тем более качественно будет звучать оцифрованный звук. Самое низкое качество оцифрованного звука, которое соответствует качеству телефонной связи, получается, когда частота дискретизации равна 8000 раз в секунду, глубина дискретизации 8 битов, что соответствует записи одной звуковой дорожки (режим «моно»). Самое высокое качество оцифрованного звука, которое соответствует качеству аудио-CD, достигается, когда частота дискретизации равна 48000 раз в секунду, глубина дискретизации 16 битов, что соответствует записи двух звуковых дорожек (режим «стерео»).

Существуют различные методы кодирования звуковой информации двоичным кодом, среди которых выделяют два основных направления: метод FM и метод Wave-Table. Метод FM (Frequency Modulation) основан на том, что теоретически любой сложный звук можно разложить на последовательность простейших гармонических сигналов разных частот, каждый из которых будет представлять собой правильную синусоиду, а это значит, что его можно описать кодом. Процесс разложения звуковых сигналов в гармонические ряды и их представление в виде дискретных цифровых сигналов происходит в специальных устройствах, которые называют «аналогово-цифровые преобразователи» (АЦП). Рисунок 2. Преобразование звукового сигнала в дискретный сигнал На рисунке 2а изображен звуковой сигнал на входе АЦП, а на рисунке 2б изображен уже преобразованный дискретный сигнал на выходе АЦП. Для обратного преобразования при воспроизведении звука, который представлен в виде числового кода, используют цифро-аналоговые преобразователи (ЦАП). Процесс преобразования звука изображен на рис. 3. Данный метод кодирования не даёт хорошего качества звучания, но обеспечивает компактный код. Рисунок 3. Преобразование дискретного сигнала в звуковой сигнал На рисунке 3а представлен дискретный сигнал, который мы имеем на входе ЦАП, а на рисунке 3б представлен звуковой сигнал на выходе ЦАП. Таблично-волновой метод (Wave-Table) основан на том, что в заранее подготовленных таблицах хранятся образцы звуков окружающего мира, музыкальных инструментов и т. д. Числовые коды выражают высоту тона, продолжительность и интенсивность звука и прочие параметры, характеризующие особенности звука. Поскольку в качестве образцов используются «реальные» звуки, качество звука, полученного в результате синтеза, получается очень высоким и приближается к качеству звучания реальных музыкальных инструментов.

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

Глубина кодирования звука связана с количеством уровней квантования по формуле:

N = 2 i

где N – количество уровней разбиения амплитуды сигнала,
i – число бит (глубина кодирования), отводимых для кодирования уровней амплитуды сигнала

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

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

Для расчета информационного объема звукового файла используется следующая формула:

I = i • ν • t • k

где i – глубина кодирования

ν – частота дискретизации

t - время звучания файла, k - коэффициент, знaчение которого зависит от качества звука: моно - 1, стерео - 2, квадро - 4

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

Заключение

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

Как известно, кодирование связано с определением:

■ множества объектов, для которых выполняется кодирование;

■ целей кодирования;

■ алфавита кода, т.е. состава символов, применяемых при создании кодов;

■ структуры кода, т.е. состава и назначения отдельных разрядов кода.

Целями кодирования могут быть: применение компактной формы записи информации, в том числе для замены естественного языка искусственным; идентификация объектов; помехозащищенность и др.

Для машинной обработки кодирование выполняет важную функцию – представление информации в виде, удобном для обработки на ЭВМ. Объектом кодирования становится информация различной природы:

■ числовая информация, применяемая для вычислений;

■ текстовая информация, позволяющая представлять разнообразную алфавитно-цифровую информацию, символы псевдографики;

■ звуковая и видеоинформация, используемые в мультимедиа.

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

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

Для обеспечения надежности систем обработки данных, связанных с накоплением информации в БД, передачей информации по каналам связи, другими видами обработки данных и т.п., встает вопрос помехозащищенности кодов. Это достигается методами помехоустойчивого кодирования, реализуемыми аппаратными или программными средствами, выполнением операций обработки по кодированию-декодированию информации, обнаружению и даже автоматическому исправлению ошибок в коде.

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

Список использованной литературы

  1. Автоматическая обработка текстов на естественном языке и анализ данных : учеб. пособие / Большакова Е.И., Воронцов К.В., Ефремова Н.Э., Клышинский Э.С., Лукашевич Н.В., Сапин А.С. – М.: Изд-во НИУ ВШЭ, 2017. – 269 с.
  2. Белов Г.В. Штриховое кодирование: технологии XXI века. - М.: Металлургия, 2013. - 200 с.
  3. Богачев И.В., Левенец А.В., Чье Е.У. Статистический анализ телеметрических данных с точки зрения задачи сжатия. Информационно-управляющие системы. 2017;(1):11-16.
  4. Бухарбаева Н.А. Кодирование текстовой информации // Современные научные исследования и инновации. 2017. № 5 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2017/05/83194 (дата обращения: 07.02.2019).
  5. Голиков, А. М. Кодирование и шифрование информации в системах связи: Методические указания по курсовой работе [Электронный ресурс] / А. М. Голиков. – Томск: ТУСУР, 2016. – 123 с.
  6. Димитренко Е.В., Швецов А.Ю. ИСПОЛЬЗОВАНИЕ БИНАРНЫХ ДЕРЕВЬЕВ В МЕТОДЕ КОДИРОВАНИЯ ХАФФМАНА // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XXXI междунар. студ. науч.-практ. конф. № 4(30). URL: http://sibac.info/archive/technic/4(30).pdf (дата обращения: 22.02.2019)
  7. Егоров Н.Д., Новиков Д.В., Гильмутдинов М.Р. Метод сжатия изображений без потерь с помощью контекстного кодирования по двоичным уровням. Информационно-управляющие системы. 2017;(6):96-106.
  8. Кодирование информации в инфокоммуникациях // Доклады БГУИР. 2014. №2 (80). URL: https://cyberleninka.ru/article/n/kodirovanie-informatsii-v-infokommunikatsiyah (дата обращения: 22.02.2019).