«Код», «кодировка», «декодирование» — услышав такие слова, многие вспоминают фильмы про шпионские фильмы. Но оказывается всё перечисленное давно вошло в повседневную жизнь, и читая книгу или пользуясь компьютером человек кодирует и декодирует информацию постоянно, ничуть не задумываясь об этом.
Необходимость рассматриваемых процессов
Представим, что человек словесно передаёт какие-либо данные, становясь источником информации. Любой, кто услышит его получит нужные сведения. А если необходимо, чтобы «услышал» компьютер или нужно сохранить и передать данные дальше? Значит требуется так «переделать» речь или другие носители информации, чтобы можно было записать или закодировать, а при необходимости восстановить, то есть раскодировать их. Поэтому и разработаны различные алгоритмы для процедуры кодирования и декодирования передаваемой информации.
Основные термины и положения
Кодирование — представление информации в удобном виде для обработки, хранения, передачи.
Декодирование — обратный процесс, когда данные преобразуются обратно в вид понятный человеку.
Код — пакет условных символов, благодаря которым происходит перенос информации по установленным правилам.
Человечество с незапамятных времён решало проблемы обработки данных. Даже в первобытном строе нужно было как-то донести до своих сородичей различную информацию, например, указать место для охоты, рассказать о набеге соседей. Вначале для этого использовались рисунки, жесты, звуковые сигналы — всё это можно назвать «первобытным кодом». Получатель, видя знакомые жесты понимал о чём идёт речь, то есть декодировал сообщение.
С развитием общества стали появляться языки народов, письменность. Стало возможным записать речь используя алфавит. Буквы стали кодом с помощью которого хранилась и передавалась информация. Зная алфавит, можно прочитать текст, декодировав его. Языки народов мира называют «естественными языками кодирования».
В отличие от них существуют и формальные, которые были придуманы для удобства использования в различных отраслях жизнедеятельности человека. Математические знаки, ноты, дорожные указатели, морская азбука — примеры формальных языков. Написание компьютерных программ не обойдётся без многочисленных языков программирования, которые также являются формальными.
Виды и способы кодирования
Выбор вида кодировки определяется несколькими факторами: существующими возможностями, обстоятельствами, целями и вероятностью последующей обработки данных. Возможны 3 вида кодирования передаваемой информации документа:
- Буквенный или символьный. К нему можно отнести все национальные алфавиты.
- Графический. Например, прогноз погоды, топографические карты или дорожные знаки.
- Числовой. Математические формулы и вычисления, двоичный код.
Поясним на примерах. Одной из форм кодировки является стенография. Здесь условия или обстоятельства таковы, что необходимо быстро записывать речь оратора. Поэтому применяется специальный код. Используя его, стенографист может записать целое предложение несколькими буквами или знаками. Вот один из примеров стенограммы:
При математических расчётах удобно вести запись в виде чисел. Однако, если целью является точное написание итогового числа, то пишут прописью. Тогда случайно пропущенная цифра не станет причиной искажения информации. Так при решении задач в школе используют цифровую или числовую кодировку. Но в бухгалтерских отчётах или банковских выписках прописывают итоговую сумму буквами. Нужно заметить, что одна и та же информация была записана естественным и формальным языками. Переходы между ними также являются кодированием.
Если необходимо скрыть содержание документа от посторонних глаз, то применяется шифрование — один из видов кодирования. Здесь метод кодирования известен только источнику и получателю данных. Дешифровка сообщения возможна при наличии ключа — дополнительной информации, используемой в алгоритме дешифрования. Данным направлением кодирования занимается наука криптография.
Краткая история развития кодирования
Ещё во II веке до н.э. древнегреческий учёный Полибий использовал схему с двумя факелами для представления букв греческого алфавита.
В 18 веке Клод Шапп сконструировал семафор, где каждой букве соответствовала своя фигура. Скорость передачи такого устройства была низка: 2 слова в минуту.
Знаменитый телеграф и азбука Морзе. Поистине революционное изобретение XIX века. Благодаря трём простым символам: точка, тире и пауза удалось повысить скорость и надёжность кодирования. Система до сих пор используется в мореплавании.
Беспроводной телеграф или радио. В 1895 году Попов, чуть позже в 1897 Маркони сконструировали отдельно друг от друга радиоприёмник. Благодаря ему можно было использовать азбуку Морзе на больших расстояниях.
XX век стал прорывом в области кодирования и декодирования информации. Беспроводной телефон, телевидение и радиовещание, компьютерные и мобильные технологии — везде применяется кодирование и расшифровка данных.
Кодирование и декодирование данных различного вида
Ежедневно миллионы людей используют компьютеры, совершенно не задумываясь, как происходит ввод текста и его считывание. Вся информация воспринимается компьютером в цифровой, двоичной форме, где для кодирования используются только 2 символа: 0 и 1, которые называются битами. Нулю соответствует низкое напряжение, единице — высокое. 8 битов образуют 1 байт.
В современных технологиях используют несколько видов кодирования/декодирования информации. Мы приведем пример самых распространенных методов кодирования и декодирования информации, которые можно считать основными, поскольку видов очень много, например, кодирование звука, цвета, чисел, видео, графики, текста и т.д.
Числа и текст
Кодирование текста осуществляется при помощи таблиц ASCII и UNICODE. В них каждому символу, букве соответствует двоичный код в виде нулей и единиц. ASCII была изобретена раньше и содержит 256 букв и символов. Однако, из-за необходимости кодирования национальных алфавитов составили расширенную таблицу UNICODE. На рисунке представлена таблица ASCII:
Как видно из таблицы числа также кодируются в двоичный формат, арифметические действия с ними аналогичны десятичной системе. Конечно, итоговая запись весьма громоздка, но для вычислительной техники это не создаёт затруднений. Так, число 4 будет записано в виде 0110100, а 5 — 0110101. Число 45 будет содержать оба двоичных кода, но для вычислений оно будет преобразовано в восьмиразрядный двоичный код.
Графика
Для кодирования изображений используется большее количество байтов. Графическое представление бывает растровым и векторным.
Цифровое оборудование работает с отдельными, дискретными деталями. Поэтому при создании растрового изображения исходная картинка «дробится» вертикальными и горизонтальными линиями на маленькие прямоугольники — пиксели. Чем больше пикселей, тем лучше качество изображения.
Цвет каждого пикселя задаётся с помощью трёх цветов: красный, зелёный, синий. Такая система называется RGB, где R — красный (Red), G — зелёный (Green), B — синий (Blue). При смешивании основных цветов можно получить практически любой оттенок. Количество того или иного цвета в одном пикселе указывается в двоичном коде. Чем больше битов используется для цвета, тем разнообразнее цветовая палитра изображения, а значит и реалистичней картинка.
Векторная графика применяется в чертежах, когда используются готовые геометрические шаблоны: прямоугольник, квадрат, круг и другие. Работая с ней, нужно указать лишь местоположение объекта, размер и цвет, не нужно отдельно указывать цвет каждого пикселя. Векторное кодирование широко распространено в издательском деле и при дизайне печатной продукции.
Звук
Звуковая волна характеризуется двумя параметрами: амплитудой и частотой. Амплитуда отвечает за громкость звука, а частота — за высоту. Также звуковые колебания разбиваются на мелкие части и в таком виде обрабатываются в цифровом канале. Каждой такой части соответствует своя амплитуда, выраженная в двоичном коде. Чем больше деталей, то есть чем с большей частотой разбивается звуковая волна, тем качественней происходит кодирование звука.
При декодировании звуковая карта «собирает» все части воедино и подаёт аналоговый звук на динамики.
Числовая информация
Как уже было отмечено, числа кодируются путём перевода их в двоичное исчисление. Если же нужно преобразовать дробное число, то используется 80-разрядное шифрование. Минусами двоичного представления являются неудобство при использовании такого нагромождения битов и замедление обработки данных. Можно перевести двоичную систему в шестнадцатеричную, что облегчит работу с числами.
Модель С.Холла
Наука, изучающая строение и функционирование знаковых систем, которые отвечают за хранение и передачу информации, называется семиотика. Согласно ей при декодировании документа он имеет тот же смысл, что был заложен кодировщиком или источником при процедуре кодирования передаваемой информации. Т.е. подразумевается однозначность кодирования/декодирования (сообщение имеет единственное возможное толкование).
С.Холл внёс коррективы в такое представление:
- Источники шифруют тексты, исходя из идеологических соображений, а значит, искажают информацию или манипулируют средствами массовой информации.
- Получатели могут не принять сообщение со смыслом, который заложил отправитель. Это происходит вследствие сопротивления идеологическому давлению или использования в качестве источника оппозиции.
Таким образом, первоначальный смысл может абсолютно отличаться от конечного, вследствие отличающегося восприятия у разных социальных групп. Получатели могут придать сообщению совсем иное направление (показано на рисунке пунктиром).