Файл: Методы кодирования данных (История, примеры).pdf

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

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

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

Добавлен: 15.05.2023

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

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

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

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

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

Все символы компьютерного алфавита пронумерованы от 0 до 255. Каждому номеру соответствует восьмиразрядный двоичный код от 00000000 до 11111111. Этот код просто порядковый номер символа в двоичной системе счисления.

2.1.3. Кодирование символов. Байт.

На основании одной ячейки информационной ёмкостью 1 бит можно закодировать только 2 различных состояния. Для того чтобы каждый символ, который можно ввести с клавиатуры в латинском регистре, получил свой уникальный двоичный код, требуется 7 бит.  На основании последовательности из 7 бит, в соответствии с формулой Хартли, может быть получено N=27=128 различных комбинаций из нулей и единиц, т.е. двоичных кодов. Поставив в соответствие каждому символу его двоичный код, мы получим кодировочную таблицу. Человек оперирует символами, компьютер – их двоичными кодами.

Для латинской раскладки клавиатуры такая кодировочная таблица одна на весь мир, поэтому текст, набранный с использованием латинской раскладки, будет адекватно отображен на любом компьютере. Эта таблица носит название ASCII (American Standard Code of Information Interchange) по-английски произносится [э́ски], по-русски произносится [а́ски]. Ниже приводится вся таблица ASCII, коды в которой указаны в десятичном виде. По ней можно определить, что когда вы вводите с клавиатуры, скажем, символ “*”, компьютер его воспринимает как код 42(10), в свою очередь 42(10)=101010(2) – это и есть двоичный код символа “*”. Коды с 0 по 31 в этой таблице не задействованы.

Чтобы хранить также и коды национальных символов каждой страны (в нашем случае – символов кириллицы) требуется добавить еще 1 бит, что увеличит количество уникальных комбинаций из нулей и единиц вдвое, т.е. в нашем распоряжении дополнительно появится 128 свободных кодов (со 128-го по 255-й), в соответствие которым можно поставить символы русского алфавита.

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


Так мы подошли к необходимости познакомиться с еще одной базовой единицей измерения – байтом.

Байт - последовательность из 8 бит.

1 байт = 23 бит = 8 бит.

На основании одного байта можно получить 28=256 уникальных двоичных кодов.

В современных кодировочных таблицах под хранение информации о коде каждого символа отводится 1 байт.

1 символ = 1 байт.

В байтах измеряется объем данных (V) при их хранении и передаче по каналам связи. Например, текст “Добрый день!” занимает объем равный 12 байтам.

Биты в байте нумеруются с конца с 0-го по 7-й. Минимальная комбинация на основании одного байта – восемь нулей, максимальная – восемь единиц. Рис. 18а.

11111111(2)=27+26+25+24+23+22+21+20=128+64+32+16+8+4+2+1=255(10)

При хранении на физическом уровне каждый байт может быть реализован, например, на базе восьми конденсаторов, каждый из которых либо разряжен (0), либо заряжен (1). Рис. 18b.

Рис. 18а. Байт: минимальная и максимальная комбинации

Рис. 18b. Байт: соответствие двоичного числа и электрического импульса.

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

Например, текст “Компьютерные вирусы”, введенный в кодировке Windows-1251 в кодировке КОИ-8 будет отображен так: ”лПНРШАФЕТОШЕ ЧЙТХУЩ”. 

Несоответствие кодов символов в различных кодировках кириллицы.

Код

Windows-1251

КОИ-8

ISO

Под национальные кодировки отданы коды с 128-го по 255-й.

192

А

ю

Р

193

Б

а

С

194

В

б

Т

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


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

Теоретически давно существует решение проблем связанных с кодировкой. Оно называется Unicode (Юникод). Unicode – это кодировочная таблица, в которой для кодирования каждого символа используется 2 байта, т.е. 16 бит. На основании такой таблицы может быть закодировано N=216=65 536 символов.

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

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

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

Для символов кириллицы в Юникоде выделено два диапазона кодов:

Cyrillic (#0400 — #04FF)

Cyrillic Supplement (#0500 — #052F).

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

Поэтому сейчас на практике больше распространено представление Юникода UTF-8 (Unicode Transformation Format). UTF-8 обеспечивает наилучшую совместимость с системами, использующими 8-битные символы. Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 4 байтов. В целом, так как самые распространенные в мире символы – символы латинского алфавита - в UTF-8 по-прежнему занимают 1 байт, такое кодирование экономичнее, чем чистый Юникод.

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

Графическая информация, как и информация любого другого типа, хранятся в памяти компьютера в виде двоичных кодов. Изображение, состоящее из отдельных точек, каждая из которых имеет свой цвет, называется растровым изображением. Минимальный элемент такого изображения в полиграфии называется растр, а при отображении графики на мониторе минимальный элемент изображения называют пиксель (pixel, от англ. picture element).


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

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

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

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

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

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

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

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

1280 х 1024

1600 x 1200

1680 x 1050

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

В процессе дискретизации используются разные палитры.

Каждый цвет рассматривается как будущее состояние точки. Количество цветов N и количество информации I, связаны между собой и вычисляются по формуле: N=2i. Такие выходные данные необходимы для кодирования цвета каждой по отдельности точки.

Например, в самом простом случае палитра цветов состоит из двух - черного и белого.

Значит каждая точка на экране принимает либо «черное» либо «белое» состояние.

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

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


Цветные изображения строятся с двоичным кодом цвета каждой точки. Эта информация хранится в видеопамяти. Такие изображения меняют глубины цвета - 8, 16, 24 и 32 бита.

Цветная картинка рождается на экране путем смешивания трех базовых цветов: красного, зеленого, синего. Эта цветовая модель называется RGB (по первым буквам английских названий цветов - Red, Green, Blue)

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

Например, при глубине цвета в 24 бита (по 8 бит на каждый цвет) выходит N=28 =256 уровней интенсивности, заданные двоичными кодами - от 00000000 (минимальной ) до 11111111 (максимальной).

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

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

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

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

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