Файл: Методы кодирования данных.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.06.2023

Просмотров: 104

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рис. 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 - элемент изображений).