Графическая информация
Прежде чем приступать к обсуждению основ цифровой (компьютерной) графики, необходимо рассмотреть особенности графической информации как таковой.
Графическое представление информации используется во многих областях визуальной коммуникации: от произведений изобразительного искусства, которое призвано будить у человека эмоции и вызывать чувство прекрасного, до всевозможных символов, например дорожных знаков, которые предназначены только для информативных целей и у опытных водителей могут даже не достигать области осознаваемого восприятия.
Графические образы составляют основу мышления многих специалистов, в ряду которых почетное место занимают графические дизайнеры — люди с наглядно-образным складом.
О любопытных примерах результатов графического мышления см. в приложении 2.
Владение техникой компьютерной визуализации своих идей требует основательной подготовки и понимания своеобразия графической информации (традиционной графики, которая развивалась много столетий) с точки зрения перевода ее на "компьютерные рельсы".
Определение
Под графической информацией мы понимаем всю совокупность информации, которая нанесена на самые различные носители — бумагу, пленку, кальку, картон, холст, оргалит, стекло, стену и т. д. В определенной степени графической информацией можно считать и объективную реальность, на которую направлен объектив фотоаппарата или цифровой камеры...
Многообразие графических носителей и видов изображения, в общем, не поддается учету и вовсе не потому, что их число бесконечно, а потому, что существует огромное количество промежуточных вариантов. Действительно, мы не можем их суммировать и составить список (алфавит), подобный тому, который можно составить из букв, цифр и знаков, применяемых в конкретных языках.
Справка
Совокупность букв, знаков и цифр исторически уже давно приведена в систему, по крайней мере, в алфавитах, которые являются фонетическими. Все европейские языки имеют фонетический алфавит в противоположность языкам дальневосточных народов — китайского, корейского и японского, у которых письменность фиксирует не звуки (а точнее, не фонемы), а целое понятие — иероглифы.
Пример
Впрочем, и в современных европейских языках имеется пример иероглифического принципа, а именно цифры. Мы используем цифры, быть может, не задумываясь об одной их интересной особенности. Мы имеем в виду, что в разных языках цифры пишутся одинаково, а читаются (и произносятся) по-разному. Это пример типичного иероглифа.
Этот пример приведен для того, чтобы показать, что элементы (буквы или цифры), необходимые для процедуры кодирования, уже выделены за длительный исторический период. Поэтому отдельные и независимые друг от друга элементы (например, буквы алфавита) можно представить в виде списка с конечным и фиксированным количеством строк.
Когда же мы обращаемся к графической информации — рисункам, акварелям, картинам, фотографиям и прочим изобразительным объектам, то в них мы не находим таких универсальных и естественных элементов, которыми мы могли бы оперировать, как буквами, для создания любого изображения.
Справка
Впрочем, попытки составить единую систему изображений имели место в истории искусства. Например, можно назвать английского живописца, графика и теоретика искусства Уильяма Хогарта (Hogarth) (1697—1764), который признан основоположником социально-критического направления в европейском искусстве. Для нашей темы он интересен не тем, что считается мастером сатирического бытового жанра, разоблачающего пороки аристократии (как мы теперь видим, это бесполезно), а тем, что пытался найти универсальный графический алфавит, в чем потерпел неудачу. Хотя ради справедливости стоит заметить, что кривая, которую художник гениально выделил как эталонную в XVIII веке, напоминает по виду кривую Безье.
Подробную информацию о кривой Безье см. в части IV.
В действительности, никакого графического алфавита создать не удается, потому что всякий раз изобразительное произведение создается особым способом: применяются различные материалы, разные инструменты, иные приемы и т. д.
В этом заключается главное отличие между письменностью и изобразительной деятельностью, хотя эти области близки и исторически, и по существу.
Алфавит является универсальным средством, которое позволяет при ограниченном числе элементов составлять неограниченное количество текстов. Поэтому алфавит представляет собой определенную систему конкретных знаков, которые установлены в нашем обществе, — и каждый, владеющий языком, понимает написанное (если, конечно, умеет читать).
Для изобразительной деятельности такого строгого перечня элементов не существует, следовательно, возможность кодирования должна базироваться на другом подходе, нежели стандартные элементы, вроде букв или цифр.
Важная мысль
Для изобразительной деятельности не существует строгого перечня элементов, а следовательно, их список невозможен.
В связи с такой ситуацией возникает глобальная задача — выяснить, каким образом можно превратить любые изображения в цифровые коды, с которыми только и могут работать компьютерные устройства.
Эта задача конкретизируется тем, что необходимо придумать способ, который позволил бы оперировать в компьютерных технологиях не только тек-
стом. С текстом, как уже сказано, все ясно: существует алфавит, каждому символу ставится в соответствие код, который фиксируется в оперативной памяти или на диске. Необходимо разработать идентичный способ работы с любыми типами изображений.
Замечание
Следует обратить внимание на различие подходов человека и электронного устройства к изображению.
Для человека любое изображение, даже далекое от реалистической фотографии, представляет собой содержательную структуру: каждый из нас в состоянии отличить портрет от пейзажа, фигуру человека от вазы фруктов и т. д. Это возможно потому, что зрительное восприятие происходит не столько с помощью органов зрения, сколько с помощью мощного интеллекта, который обладает удивительными способностями распознавания. Например, для человека вполне реально узнать лицо другого человека, которого не видел несколько десятков лет (а человек уже успел постареть, изменить свою внешность).
Техническим системам, даже использующим современные вычислительные мощности, такие задачи пока не под силу.
Как же можно обойти это ограничение и получить возможность превращать произвольное изображение в цифровое? Ответу на этот вопрос и посвящена данная книга.
Особенности графической информации и способы ее кодирования
Особенности графической информации и способы ее кодирования
Данная глава обеспечивает переход от формальной структуры настольных издательских систем к содержательной стороне деятельности компьютерных дизайнеров — графическим изображениям.
Для перехода к основам кодирования графической информации необходимо рассмотреть своеобразие графической информации в целом.
Все многообразие художественной графики, в отличие от письменности, не располагает предварительным набором выделенных элементов, поэтому для преобразования изображений необходимо использовать принудительное разбиение на линейные или пространственные элементы в соответствии со способом кодирования пиксельной или векторной графики, о которых речь впереди (этому и посвящена большая часть книги).
Способы кодирования графической информации
Способы кодирования графической информации
В главе 1 указывалось, что существует несколько классов программного обеспечения, которые используются в области настольных издательских систем и, в частности, в цифровой графике. Эти классы программ разделяются в зависимости от способа кодирования графической информации.
Действительно, цифровая графика бывает двух видов.
Пиксельная графика (bitmaped images, scanned images, raster images) представляет собой совокупность дискретных элементов, которые различаются только цветом (тоном) и взаимным расположением.
Основам и параметрам пиксельной графики полностью посвящена часть III. В главах 14 и 15 рассматриваются достоинства и недостатки пиксельной графики, а также преобразование в векторную графику (трассировка). Часть VII целиком посвящена тоновой и цветовой коррекции.
Векторная графика (vector drawing, vector illustration) представляет собой линейно-контурное изображение, которое состоит из независимого описания границ векторных объектов и их заполнения ("заливок").
Основам векторной графики полностью посвящена часть IV. В главах 14 и 15 рассматриваются достоинства и недостатки векторной графики, а также преобразование в пиксельную графику (растеризация).
Кодирование информации осуществляется достаточно просто, если существует конечный перечень элементов. В этом можно убедиться, прочитав часть II.
Однако подавляющее большинство видов графической информации не имеет таких ясно и однозначно выделенных элементов (исключение составляет довольно частный случай изображений — мозаичная основа для вышивки крестиком).
Для того чтобы получить возможность кодировать графическую информацию, необходимо найти способ выделения хотя бы искусственных элементов.
Резюме
Специалисты графического дизайна в самом широком значении этого слова используют настольные издательские системы в своей творческой деятельности в качестве мощного и в определенных областях даже интеллектуального инструмента.
Для работы компьютерных программ вся требуемая информация должна быть преобразована в цифровую форму. Это достаточно легко, если в предметной области изначально существует конечный перечень элементов (например, буквенные и цифровые символы — текстовая информация).
Вместе с тем, особенностью любого вида графической информации является принципиальное отсутствие однозначно выделенных и универсальных естественных элементов. Для преодоления этого были разработаны особые технологии получения искусственных элементов.
Познакомившись с конфигурированием настольных издательских систем и своеобразием графической информации (в сравнении, например, с текстовой), необходимо рассмотреть общие принципы кодирования абстрактного сигнала. В части III эти принципы будут применены для кодирования графической информации, а именно пиксельной графики.
Десятичная система счисления
Наиболее привычной для нас является десятичная система счисления. Исторически вначале, видимо, использовалась непозиционная единичная система счета — с помощью камней или палочек (вспомним школьные палочки для счета!). Система счета состояла из двух чисел — один и два, а все, что больше двух, обозначалось, как "много".
Затем, благодаря наличию десяти пальцев рук у человека, возникла десятичная система счета. В этой системе используются специальные графические знаки — арабские цифры, которые можно записать в следующем порядке: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Таких знаков десять, и они специально разделены запятыми, чтобы показать, что это отдельные ("дискретные") знаки, которые не зависят друг от друга.
Другие системы счисления
Идея позиционной системы счисления выдвигалась еще Архимедом в работе "Исчисление песка". Есть ли еще системы счисления, которые мы знаем и используем?
В разное время и у разных народов использовались системы счисления с различными основаниями:
в Древнем Вавилоне — шестидесятиричная система (используемая и сейчас при измерении времени);
в Германии и Великобритании — двенадцатеричная (при измерении количества, в денежных системах), у древних адыгов — двадцатеричная и т. д.;
неколичественные (качество выступает в роли количества: "много", "мало" и т. д.) способы счета — например, у эскимосов.
В качестве примера, который непрерывно присутствует перед глазами, можно назвать часовой циферблат, у которого двенадцать основных "делений", а следовательно, используется двенадцатеричная система счисления.
Можно даже считать дюжинами — до революции в России было принято заказывать по несколько "дюжин пива". Отсюда же имеет свое происхождение понятие "чертова дюжина", т. е. число тринадцать.
Кстати, следует заметить, что с измерением времени связано довольно большое количество разных систем счисления.
Кроме уже упомянутых, можно назвать семидневную (недельную), месячную, годовую, а еще, не забыть бы, — секундную и минутную, обе являются шестидесятиричными.
Мы вспомнили несколько систем счисления (и, видимо, далеко не исчерпали этот список), которые мы используем в нашей обычной бытовой жизни, не отдавая себе в этом особого отчета.
Правда, стоит сознаться, что примеры разных систем счисления приведены с единственной целью: показать, что система счисления — это обычная и даже обыденная вещь. Для дальнейшего изложения они нам больше не потребуются. Почему? Потому что в компьютерных технологиях нет ничего, кроме импульсов, а следовательно, для внутреннего машинного языка достаточно только двух знаков.
Положив в основание только два знака (два вида сигналов), попытаемся построить все сияющее здание компьютерных технологий.
Двоичная система счисления
Мы уже выяснили, что каждый импульс представляет собой один из двух видов уровней тока (условно их можно определить как "наличие" или "отсутствие" тока).
Пример-метафора
Если бы пользователи компьютерных технологий могли превратиться в микроскопических существ и затаиться в компьютере на какой-нибудь шине, по которой передаются сигналы, то они бы увидели, что мгновенно проносятся совершенно одинаковые импульсы — как поезда метро: поезд — пустота, поезд — пустота...
Исходя из этого, с помощью импульсов можно передавать только два разных сигнала, для обозначения которых потребуется всего два разных знака (например, условимся обозначать наличие тока, скажем, "единицей", а отсутствие сигнала - "нулем", хотя на самом деле, наоборот). А затем, используя позиционный метод и определенные последовательности знаков, обеспечим возможность записи любых чисел.
Таким образом, мы подошли к рассмотрению системы счисления, основание которой равно двум. В этой системе счисления используются всего два знака, две цифры — "0" и "1".
Такая система получила название двоичной системы счисления. Ее еще называют бинарной, от английского слова "binary", что, собственно, и переводится как "двоичный".
Пример
Вспомним, что ситуация идентична уже упоминавшемуся цветку из романа "Семнадцать мгновений весны". С помощью одного цветка можно закодировать два сигнала: либо он стоит на окошке, либо — нет, соответственно — два кода ("явка провалена" — "явка не провалена").
Выбирая импульсный способ передачи информации, который, безусловно, обладает выигрышными достоинствами (выше уже упоминались помехоустойчивость и возможность проверки результата передачи), мы, тем не менее, должны платить за эти достоинства тем, что обрекаем себя на ограничение в использовании знаков.
Важная мысль
Платой за приспособленность к компьютерным технологиям является ограничение в количестве знаков (цифр) и использование непривычной двоичной системы счисления.
Действительно, для записи любых чисел используются всего два знака из огромного количества, которое выработало человечество за несколько тысячелетий своего развития. Вместо живого разнообразия знаков, привычных для человека, в компьютерных технологиях применяются только два: в математической нотации это — "нолик" и "единичка".
Двоичные коды десятичных чисел
В данный момент самое время вспомнить, зачем мы начали конвертирование десятичных чисел в двоичную систему счисления. Это нам необходимо не для того, чтобы убедиться в универсальности законов арифметики (дизайнеры и так охотно поверят специалистам-математикам), на самом деле, мы составили коды десятичных чисел в двоичной системе счисления, а это уже совсем немало.
Ведь, собственно говоря, приведенные в предыдущем разделе рассуждения уже можно квалифицировать как процесс кодирования, т. е. написание (представление) одного вида информации с помощью другого.
Таким образом, мы получаем возможность передавать любое десятичное число двоичными числами, а следовательно, импульсным способом, т. е. определенным сочетанием импульсов (в этом состоит требование компьютерных технологий).
В табл. 4.3 отражены коды первых двадцати десятичных чисел, которые легко передавать как последовательность импульсов.
Какое неудобство двоичной системы счисления бросается сразу в глаза? Заметно, что двоичные числа гораздо длиннее десятичных. Это закон мироздания: экономя на количестве цифр, мы "расплачиваемся" количеством разрядов.
И для того чтобы двоичные числа было легче воспринимать и отображать, их сжимают в восьмеричную систему счисления, о которой также необходимо сказать несколько слов.
Общее представление о коде
Коды пронизывают нашу жизнь, можно даже с полной уверенностью утверждать, что любое производство строится на базе самых разнообразных знаков (от букв и цифр до чертежей и карт).
Поэтому стоит сначала поговорить о понятии "код" в самом общем смысле.
Определение
Код— это совокупность знаков (символов, цифр, букв, пиктограмм и т. п.) и система определенных правил, с помощью которых информация представляется (кодируется) в виде набора знаков и в форме, удобной для передачи, обработки и хранения (или сокрытия).
Справка
Слово "код" происходит от латинского слова "codex", что означает "свод" или "сборник".
Любая система знаков несет на себе черты типичного кода. Учеными, которые занимаются проблемами лингвистики и особенно семиотики, давно уже отмечено, что знак как таковой никакого отношения не имеет к тому, что он обозначает.
Пример-метафора
Звуки, составляющие слова "компьютер" на русском языке или "computer" на английском, никак не связаны с тем предметом, который они обозначают. Из тех же букв можно составить и другие слова, абсолютно ничего общего не имеющие с исходными словами.
Справка
Семиотика (от греческого слова "semeion", что переводится как "знак" или "признак") — это наука, исследующая свойства знаков и знаковых систем во всем их многообразии. В человеческом обществе рассматриваются как естественные, так и искусственные знаковые системы, главным образом языки программирования, а также более глубокие явления культуры (мифы, ритуалы, обычаи). Кстати, в медицине также есть особый раздел, который называется семиотика, в этом разделе развивается учение о признаках болезней (симптомах), что можно трактовать как определенные "знаки" болезней, которые необходимо знать, чтобы точно и вовремя распознать болезнь.
Вся жизнь современного человека проходит в море разнообразных кодов. Образование в определенном смысле — это и есть постижение кодовых систем, которые выработало все человечество, отдельный народ, наука, профессия и т.
д. Однако, выучившись, мы перестаем замечать эти многочисленные системы кодов, как не замечаем воздуха, которым дышим.
Замечание
Как известно, человек отличается от животных второй сигнальной системой, которая представляет собой не что иное, как использование знаковых структур для отображения мыслей, идей и прочих духовных феноменов в форме идеального. При этом мозг человека становится органом сознания только тогда, когда в первую очередь овладевает естественным языком, а затем и многими другими культурными кодами. Только знание как можно большего круга знаковых систем (иностранных языков, литературы, искусства, философии и музыки) расширяет индивидуальное сознание.
Правда, есть особая область, где кодами занимаются специально и со специфическими задачами. Примеров — бесконечное число в детективной и военной литературе.
Пример 1
Обратимся к классическому произведению детективного жанра "Семнадцать мгновений весны" Юлиана Семенова. Профессор Плейшнер погиб, невзирая на свой математический ум, именно потому, что нарушил правила кодирования и декодирования— помните тот злосчастный цветок, на который он не обратил внимания. Ведь сам по себе цветок по сути дела ничего не означает. Но в данном случае он являлся кодом очень важной (жизненно важной) информации. Этот код был известен разведчику Штирлицу, он передал соответствующие инструкции профессору Плейшнеру. Когда хозяин явочной квартиры выставил цветок, он выполнил процесс кодирования, послал сигнал, а профессор Плейшнер этого сигнала вовремя не заметил, вовремя не произвел декодирования и поплатился в результате своей жизнью: "...пьяный воздух свободы сыграл с профессором Плейшнером злую шутку: явочная квартира советского разведчика была провалена фашистами, и сейчас здесь ждали "гостей". ...между ними торчал большой цветок — сигнал провала. (Русский разведчик, почувствовав за собой слежку, успел выставить этот сигнал тревоги, а гестаповцы так и не смогли узнать, что этот цветок означает: "все в порядке" или "явка провалена".
Но поскольку они были убеждены, что русский не знает об охоте за ним, они оставили все как было, а так как Плейшнер по рассеянности зашел сюда первый раз, не обратив внимания на цветок, гестаповцы решили, что на явке все в порядке."
Пример 2
Иногда и мы подвергаем свою жизнь опасности, скажем, игнорируя сигналы дорожного движения, иногда несем какие-то убытки — моральные или физические из-за пренебрежения теми или иными кодами. Например, если не обратили внимания на тучку, которая является как бы сигналом (или кодом) предстоящего ливня. В результате — болезнь, отставание в работе или учебе и прочие напасти.
Если перейти от реальности, в том числе от бытового уровня, к цифровым технологиям, то понятно, что в компьютере никаких цветков, никаких тучек, никаких материальных носителей кодовой информации не бывает и быть не может.
В компьютерных технологиях все виды информации кодируются только цифрами, или, точнее, числами, которые представляются цифрами. В связи с этим мы переходим к системам счисления.
Основание системы счисления
Коль скоро мы утверждаем, что система счисления основывается на ограниченном количестве цифр, осталось задаться вопросом "сколько", какое количество цифр достаточно для решения этой проблемы.
Оказывается, что минимальное количество цифр действительно существует, а максимальное — нет, точнее, оно ограничено не принципиальными причинами, а сугубо практическими (или какими-то условиями уже не математического свойства). В данный момент важно понять, что существует не одно множество цифр, образующих систему счисления. Это множество получило особое название — основание системы счисления.
Определение
Основание позиционной системы счисления — это количество различных знаков или символов (цифр), используемых для отображения чисел в данной системе.
Выбор количества цифр диктуется какими-либо потребностями реальной жизни, науки или удобствами обработки. Исторически этот выбор определялся привычками или традициями конкретного народа.
Пример
В Великобритании до недавнего времени была принята не десятичная система веса, длины, а использовались "допотопные" ярды, футы, дюймы и т. д. Только несколько лет назад английский парламент принял решение о переходе на десятичную систему, т. е. на метры, сантиметры и т. п. И поскольку англичане — очень консервативный народ, такой переход, возможно, будет продолжаться не один десяток лет. Как сказано выше, систем счисления может быть неограниченое количество. По значению этого основания и называются системы счисления. Мы рассмотрим только некоторые их них.
Основания и степени в системе счисления
Наконец, пришло время для итоговой таблицы всех рассмотренных систем счисления. В табл. 4.6 представлены числа в нескольких интересующих нас системах счисления, но не все числа, а только те, которые являются "круглыми" в одной из систем (они выделены полужирным шрифтом).
Таблица 4.6. "Круглые" числа в нескольких системах счисления
Двоичная |
Восьмеричная |
Десятичная |
Шестнадцатеричная | ||||||
10 = 21 |
2 |
2 |
2 | ||||||
100 = 22 |
4 |
4 |
4 | ||||||
1010 |
12 |
10 = 101 |
А | ||||||
1000 = 23 |
10 = 81 |
8 |
8 | ||||||
10000 = 24 |
20 |
16 |
10 = 161 | ||||||
1 00000 = 25 |
40 |
32 |
20 | ||||||
1000000 = 26 |
100 = 82 |
64 |
40 | ||||||
1100100 |
144 |
100 = 102 |
64 | ||||||
1 0000000 = 27 |
200 |
128 |
80 | ||||||
100000000 = 28 |
400 |
256 |
100 = 162 | ||||||
1000000000 = 29 |
1000 = 83 |
512 |
200 | ||||||
1111101000 |
1750 |
1000 = 103 |
ЗЕ8 | ||||||
1 0000000000 = 210 |
2000 |
1024 |
400 | ||||||
100000000000 = 211 |
4000 |
2048 |
800 | ||||||
1 00000000000 = 212 |
10000 = 84 |
4096 |
1000 = 163 | ||||||
Обратите внимание на одну интересную закономерность, заметную при рассмотрении этой таблицы. "Круглые" числа во всех системах счисления расположены там, где происходит добавление следующего разряда, а количество нулей соответствует степени числа на том же основании.
Пример
"Шестнадцатеричная тысяча" (три нуля) равна третьей степени основания системы счисления (16), "восьмеричные десять тысяч" (четыре нуля) равны четвертой степени основания системы счисления (8) и, наконец, "двоичный миллиард" (двенадцать нулей) равен двенадцатой степени основания системы счисления (2).
Это еще один аргумент в пользу мысли, что законы математики едины (законы арифметики также). Изменяется всего-навсего основание в каждой конкретной арифметике.
Тот факт, что нам до сих пор привычной представлялась только десятичная система счисления, не может служить препятствием для перехода к другим системам счисления: двоичной, восьмеричной и шестнадцатеричной, как того требуют компьютерные технологии.
Коды пронизывают нашу жизнь. Код — это совокупность знаков и система определенных правил.
В компьютерных технологиях все виды информации кодируются только цифрами или, точнее, числами, которые представляются в двоичной системе счисления — способе представления любых чисел с помощью двух знаков (цифр) по позиционному принципу.
Позиционная система счисления состоит в использовании ограниченного числа цифр, зато позиция каждой цифры в числе обеспечивает значимость (вес) этой цифры. Позиция цифры в числе на математическом языке называется разрядом.
Основание позиционной системы счисления — это количество различных знаков или символов (цифр), используемых для отображения чисел в данной системе.
Для того чтобы двоичные числа, отличающиеся довольно значительной длиной, было легче воспринимать и отображать, их сжимают в восьмеричную и шестнадцатеричную системы счисления.
Если данная тема понятна, следует обратить внимание еще на один аспект, ради которого, собственно, и был затеян этот длинный экскурс в элементарную математику, а именно связь двоичных разрядов и количества кодов, которые можно ему присвоить.
Позиционный метод записи чисел
Действительно, если мы располагаем только десятью знаками (цифрами), то мы сможем записать только десять чисел (от 0 до 9). Но на числе "девять" числовая ось не заканчивается, следовательно, можно двигаться дальше.
А именно: пишем "9 + 1 = ", но все цифры уже использованы, поэтому мы снова начинаем с первой цифры и пишем "0". Но сумма "9 + 1" никак не может быть равной нулю, т. е. "полному отсутствию", наоборот, мы достигли числа "десять", для которого существует специальное слово, но отсутствует специальный знак.
Поэтому, чтобы указать, что мы уже один раз прошли цикл с этой совокупностью цифр, перед нулем ("в предыдущей позиции") мы ставим цифру "1" и тем самым получаем требуемое число "10".
Вот это и называется позиционным методом записи чисел.
Определение
Позиционная система счисления состоит в использовании ограниченного числа цифр, зато позиция каждой цифры в числе обеспечивает значимость (вес) этой цифры. Позиция цифры на математическом языке называется разрядом.
Другими словами, значение цифры "переменчиво" и зависит от ее позиции в числе. Мы говорим, что в числе "10" цифра "1" — это уже не "единица", а "десяток", хотя и отображается с помощью одного и того же знака. Например, в числе "одиннадцать" ("11") две единицы имеют разное значение, это относится и к другим сочетаниям "единиц" — "111", "1111", "11 111" и т. д.
Справка
Не всякие числовые системы используют именно такой позиционный способ записи, в истории человечества были и иные эксперименты. Вспомним, например, римские цифры. В них все оригинально: другие знаки и другие принципы. Способ записи чисел с помощью римских цифр не грешит единообразием: если цифра расположена справа, то ее значение прибавляется к предыдущей, например число "XI" означает "одиннадцать", а если — слева, то значение вычитается, например число "IX", состоящее из тех же цифр, уже означает только "девять".
Кроме того, в римской системе счисления в числе вес цифры X в любой позиции равен просто десяти, например число XXXII (тридцать два). И, наконец, цифры разбросаны по оси чисел (табл. 4.1).
В нашу современную жизнь многое пришло из Рима, в том числе римское право, латынь в медицине и фармакологии. Однако римская система счисления не прижилась, потому что она отличается указанной выше сложностью, которая препятствует технологичности: скажем, римские числа трудно складывать или умножать, не говоря уже о более сложных функциях.
Но поскольку система действительно оригинальная, то она окончательно не забыта, а используется в "торжественных случаях". Вспомним обозначения съездов партии, иногда в академических изданиях с помощью римских цифр проставляется год издания и т. д. И это уже не математика, а определенный способ стилизации и дизайнерских ухищрений.
Таблица 4.1. Сравнение арабской и римской записи чисел
Арабские числа |
Римские числа |
Арабские числа |
Римские числа |
||
1 |
I |
8 |
VIII |
||
2 |
II |
9 |
IX |
||
3 |
III |
10 |
X |
||
4 |
IV |
50 |
L |
||
5 |
V |
100 |
С |
||
6 |
VI |
500 |
D |
||
7 |
VII |
1000 |
М |
||
Шестнадцатеричная система счисления
Теперь предстоит совсем легкая прогулка, связанная с шестнадцатеричной системой счисления. В этом случае, надеемся, вы подозреваете и, видимо, справедливо, что у нас должно теперь быть 16 различных цифр.
Но, как мы знаем, традиционных ("арабских") цифр всего десять. А требуется шестнадцать. Получается, что не хватает шести знаков.
Замечание
Таким образом, возникает чисто дизайнерская задача по теме "Знаки" — придумать недостающие символы для цифр.
Значит, в свое время специалистам необходимо было придумать какие-нибудь новые знаки. Но когда-то, в начале компьютерной эры, особого выбора в знаках не было. Программисты располагали только знаками цифр и букв. Поэтому они пошли по элементарному пути: взяли первые буквы латинского алфавита в качестве цифр, тем более что исторически это не первый случай (мы уже упоминали, что первоначально вместо цифр многие народы использовали буквы).
Замечание
Надеемся, что всем понятно, почему в этом случае нельзя использовать, например, числа "10", "11", "12" и т. д.? Потому что, если мы говорим о шестнадцатеричной системе счисления, то должно быть шестнадцать цифр, а не чисел.
И десятичное число "10" стали обозначать латинской буквой "А" (точнее, "цифрой А"). Соответственно, дальше идут цифры "В", "С", "D", "Е" и "Р.
Поскольку мы намеревались построить шестнадцатеричную систему, то, начиная с нуля, здесь как раз и получится 16 цифр. Например, цифра "D" — это десятичное число "13", а цифра "F" — это десятичное число "15".
Когда к шестнадцатеричному числу "F" прибавляем единицу, то, поскольку эти цифры у нас кончились, в этом разряде ставим "О", а в следующий разряд переносим единицу, поэтому получается, что десятичное число "16" будет представлено в шестнадцатеричной системе счисления числом "10", т. е. получается "шестнадцатеричная десятка".
Соединим десятичные и шестна-дцатеричные числа в единую таблицу (табл. 4.5).
Таблица 4.5. Соответствие десятичных и шестнадцатеричных чисел
Десятичное число |
Шести адцате-ричное число |
Десятичное число |
Шести адцате-ричное число |
||
0-9 |
0-9 |
29 |
1D |
||
10 |
А |
30 |
1Е |
||
11 12 |
В С |
31 32-41 |
1F 20-29 |
||
13 |
D |
42-47 |
2A-2F |
||
14 |
Е |
48-255 |
30-FF |
||
15 |
F |
256 |
100 |
||
16 |
10 |
512 |
200 |
||
17-25 |
11-19 |
1024 |
400 |
||
26 |
1А |
1280 |
500 |
||
27 |
1В |
4096 |
1000 |
||
28 |
1C |
||||
При обсуждении систем счисления неоднократно фигурировали "десятки", "сотни" и "тысячи", поэтому необходимо обратить внимание на так называемые "круглые" числа.
Системы счисления
Едва ли кто-нибудь из нематематиков в состоянии освоиться с мыслью, что цифры могут представлять собой культурную и эстетическую ценность или иметь какое-нибудь отношение к таким понятиям, как красота, сила, вдохновение.
Норберт Винер
Сначала позволим себе напомнить различие между цифрами и числами: число — это абстрагированная от конкретики запись количества (например, число 25 — это двадцать пять предметов чего угодно и не только предметов, а, скажем, лет или килограммов), а цифра — это специальный знак для обозначения количества единиц. Следует обратить внимание, что цифры — это тоже записи чисел, например 8 — это не только цифра, но и число.
Справка
Слово "цифра" происходит от позднелатинского слова "cifra", первые цифры появились у египтян и вавилонян, причем интересно, что цифры, как специальные знаки, образовались позже, чем буквы. Так, многие народы (греки, финикияне, евреи, сирийцы) для цифр использовали буквы алфавита, в России аналогичная система применялась вплоть до XVI века. Современные так называемые "арабские цифры" имеют неясное происхождение, например, утверждают, что они принесены в Европу арабами в XIII веке возможно из Индии. Повсеместно их стали использовать с XV века.
Справка
Число — это одно из фундаментальных и самых древних понятий математики; оно появилось сначала в связи со счетом отдельных предметов, а затем, абстрагировавшись, стало обозначать количественную меру. Это привело к идее о бесконечности натурального ряда чисел: 1, 2, 3, 4... и т. д. Для наших целей такого определения достаточно, но математиками были разработаны и другие числа. В частности, задачи измерения площадей привели к понятию рационального (дробного) числа, затем появились отрицательные числа, необходимость в вычислении отношения диагонали квадрата к его стороне привела к открытию иррациональных чисел, рациональные и иррациональные числа составляют совокупность действительных чисел и т. д. И лишь в XIX веке была разработана теория действительных чисел.
Новый импульс эта теория получила в связи с развитием компьютерных технологий.
Со школьной скамьи известно, что числовая ось бесконечна, поскольку к каждому числу можно прибавить еще единицу и получить следующее число, с которым можно поступить так же. При этом понятно, что придумывать какие-либо специальные обозначения (цифры) для любого элемента (числа) бесконечной числовой оси нереально.
Важная мысль
Невозможно каждому числу на бесконечной числовой оси поставить в соответствие особый знак — цифру.
Поэтому для записи произвольного числа бесконечной числовой оси прибегают к помощи одной или нескольких систем счисления.
Определение
Счисление (система счисления) — это способ представления любых чисел с помощью определенного количества знаков (цифр) по позиционному принципу.
В этом определении стоит выделить следующие важные моменты.
Количество знаков, которые обычно именуются "цифрами", всегда ограничено. И с помощью такого, ограниченного количества цифр (обычно мы используем десять цифр) удается записывать произвольные числа, например 23 456 или 1 000 123 456 789.
Чтобы преодолеть это ограничение, используется особый способ записи, который называется "позиционным".
Восьмеричная система счисления
Если мы обращаемся к восьмеричной системе счисления, то это означает, что можно использовать гораздо больше цифр, чем это принято в двоичной, но меньше, чем в десятичной, а именно можно оперировать восемью цифрами: 0, 1, 2, 3, 4, 5, 6, 7 — и не более.
Логика конвертирования десятичных чисел в восьмеричные (кодирование в восьмеричную систему счисления) совершенно идентична приведенной выше.
Более подробная информация — в разд. "Запись целых чисел в двоичной системе счисления" данной главы.
Действительно, в определенный момент цифры заканчиваются (наступает "кризис переходного периода").
Десятичное число "8" становится восьмеричным числом "10" ("восьмеричной десяткой"). Число "9" будет восьмеричным числом "11", число "10" — восьмеричным числом "12". И так далее до десятичного числа "15", которое в восьмеричном виде равно числу "17". А дальше?
Цифры снова кончились. Как будет представлено десятичное число "16" в восьмеричной системе счисления?
178 + 1 = ...,
но сумма "78 + 1" равняется "10" в восьмеричной системе счисления, а, следовательно, восьмеричный "десяток" необходимо складывать с "десятком",
уже имеющимся, т. е. получается сумма, присутствующая в восьмеричной системе: "1 + 1 = 2". В результате получается, что
178 + 1 = 208.
Дальше — восьмеричное число "21" и т. п., вплоть до восьмеричного числа "77". И только после этого будет восьмеричная "сотня".
Представим эту информацию в виде таблицы (табл. 4.4).
Таблица 4.4. Соответствие десятичных и восьмеричных чисел
Десятичные числа |
Восьмеричные числа |
Десятичные числа |
Восьмеричные числа | ||||||
0-7 |
0-7 |
25-63 |
31-77 | ||||||
8 |
10 |
64 |
100 | ||||||
9-15 |
11-17 |
128 |
200 | ||||||
16 |
20 |
256 |
400 | ||||||
17-23 |
21-27 |
512 |
1000 | ||||||
24 |
30 |
1024 |
2000 | ||||||
Но даже такие числа все-таки мало экономны, по крайней мере, их разрядность не уступает десятичной системе, поэтому в компьютерных технологиях применяется еще одна система счисления, которая называется шестна-дцатеричной.
Запись целых чисел в двоичной системе счисления
Настало время разобраться, каким же образом можно записывать любые целые числа с помощью двоичной системы счисления, т. е. с помощью всего двух цифр "0" и "1".
Замечание
Разумеется, что записывать можно не только целые, но и дробные, а также любые другие числа, однако это выходит за рамки, необходимые для того, чтобы в конечном счете понять, как происходит кодирование и обработка любой интересующей нас информации, в частности изображений и цвета. Пока же мы не выходим за рамки арифметики, поэтому — терпение: мы уже на пути к этому.
Исходя из этой задачи, попробуем составить таблицу чисел, которые "состоят" из цифр "0" и "1".
Замечание
Как эту задачу можно определить "обычными" словами (наука наукой, однако за скучными, точными фразами надо уметь находить обычный план изложения)? То, что мы сказали ("кодировать в двоичной системе счисления"), на самом деле означает — "как с помощью всего двух цифр написать любое целое число". Можно также сформулировать нашу задачу фразой "как преобразовать десятичные числа в двоичные".
Тогда давайте, рассуждая, заполнять строки таблицы, у которой в левом столбце будут располагаться привычные нам десятичные числа, а в правом — их эквивалент в двоичной системе счисления (табл. 4.2).
С нуля начинается числовая ось натуральных целых чисел. Последующие целые числа получаются с помощью последовательного прибавления единицы к предыдущему числу.
Итак, число "ноль" в десятичной и двоичной системах счисления совпадает и обозначается одной и той же цифрой "О".
Далее переходим к единице, которая получается прибавлением единицы к нулю. В двоичной системе счисления, как и в десятичной, используется также одна и та же цифра "1".
Замечание
Еще раз напомним, что "цифра" и "число" не всегда совпадают. Цифра — это просто знак, количество цифр ограничено. Число — это математическая категория количества, чисел бесконечное множество.
Таблица 4.2. Начало таблицы преобразования десятичных чисел в двоичные
Десятичная система счисления |
Двоичная система счисления |
||
0 1 |
0 1 |
||
Для обозначения числа "два" в десятичной системе счисления предусмотрен специальный знак — цифра "2". А в двоичной системе счисления весь, прямо скажем, небогатый запас знаков ("цифр") мы уже исчерпали. Как же быть в этой ситуации?
Читатели, надеюсь, не обидятся, если мы снова напомним некоторые сведения первого класса начальной школы. Итак, вспомним сложение.
2+1 = 3;
8 + 1 = 9;
9 + 1 = ...
Мы получили число "9" и попытались к нему прибавить "1". Почему же мы остановились? У нас опять кончились цифры! До этого момента каждое число получало свой особенный знак или символ — цифру. Последовательно прибавляя "1", мы каждый раз использовали для этого шага особый знак.
И вот после числа "9" особые знаки закончились. Цифр больше нет, а числа-то продолжают возрастать, т. к. числовая ось бесконечна...
Теперь следует вспомнить позиционный принцип, который мы обсуждали ранее, попробуем применить его и к двоичной системе счисления.
Информация о позиционном принципе — в разд. "Позиционный метод записи" данной главы.
Арифметика едина, и все ее законы едины, независимо от системы счисления. У нас есть только две цифры, но с их помощью необходимо уметь записывать любое число, расположенное на длинной числовой оси.
Когда закончились двоичные цифры, надо снова начинать с нуля, записав в следующую позицию "единицу". Рассуждая таким образом, мы получаем, что десятичное число "2" у нас будет представлено двоичным числом "10", т. е. "двоичной десяткой":
12 + 1 = 102.
Далее, число "3" десятичной системы станет в двоичной системе числом "11", т.
к.
102+ 1 = 112.
Замечание
Не следует удивляться тому, что в десятичной записи число "3" представлено одной цифрой (одноразрядное), а в двоичной ("11") оно представлено двумя цифрами (двухразрядное). Более того, следует учесть, что далее этот разрыв будет увеличиваться.
Следующий шаг снова требует внимания:
112+ 1 = ...
Теперь к числу "И" в двоичной системе прибавляем "1": сумма "1 + 1" дает "0", но мы при этом переносим "1" в следующий разряд. В следующем разряде снова получается сумма "1 + 1", т. е. опять "О", значит, создаем еще один разряд и переносим единицу в этот разряд — в итоге получается двоичное число "100", т. е. "двоичная сотня":
112+ 1 = 1002.
Десятичное число "4" в двоичной системе представляется числом "100".
Далее, десятичное число "5" — это двоичное число "101", десятичное число "6" — это двоичное число "110", а десятичное число "7" — это двоичное число "111".
Снова добавляется разряд, следовательно, десятичное число "8" — это уже двоичное число "1000" ("двоичная тысяча"), десятичное число "9" — это двоичное число "1001" и, наконец, десятичное число "10", у него два разряда, представляется двоичным числом "1010", у которого четыре разряда. И так далее (до бесконечности).
Подводя итог математическому упражнению для первого класса, мы можем составить таблицу соответствий десятичных и двоичных чисел, например, в пределах первых двух десятков десятичной системы счисления (табл. 4.3). Читатели, при желании, могут продолжать ее, пока хватит терпения.
Таблица 4.3. Соответствие десятичных и двоичных чисел
Десятичное число |
Двоичное число |
Десятичное число |
Двоичное число |
||
0 |
0 |
11 |
1011 |
||
1 |
1 |
12 |
1100 |
||
2 |
10 |
13 |
1101 |
||
3 |
11 |
14 |
1110 |
||
4 |
100 |
15 |
1111 |
||
5 |
101 |
16 |
10000 |
||
6 |
110 |
17 |
10001 |
||
7 |
111 |
18 |
10010 |
||
8 |
1000 |
19 |
10011 |
||
9 |
1001 |
20 |
10100 |
||
10 |
1010 |
||||
Аналоговый и импульсный сигналы
Аналоговый и импульсный сигналы
Эта глава описывает причины перехода на импульсные способы передачи информации, аналоговый же сигнал необходим, во-первых, для сравнения, во-вторых, он неизбежен на входе и выходе любых технических информационных систем.
Для того чтобы понять своеобразие компьютерных технологий и отличие передачи цифровой информации от традиционной радио- и телеинформации, необходимо сравнить аналоговый сигнал, который обладает способностью к затуханию и подверженностью к помехам, с импульсным сигналом, обеспечивающим полное восстановление сигнала, т. к. вместе с сигналом он позволяет передать количество передаваемых импульсов.
Аналоговый сигнал
Мать и дочь необыкновенно похожи друг на друга. Допустим ли такой параллелизм в работе?
Илья Ильф
Любые способы технической регистрации и передачи информации (граммофон, магнитофон, кинокамера, видеокамера, фотоаппарат и т. д.), которые существовали в докомпьютерную эру и продолжают успешно функционировать, основаны на аналоговых технологиях.
Эти устройства называются аналоговыми, потому что уровни оригинального сигнала, например звука, похожи на уровни электрического тока, с помощью которого сигнал передается (один сигнал "аналогичен" по форме другому) (рис. 3.1). Если выразиться максимально обобщенно, то непрерывные значения одного сигнала задаются непрерывно изменяющейся физической величиной другого сигнала.
Бинарность в теории и в жизни
Что действительно удивительно и божественно для вдумчивого мыслителя, так это присущее всей природе раздвоение — отношение, наблюдаемое во всех числах и родах вещей.
Платон
Жила-была на свете тихая семейка: два брата-дегенерата, две сестрички-истерички, два племянника-шизофреника и два племянника-неврастеника.
Илья Ильф
Мы уже упоминали слово "бинарный", которое происходит от латинского слова "binaries", что означает "двойной", "двойственный". Следует заметить, что, как ни странно, "двоичность" гораздо важнее и первичнее, чем "единичность". Формально есть величины меньше двух, но в математике, в философии и в реальной жизни минимальной ячейкой является двоичная система.
Пример
Скажем, нельзя рисовать черным по черному (единичность), а требуется зрительный контраст (двоичность): в графическом произведении темное пятно имеет смысл, если окружено светлым пространством. Нельзя звучать тишиной в тишине (единичность), требуется звуковой контраст (двоичность): в музыкальном произведении — пауза имеет значение, но только в том случае, если она окружена какими-либо звуками. Любая информация возникает только как результат противопоставления (оппозиционных отношений).
Очень многие аспекты жизни основываются на двух противоположных качествах: "день — ночь", "черное — белое", "звук — тишина", "плюс — минус", "север — юг" и т. д. То есть минимальной является дихотомия, состояние из двух элементов, причем неразрывное. Нельзя так разрезать магнит, чтобы отделить полюса друг от друга.
Справка
Слово "дихотомия" происходит от греческого "dichotomia", что означает "разделение надвое" (на две эквивалентные, но противоположные части), а отсюда "дихотомическое деление на пары" означает способ классификации, когда два множества, понятия, термина относятся к одному явлению, но при этом противоположны, например "плюс" и "минус" в электричестве. Философские школы давно создавали систему мироздания, используя дихотомические пары, например "огонь" и "земля" — это первоэлементы в элейской философской школе (Парменид), "янь" и "инь" — это начала бытия в древнекитайской философии (даосизм), "дружба" (притяжение) и "вражда" (отталкивание) — это противоборствующие силы в теории Эмпидокла. Современные теории также зачастую строятся на базе дихотомии, например "материальное" и "идеальное", "экстраверсия" и "интроверсия" (К. Юнг), "субъект" и "объект", "дискретное" и "континуальное", "анализ" и "синтез".
Поэтому и первичный элементарный алфавит должен состоять, как минимум, из двух элементов. Это фундаментальное свойство нашло свое отражение в понятии бита.
Бит и кодовая таблица
Бит и кодовая таблица
После того как выяснилось, что импульсный сигнал — это совокупность двоичных чисел, необходимо рассмотреть, как создается кодовая таблица.
В данной главе вводится понятие минимальной единицы информации (1 бит), которая совпадает с двоичной системой счисления. Следует обратить особое внимание, что двоичная система счисления и главное понятие теории информации — бит — удачно совпадают по смыслу и по форме. На этой основе создается возможность, используя разрядности двоичных чисел, формировать определенные совокупности кодов (список кодов), которым ставится в соответствие совокупность значений (список значений). Таким образом формируется кодовая таблица, у которой могут быть самые разные значения (от чисел и букв до звуков и цветов). При этом важно осознать, что кодовая таблица является результатом определенного условного решения.
ЧАСТЬ II
СИГНАЛЫ, СЧИСЛЕНИЯ И ОСНОВЫ КОДИРОВАНИЯ
Глава 3. Аналоговый и импульсный сигналы
Глава 4. Системы счисления
Глава 5. Бит и кодовая таблица
Глава 6. Преобразование аналогового сигнала в цифровые коды
Всем, кто не знаком с принципами кодирования, необходимо начинать с этой части (в ней излагаются системы счисления и общие принципы дискретизации, квантования и кодирования). Техническим специалистам эту часть можно только просмотреть для того, чтобы помочь автору более удачно сформулировать положения "популярной теории".
В данной части книги рассмотрены предпосылки компьютерной графики. Сначала рассматриваются способы передачи информации (аналоговый и импульсный), сравнение которых показывает, почему импульсная технология могла стать основой компьютерной графики. При этом подтверждается преимущество дискретных сигналов, которые основаны на двоичной системе счисления. Импульсная технология оперирует двумя сигналами, поэтому настоятельно требуется использование бинарной (двоичной) системы счисления. Для более последовательного рассмотрения двоичной системы последняя дана на фоне нескольких других систем счисления. Двоичная система необходима не сама по себе, она используется для кодирования произвольных чисел, текста и другой изначально дискретной информации.
Двоичная система удачно согласуется с теорией информации и служит средством формирования кодовых таблиц. Правда, кодирование непрерывного сигнала требует нескольких предварительных этапов: дискретизации, усреднения, создания таблицы квантования, собственно квантования, создания таблицы кодирования и собственно кодирования.
Для кодирования информации, имеющей непрерывный характер, необходимы особые предварительные операции: дискретизации и квантования.
Чувствительность к помехам
Когда форма сигнала в каждый данный момент изменяется, всевозможные помехи (среди них наиболее характерны атмосферные или индустриальные - работа мощных станков или даже систем зажигания автомобилей, а также собственные шумы системы) в процессе передачи постоянно влияют на характер сигнала. В результате форма сигнала искажается, что препятствует "чистой" передаче.
В качестве примера можно показать влияние помехи на условный синусоидальный сигнал, который в результате сложения совокупности частот изменяет свою идеальную форму, что, безусловно, придает "звучанию" иную (дополнительную) тембральную окраску (рис. 3.2).
Фиксированная разрядность двоичных чисел
"Маловато будет!" Александр Татарский
Выше мы выяснили, что с помощью одного бита информации можно закодировать только два разных значения (например, "да" или "нет").
Информацию об этом смотрите в разд. "Понятие бита" данной главы.
Но всем совершенно понятно, что для кодирования более разнообразных вариаций в какой-либо области знаний (например, даже обычного текста, не говоря уже о звуковой или цветовой информации) одного бита информации действительно "маловато будет". Такая информация требует резервирования гораздо большего количества кодов.
А для получения большего количества кодов, разумеется, единственный путь состоит в увеличении разрядности двоичного числа (его удлинении). Это заставляет вспомнить и применить позиционный метод записи чисел.
Например, для записи десятичного числа 10 003 955 используются пять цифр и восемь разрядов.
Если рассматривать самый общий случай, как это принято в математике, то можно утверждать, что, используя небольшое конечное количество цифр (не менее двух) и позиционный метод записи, можно получить бесконечное количество чисел.
Важная мысль
С помощью конечного количества цифр (не менее двух) и позиционного метода записи можно отображать бесконечное количество чисел.
Но у двоичных чисел, поскольку они применяются в компьютерных технологиях, есть одна особенность: двоичные числа, как правило, формируются с фиксированной разрядностью. Такая совокупность разрядов получила название "слов".
Определение
Двоичное слово— последовательность битов, рассматриваемых как единое целое, имеющая определенное смысловое значение (в соответствующем кодовом алфавите).
Пример
В слове, равном одному байту, — восемь двоичных разрядов, и десятичное число "2" записывается в двоичной системе счисления следующим образом: 00000010. Слово может быть равно двум и более байтам, поэтому то же число может получить и такой вид: 00000000 00000010. Это означает, что если число занимает меньше значимых разрядов, чем отведено для его записи, как в данном примере, то все предыдущие разряды заполняются нулями.
И поскольку эти нули занимают
И поскольку эти нули занимают старшие разряды, они действительно не имеют значения.
Замечание
Кстати, по этой причине хранение информации на диске не является оптимальным: информация хранится кластерами, даже если в ней записан один бит — все равно весь этот кластер заполняется. В самом деле, двоичные числа записываются также в кластерной форме: 00000001, 000001, 00001, 001, 01, 1 — это одно и то же число, записанное при помощи двоичных слов различной длины. Например, если используется запись информации байтами, то заполняется всегда восемь ячеек памяти, независимо от того, что необходимо сохранить всего один бит. В этом кроется причина нерационального расходования дискового пространства.
В обычной жизни такой прием существует только в документах, которые требуют строгой документации, например лотерейные билеты. В остальных случаях мы экономим усилия и не станем записывать лишние цифры, тем более что они, собственно, ничего и не значат.
Обратимся еще раз к табл. 4.3 и рассмотрим ее с несколько иной точки зрения. Когда мы составляли эту таблицу (представление десятичных чисел в двоичном виде), то мы рассуждали сугубо математически. Теперь эту таблицу необходимо рассмотреть с информационной точки зрения, а именно представить дело таким образом, что мы составляем двоичные коды для десятичных чисел, коль скоро последние для человека современного образования наиболее привычны.
Но сначала необходимо решить одну задачу — рассчитать объем этой таблицы, исходя из количества двоичных разрядов.
Форма аналогового сигнала на разных этапах его передачи
Если таким же образом построить схему в импульсном варианте, то в схеме появится принципиальная ошибка. Ее смысл состоит в том, что в начале линии передачи, например, звука, после микрофона и предварительных усилителей должен находиться "кодировщик" - устройство, которое определенным образом преобразовывает аналоговый сигнал, поступающий от микрофона, в поток импульсов. А в конце линии передачи должен находиться "декодировщик" - устройство, которое выполняет обратную процедуру, а именно, преобразовывает поток импульсов в аналоговый сигнал, "понятный" для динамика и, в конечном счете, для человека.
Важная мысль
Для преобразования аналогового сигнала в импульсный и импульсного — в аналоговый требуется наличие специальных устройств — преобразователей аналогового сигнала в импульсный и обратно.
Таким образом, поскольку в рассматриваемой схеме в начале происходит преобразование аналогового сигнала в импульсно-цифровой (или проще, в цифровой), "кодировщик" ("шифратор") получает название АЦП, т. е. аналого-цифровой преобразователь (analog-to-digital converter, или ADC), а в конце — преобразование цифрового сигнала в аналоговый, "декодировщик" ("дешифратор") при этом получает название ЦАП, т. е., наоборот, цифро-аналоговый преобразователь (digital-to-analog converter, или DAC) (рис. 3.5).
Характер исходного и передаваемого сигналов
Определение
Аналоговый способ передачи информации — это способ, у которого каждому мгновенному значению входной величины (например, звука) соответствует мгновенное значение другой величины, отличающейся по физической природе (например, электрического тока), но изменяющейся по тому же закону, что и входная величина.
Поэтому аналоговую технологию отличает, прежде всего, непрерывный континуум информации (в процессе записи или передачи нет дискретных элементов, нет разрывов, даже в моменты "тишины"). Примерно также непрерывно мы воспринимаем информацию с помощью органов зрения или слуха.
Пример
Передача звука состоит в том, что в микрофоне под влиянием колебаний воздуха мембрана колеблется и "трясет" пьезоэлемент, в котором механическое воздействие создает электрический потенциал. В цепи появляется ток, уровень которого соответствует уровню звука в данный момент. Таким образом, с помощью микрофона звуковые волны преобразовываются в электрические сигналы.
Последующая запись такого сигнала, скажем, на грампластинку также производится непрерывно: резец устройства не отрывается от пластинки до конца записи. И при воспроизведении граммофонной пластинки игла адаптера также непрерывно "дергается" в нарезанных бороздках и, в зависимости от силы колебания, продуцирует ток различных уровней, соответствующих ранее записанному сигналу.
Когда сигнал через систему усилителей попадает на воспроизводящее устройство (динамик), он вызывает колебание другой мембраны: она притягивается или отталкивается электромагнитами, тем самым создавая колебания воздуха, а следовательно, обеспечивая условия восприятия звука человеком. Характерно, что ухо человека воспринимает такой сигнал практически неотличимо от ситуации, если бы источник звука располагался в непосредственной близости.
Данный пример (пока не касающийся графической информации) приведен только для того, чтобы подчеркнуть, что характер процедуры записи и воспроизведения идентичен для всех аналоговых систем.
Импульсный сигнал
Другим принципом передачи и записи информации является импульсная форма сигнала. Эта форма получила такое название потому, что сигнал передается короткими одинаковыми импульсами тока. В каждый данный момент ток может иметь два уровня.
Справка
Слово "импульс" (от латинского слова "impulsus", что переводится как "удар" или "толчок") в отношении электрических сигналов означает кратковременное отклонение напряжения или силы тока от некоторого постоянного значения.
Основной характеристикой такого принципа является прерывистая природа сигнала. Можно представить передачу сигнала в виде графика, какой использовался для отображения аналогового сигнала (уровень тока и время "откладываются" по осям графика). В этом случае график отображает всего два состояния: "есть ток" (уровень, близкий к максимальному) и "нет тока" (уровень, близкий к нулевому) (рис. 3.3). Нет никаких иных вариантов, кроме чередования импульсов.
Кодирование и декодирование импульсных сигналов
Кому — так, кому — знак. Марина Цветаева
Если внимательно рассмотреть схему передачи звука в аналоговом варианте (рис. 3.4), становится ясно, что форма сигнала в источнике и во всех остальных устройствах примерно одинакова. Синусоиду, которую генерирует, скажем, источник звука, в той или иной степени повторит микрофон, все усилители и конечное выводное устройство — динамик, который вернет звук, весьма напоминающий "оригинал".
Кодовая таблица
Если строго определены элементы алфавита и разрядность слов, получаемых с их помощью, то количество всех кодов можно вычислить, а следовательно, составить их перечень в форме кодовой таблицы.
Таким образом, в кодовой таблице представлено определенное количество строк и только два столбца:
в одном столбце указаны цифровые (в нашем случае двоичные) коды -"слова", как сочетания элементов алфавита, расположенные в определенной последовательности;
в другом столбце — их значения (нецифровой смысл, т. е. значения кодов).
Определение
Кодовая таблица — это совокупность цифровых (двоичных) кодов и их значений.
Стоит обратить внимание на то, что до сих пор мы оперировали цифрами и числами, получаемыми из этих цифр при помощи позиционной системы записи. Теперь оказалось, что на самом деле это — только половина кодовой таблицы. О второй половине кодовой таблицы поговорим ниже.
Информацию о значениях кодовой таблицы см. в разд. " Значения кодовой таблицы" данной главы.
А пока поговорим о построении кодовой таблицы.
Первая проблема, которую нам предстоит решить, заключается в том, чтобы определить количество строк, т. е. мы сначала должны задаться количеством разрядов, как это выяснилось в предыдущем разделе. Но возникает следующий вопрос: а чем это определяется, какой необходимостью?
Прежде всего, мы должны располагать предварительной информацией о количестве значений, которое нам предстоит кодировать. Если мы собрались кодировать только два значения, например "да" и "нет" или "черное" и "белое" (кстати, вполне реальная задача), т. е. такую информацию, которая состоит из двух сообщений, то потребуется всего один разряд (один бит), а соответствующая кодовая таблица (табл. 5.4) будет состоять из двух строк.
Таблица 5.4. Кодовая таблица для двух значений
Двоичные коды |
Значения кодов | ||||
0 1 |
"Да!" "Нет!" | ||||
Простота этой таблицы определяется тем, что в ней используются только элементы кодового алфавита.
Если значений, которые надо кодировать, оказывается больше, чем два, то в этом случае элементы алфавита составляются в "слова", длина которых определяется разрядностью.
Например, если для кодирования требуется добавить значение, которое обычно присутствует в анкетах "Не знаю!", то одного разряда окажется недостаточно. Мы уже эту ситуацию обсуждали и знаем, что необходимо задействовать два разряда (табл. 5.5).
Информацию о расчете количества кодов см. в разд. "Расчет количества кодов " данной главы.
Таблица 5.5. Кодовая таблица для трех значений
Двоичные коды |
Значения кодов |
||
00 01 10 11 |
"Да!" "Нет!" "Не знаю!" не используется |
Можно представить двоичные разряды в виде ячеек, входящих в состав слова-"ящика". Эти ячейки не могут быть пустыми, они должны получить какое-то значение, в данном случае "0" или "1".
Код "11" обязательно присутствует в таблице, хотя и не используется в данном случае, но, кто знает, может быть, этому коду в другой ситуации найдется достойное применение.
Пример
Если потребуется эту таблицу продолжить, например вместо трех значений (потенциально четырех) необходимо будет шесть значений, то сделать это можно, только увеличив количество разрядов, поскольку при данном количестве разрядов (два разряда) кодовая таблица не позволяет добавлять новые значения. Но сколько разрядов необходимо добавить? Это легко сосчитать: если два разряда мало, то положим три. Три разряда обеспечивают длину таблицы в восемь строк, т. е. больше, чем требуется. Строим новую таблицу: первое значение в ней будет "000", последнее — "111".
Важная мысль
Длина кодовой таблицы может быть произвольной, т. к. она определяется объемом информации, которая требует кодирования, но может быть ограничена возможностями технической реализации.
Расчет длины кодовой таблицы составляет практически половину всей процедуры ее построения.Теперь большее внимание следует обратить на вторую часть кодовой таблицы, которая определяет значения каждого кода.
Замечание
Однако следует отметить, что пользователям, которые применяют готовые технологии (программные приложения, общепринятые форматы и режимы), такими расчетами заниматься не приходится, поскольку давно разработаны стандартные кодовые таблицы. Вместе с тем, их ограничения, как правило, вызывают неприятие у лиц, которые не знакомы с особенностями логики, лежащей в основе компьютерных технологий. Например, художнику может быть совершенно непонятно, почему в компьютерных технологиях принято 256 градаций тона, а, например, не 7 или 100.
Дополнительную информацию о форматах файлов см. в части III.
Кодовый алфавит
Всем известно: Буква "Я"
В азбуке последняя.
А известно ли кому,
Отчего и почему?
Борис Заходер
Если выше мы определили, что код — это вообще система условных знаков, то алфавит — это перечень элементов данной кодовой системы.
Информацию об общем представлении кода смотрите в главе 4.
В общем случае, конечно, алфавит может включать самые произвольные элементы — это могут быть буквы, цветы, "лампочки" и пр. Даже тучка как знак дождя в нашей привычной метеорологической системе представлений. Но такое состояние присуще хаотическому мышлению, которым обладают дети и иногда характеризуются отдельные творческие индивидуумы.
В действительности же человечество формирует системные представления об окружающем мире. Причем, очень многие элементы этой системы являются знаками. Знаки бывают естественными и искусственными.
Естественные системы связаны с закономерностями, которые открыты и описаны физикой, химией, биологией, геологией и другими точными науками, а также дополнены эмпирическими наблюдениями о природе.
Искусственные системы целиком создаются людьми. Скажем, к искусственным можно отнести знаки письменности, пиктограммы, сигналы дорожного движения и многое другое.
Пример-метафора
В алфавите светофора всего три элемента, которые представлены разными цветами — красным, желтым, зеленым. Другие их различия роли не играют. В совокупности три элемента составляют кодовую систему, или кодовый алфавит. И, если мы знаем этот алфавит, то мы ему следуем или не следуем (то есть нарушаем со всеми вытекающими последствиями: от штрафа до угрозы жизни).
Определение
Кодовый алфавит — это минимальный перечень элементов.
Такое определение допускает, что в общем случае алфавит может содержать самые произвольные и, что характерно, никак не связанные друг с другом элементы.
Действительно, алфавиты, которые формировались в течение исторически длительного периода, чаще всего не идеальны, особенно это касается буквенно-фонетических алфавитов.
В частности, они имеют неоправданные повторения и противопоставления очень близких звуков и т. п. Поэтому время от времени предлагаются всевозможные реформы письменности.
И тем не менее, можно выявить, что у алфавита существует одно неизбежное свойство: количество элементов алфавита, как правило, в течение определенного исторического периода конечно.
Важная мысль
Алфавит характеризуется стабильностью состава в течение определенного исторического периода.
Пример
Элементами математического алфавита являются цифры и математические знаки. Для компьютерных технологий из всего этого многообразия остались только два элемента — "0" и "1".
Из элементов кодового алфавита составляются более развернутые сообщения ("слова"). Разрядность — это как раз длина "слов". В обычном языке слова сосчитать нельзя, поскольку их бесконечное количество. Если же известно и строго фиксировано количество элементов, а также известна и строго фиксирована длина слов (разрядность), то количество слов также предсказуемо.
Коды, создаваемые с помощью одной лампочки
Теперь усложняем задачу: используем два разряда, или, в нашей "научной" терминологии — две лампочки. Сколько сигналов, или кодов, мы можем с их помощью обеспечить?
Это зависит от того, сколько комбинаций (битовых "слов") мы можем составить.
Замечание
В обычных словах играет роль последовательность элементов-букв. Когда мы говорим слово "да", мы используем две буквы — но сигнал-то один, т. к. обозначается одно конкретное слово. Эти две буквы сами по себе ничего не значат, кроме звуков. Только их сочетание имеет значение, дает тот самый код, который имеет соответствующий смысл. Если мы переставим элементы, то получим совсем другое слово — "ад", что характерно, не имеющее никакой связи с первым. Когда мы говорим "нет", мы используем три буквы, которые также сами по себе ничего не значат. Поэтому мы должны считать не буквы, а сочетания. Это напоминает позиционный принцип: если мы ставим один и тот же элемент (одну и ту же букву, цифру или, как в данном случае, одну и ту же лампочку) в разные позиции или их разные сочетания — мы получаем разные значения кодов.
Итак, рассмотрим все возможные комбинации.
Первый сигнал: обе лампочки выключены.
Второй сигнал: включена только одна лампочка слева.
Третий сигнал: включена только одна лампочка справа.
Четвертый сигнал: обе лампочки включены.
Желающие могут проверить: других вариантов не получится (рис. 5.2)! Следовательно, когда приходится использовать две лампочки (или два двоичных разряда), всегда получаются четыре кода.
До сих пор все кажется достаточно очевидным, но следующий шаг ("рассмотрим более сложный вариант из трех лампочек, или трех разрядов") всегда вызывает в аудиториях, далеких от математики, ошибочные мнения. Обычно чаще всего называют числа "6" или "9" (видимо, по аналогии: "три плюс три" или "три в квадрате"). И то и другое — ошибка.
Для преодоления ошибки составим таблицу, представив горящую лампочку "единицей", а негорящую — "нулем" (табл. 5.1).
Неограниченные возможности копирования
Самые впечатляющие преимущества импульсного способа передачи связаны с копированием информации.
Вспомним схему копирования аналоговой информации и сравним ее со схемой копирования при импульсном способе передачи информации, которая имеет следующий характер: "оригинал — копия 1", "копия 1 — копия 2", "копия 2 — копия 3", "копия 3 — копия 4",... , "копия 999 — копия 1000" и так до бесконечности.
Схема копирования аналоговой информации была представлена в разд. "Проблемы копирования" данной главы.
В самом деле, любая копия, даже если она сотая, а может быть, и миллионная, абсолютно идентична оригиналу. Почему? Потому что копирование состоит в передаче относительно простых и (главное!) сосчитанных импульсов.
Важная мысль
Главным достоинством импульсного способа передачи информации является абсолютная идентичность копий.
Замечание
Впрочем, у этого потрясающего достоинства есть и неприятные последствия, т. к. оно представляет идеальную почву для пиратства и присвоения чужой интеллектуальной собственности.
Общая характеристика аналогового сигнала
Голосовая и пластическая линия непрерывны.
Марина Цветаева
Можно указать на следующие особенности аналоговых сигналов.
Аналоговый сигнал можно сравнить с мелодией — повышением и понижением голоса. Мелодия может сохраняться на более высоких или более низких тонах, если отношение тонов относительно друг друга будет соблюдаться.
Замечание
Поэтому перед выступлением камерные певцы, учитывая состояние своего голоса, договариваются с концертмейстером об уровне (тональности) исполнения.
Аналоговый способ передачи информации обладает важными достоинствами: соответствием исходному сигналу, непрерывностью, отсутствием необходимости хранить информацию о сигнале.
Но у аналогового способа существуют и не менее значительные недостатки: подверженность помехам и способность к затуханию.
Представление об аналоговых сигналах необходимо иметь хотя бы потому, что в объективной реальности это, видимо, единственный способ передачи какой бы то ни было информации. Все органы чувств человека имеют дело с аналоговыми сигналами. Любая информация, используемая в технических системах, также начинается и заканчивается аналоговым сигналом.
И даже те технические устройства, которые связывают обычную информацию с цифровыми технологиями, также требуют знания принципов аналоговой передачи и, следовательно, в дальнейшем преобразования их в цифровую форму.
Изложенной выше информации достаточно для представления сущности аналоговых сигналов, в дальнейшем мы не станем больше рассматривать эту тему.
Таким образом, представление об аналоговом способе следует рассматривать в качестве необходимой предпосылки перехода к цифровым технологиям, в виде своеобразного трамплина, от которого мы отталкиваемся, чтобы в дальнейшем благополучно приземлиться на территории нового (импульсного) метода.
Общая характеристика импульсного сигнала
Импульсный способ передачи информации интересен прежде всего тем, что обладает важными достоинствами:
устойчивостью к затуханию и помехам;
возможностью контроля передаваемого сигнала на его соответствие исходному сигналу.
Даже этих свойств достаточно, чтобы понять, почему импульсная природа взята в качестве основы компьютерных технологий.
Однако стоит еще раз рассмотреть два способа в сравнении и на очень простых примерах.
Понятие бита
Человек не знал двух слов — "да" и "нет". Он отвечал туманно: "Может быть, возможно, мы подумаем".
Илья Ильф
Двоичность бытия, на которую справедливо указывала философская мысль, начиная с самых древних времен, воплотилась в области информатики и компьютерных технологий в короткое, но фундаментально емкое понятие - бит (bit). Изначально это понятие появилось в теории информации, а теперь стало широко известным.
Справка
Теория информации (от латинского слова "informatio", что значит "ознакомление", "разъяснение") — это область научных знаний, которая развивалась с давних времен, но получила в настоящее время более широкое и всеобъемлющее значение благодаря развитию кибернетики. В кибернетике информация используется как одно из центральных понятий в одном ряду с понятиями связи и управления. А поскольку все эти понятия используются в компьютерных технологиях, они имеют не только научно-мировоззренческий статус, но и сугубо практический, а именно переход из качественной трактовки к количественным измерениям. Это вызвано тем, что в естественно-научных областях приняты разнообразные системы измерений (в гуманитарных науках измерение тоже существует, но носит второстепенный характер, например размер в поэзии, такты в музыке).
Как в теории информации, так и в компьютерных технологиях, построенных на фундаменте теории информации, основополагающую роль в этом как раз играет понятие бита.
Определение
Бит — это минимальное количество информации, составляющее выбор одного из двух возможных вариантов. Когда создается возможность дать ответ на любой вопрос "да" или "нет", то это и есть один бит информации, т. е. в этом случае меньше бита информации не бывает.
Таким образом, бит — это своеобразный атом информации.
Справка
"Бит" — слово искусственное и представляет собой сокращение от английских слов binary digit, что означает парадоксальное сочетание "двоичная единица", а в русский язык оно перешло простой транслитерацией.
Справка
Транслитерация происходит от двух латинских слов "trans", что означает "через", и "lit(t)era" — "буква". С помощью транслитерации обеспечивается передача слов или текста одного алфавита, в данном случае английского, средствами другого алфавита, в данном случае русского. Часто используется при передаче имен собственных или терминов.
Исходя из определения понятия "бит", минимальное количество информации — это ответ на любой вопрос, который имеет только один из двух ответов: "да" или "нет". Один бит информации — это утвердительный или отрицательный ответ на вопрос, требующий только "да" или "нет". Подчеркнем: именно или.
Пример-метафора
Скажем, когда вы звоните по телефону и на вопрос "Коля (или Оля) дома?" обычно отвечают одним битом информации, т. е. "да" или "нет" (впрочем, в зависимости от времени суток, могут, конечно, ответить и более развернуто, но это уже выходит за рамки теории информации).
По отношению к информации в бытовом смысле ("Коля (или Оля) дома!") информация в битовом измерении (1 бит) является такой же абстракцией, как число по отношению к конкретным предметам.
Причем, если кого-то волнует, как же мы отказываемся от качества информации (сообщения), а измеряем ее сугубо абстрактно, то это обычный способ наук и технологий. Можно вспомнить аналогичные случаи из школьной математики.
Пример
Когда-то и нас с вами учили считать "на пальцах" или "на яблоках": детское мышление конкретно (кстати, и обывательское — тоже). Но постепенно мы с вами забыли о яблоках и научились писать числа самым "абстрактным" образом. Например, когда мы вычисляем "2 + 2", уже не играет роли, что мы имеем в виду (те же яблоки или, например, доллары), нас интересуют только чисто количественные отношения.
Также можно абстрагироваться от "качества" информации (качественного содержания информации) и считать ее не как конкретные "яблоки", всякий раз вспоминая о том, какой была конкретная информация — а просто как количество, независимо от ее содержания.
В таком случае мы получаем колоссальную свободу в формальных операциях.
Пример
Если бы люди каждый раз для выполнения счета рисовали яблоки, человечество бы никогда не дошло до высшей математики. Потому что с их помощью невозможно решать какие бы то ни было математические задачи. Ученые, создав формальный способ, с его помощью решают математические проблемы вполне успешно.
И таким же образом, как в математике рассматривается количество безотносительно качества, так же с точки зрения теории информации исключается качественное содержание информации и учитывается только количественное. Скажем, когда упоминаемых выше Коли (или Оли) не оказывается дома, этот факт может быть для нас весьма огорчительным, но формальное количество информации (в абстрактном смысле) от этого не меняется ("да" или "нет" — это всегда один бит информации).
Следовательно, бит — это абстрактное понятие, которое обеспечивает количественное измерение информации. Так вот, когда мы переходим от естественного языка "да — нет" к математике, компьютерным технологиям, то там эти два состояния тоже придется обозначать математически.
Важная мысль
Бит— это абстрактное понятие, которое обеспечивает количественное измерение информации, доступное компьютерным системам.
Математически нам проще всего "битовую информацию" описывать числовыми методами, а именно двоичными числами, которые составляются из цифр "0" и "1".
Замечание
Очень часто люди гуманитарного склада "попадаются" на том, что считают ноль "пустым местом", ведь, как правило, ноль "ничего не значит". На самом деле, ноль это такая же полноправная цифра или число (в данном случае это и число и цифра).
Справка
Кстати, слово "ноль" происходит от латинского слова "nullus", что переводится как "никакой". Оно действительно мало, что значит, только в одном случае: от прибавления (или вычитания) ноля к любому числу последнее не меняется.
Зато ноль всемогущ в умножении: произведение любого числа на ноль дает ноль, а деление на ноль вообще невозможно. Последнее свойство вызывает фатальную ошибку в работе компьютера, если программист не предусмотрел специальную защиту.
И в этой связи обнаруживается, что двоичная система счисления, которая подробно обсуждалась выше, идеально совпадает с понятием бита в теории информации. Сколько передается "ноликов" или "единичек" — столько передается битов информации (современные объемы характеризуются объемами в килобайтах, мегабайтах, гигабайтах и даже терабайтах).
Информацию о двоичной системе счисления смотрите в разд. "Двоичная система счисления" данной главы.
А поскольку один бит и единицы двоичной системы счисления удачно совпали, это дает возможность передавать информацию, одновременно ее учитывая.
Важная мысль
Совпадение единицы информации "бит" и двоичной системы счисления обеспечивает возможность передачи информации одновременно с ее учетом.
Замечание
Попутно напомним, что аналоговая система передачи информации не обладает таким свойством: мы не можем, передавая сигнал, вместе с ним передавать как бы его идеальное состояние.
Преодоление затухания
Стоит заметить (не касаясь технических подробностей), что значительный диапазон между двумя уровнями сигнала (или даже между наличием и отсутствием сигнала) создают условия, уменьшающие затухание и повышающие различение сигналов, например в случае общего понижения напряжения в сети.
В самом деле, довольно основательный запас "прочности" позволяет устройствам приема, передачи и воспроизведения легко "разобраться", какой из уровней в данный момент поступает в обработку. Кроме того, эти два уровня имеют заранее известные (стандартные) значения, которые не трудно проконтролировать и легко восстановить.
Важная мысль
Импульсный способ, конечно, не отменяет физически неизбежного затухания, однако передача всего двух очень "контрастных" уровней сигнала позволяет различать их даже при сильной степени затухания.
Пример-метафора
Подобный прием используют в знаках дорожного движения, сводя изображение к двум максимально контрастным цветам (черное изображение на желтом фоне) для того, чтобы обеспечить различимость на самой большой дистанции. Если бы использовалось аналоговое изображение, например тоновая фотография даже великолепного качества, то достаточно уверенное восприятие было бы возможно только с близкого расстояния.
Причина потери качества
Неправильную установку можно исправить. Отсутствие установки исправить нельзя.
Илья Ильф
Теперь зададим себе естественный вопрос: почему же нельзя исправить, восстановить исходный уровень аналогового сигнала?
Если отбросить очень сложные технические подробности, причина состоит в том, что исходное (эталонное) состояние передаваемой аналоговой информации не фиксируется. По линии связи распространяется такой сигнал, который реально существует в каждый данный момент. И усилители "поднимают" сигнал не до исходного уровня, а лишь увеличивают его в том виде, какой до них "дошел". Если, например, вместо полезного сигнала до усилителя докатился треск и шум, то он вынужден усиливать и их или только их.
Пример
Если передается, допустим, конкретный звуковой сигнал с определенной громкостью и если в момент воспроизведения уровень тока ниже, чем тот, при котором была произведена передача, то громкость результирующего сигнала сможет настолько снизиться, что тихие звуки совсем пропадут (хотя сигнал может и вовсе исчезнуть). При этом нет никакой практической возможности убедиться, что сигнал не соответствует исходному (может быть, и в самом деле передаваемые звуки должны быть тихими или в это время "передается" пауза).
Разумеется, если бы была какая-либо техническая возможность в самом начале сохранить данные о том, какими должны быть передаваемые сигналы, а на входе в другое устройство можно было проверить, соответствуют ли они этой информации (идеальному сигналу), то только тогда можно гарантировать их абсолютно точное воспроизведение.
Важная мысль
Причина невозможности восстановить переданный аналоговый сигнал состоит в том, что исходное состояние сигнала ни в каком виде не фиксируется и не передается вместе с ним.
В этом заключается суть принципиального ограничения, которое невозможно каким-либо способом преодолеть. Передаваемая аналоговая информация представляет собой непрерывный континуум непрерывного сигнала. При этом сигнал в каждый данный момент ни с каким эталоном не сравнивается, а только соотносится (в нашем восприятии) с предыдущим уровнем сигнала.
Справка
Слово "континуум" происходит от латинского "continuum", что означает "непрерывный", т. е. непрерывная совокупность чего-либо, например совокупность всех точек отрезка числовой прямой, т. е. континуум действительных чисел.
Проблемы копирования
Затухание и подверженность помехам, помимо уже упомянутой необходимости усиливать сигнал, имеют еще одно весьма неприятное следствие. А именно, при каждом копировании аналоговой информации ее качество довольно резко ухудшается.
Замечание
Эффект накопления искажений, присущий всем аналоговым системам, ограничивает количество перезаписей, которые могут быть сделаны на аналоговом аудио- и видеомагнитофоне, буквально несколькими копиями.
Схема "оригинал — копия 1", "копия 1 — копия 2", "копия 2 — копия 3", "копия 3 — копия 4" и т. д. не работает после определенного, причем очень небольшого, числа этапов. При этом всем ясно, что каждая последующая копия по качеству заметно хуже предыдущей.
Поэтому в аналоговых системах копирование информации происходит по другой схеме: "оригинал — копия 1", "копия 1 - копия 2", "копия 1 -- копия 3", "копия 1 — копия 4" и т. д. Тем самым обеспечивается следующее условие: между источником информации и конечным его потребителем должно быть как можно меньше промежуточных этапов, т. к. каждый из них неизбежно вносит свои помехи и погрешности.
Такой порядок, безусловно, сдерживает копирование и распространение информации "цепочным" способом. Причем следует заметить, что этот недостаток является принципиальным и, как говорится, "исправлению не подлежит".
Важная мысль
Ухудшение аналогового сигнала в процессе копирования является принципиальным и не существует технологии полного исправления.
Замечание
По указанным причинам для того, чтобы при перезаписи не сильно удалиться от оригинала, необходимо обеспечивать копирование непосредственно с максимально близкой к оригиналу копии. Поэтому исходная запись ("оригинал") требует тщательного и заботливого хранения. А тиражирование, как правило, выполняется со второй и третьей копий.
Расчет количества кодов
"Ой, теперь он и тебя сосчитал!" — заскулил Теленок.
Альф Прейсен
Эту задачу по расчету количества кодов стоит обсудить подробнее, поэтому с целью упрощения моделируем ситуацию кодирования чисел с помощью электрических лампочек. Каждая лампочка представляет собой разряд двоичного числа.
Замечание
С той же целью упрощения мы исключаем временной параметр, т. е. лампочки с течением времени не изменяют своего состояния.
Сначала представьте себе, что в нашем распоряжении имеется одна-единственная электрическая лампочка, с помощью которой необходимо обозначить какую-либо информацию.
Сколько отдельных кодов можно смоделировать с помощью одной лампочки? Совершенно очевидно, что она может иметь только два состояния: "горит" или "не горит". И других состояний быть не может (мы, разумеется, не учитываем ситуацию, когда лампочка неисправна или в цепи нет тока).
Пример-метафора
Разрыв тока в цепи используется для сигнализации в мелких торговых предприятиях или офисах. Если сигнальная лампочка горит, это свидетельствует о том, что объект в сохранности...
Говоря математически, отвлекаясь от качественного содержания (магазинов, грабителей и пр.), можно сказать, что с помощью одной лампочки (одного разряда или одного бита) удается кодировать два значения, например "ноль" или "единицу" (рис. 5.1).
Расчет количества разрядов
В предыдущем разделе мы рассмотрели возможность расчета количества кодов, если известно количество разрядов. Но что делать, если известно количество требуемых кодов и необходимо определить количество разрядов?
Вернемся к моделированию с помощью лампочек и представим себе, что требуется отображать на каком-либо табло, скажем, 12 двоичных сигналов. Для этого необходимо рассчитать, какого минимального количества лампочек достаточно, чтобы обеспечить передачу этих сигналов.
Замечание
Причем следует учесть, что избыток не приветствуется, т. к. ставится условие определить минимальное количество, хотя, может быть, некоторый избыток и неизбежен. Конечно, для решения указанной задачи можно использовать и 12 лампочек, но вряд ли это будет рациональным решением.
Итак, для того чтобы определить количество разрядов ("лампочек") для 12 сигналов, следует обратиться к таблице из предыдущего раздела (см. табл. 5.3), но исходить в своих расчетах из второго столбца: какое число, ближайшее к указанному, обеспечивает выполнение этой задачи.
Разумеется, во втором столбце таблицы отсутствует такое конкретное число, как "12". Зато две строки являются ближайшими к нему - "8" (кодов) и "16" (кодов). Причем в одном случае недостает четырех кодов, а в другом — четыре кода лишние. Действительно, три разряда (8 кодов) явно не достаточно, а четыре разряда (16 кодов) предлагает несколько больше кодов, чем требуется.
В таких случаях приходится мириться с определенной избыточностью разрядов (или, если это возможно в данной задаче, попытаться минимизировать количество кодов до "ровного" значения).
Таким образом, мы подошли к возможности расчета количества двоичных разрядов для кодирования произвольного количества знаков, скажем, знаков произвольного алфавита.
Пример
Если поставить задачу кодирования десятичных цифр, для этого потребуется 4 двоичных разряда и еще останется 6 свободных кодов, т. к. 24= 16.
Количество разрядов можно вычислить по формуле, обратной рассмотренной ранее (N = 2n).
Для степенной зависимости обратной является логарифмическая функция:
п = log2N, где п — это количество двоичных разрядов, а N — количество кодов.
Справка
Логарифм данного числа N при основании а является показателем степени у, в которую нужно возвести число а, чтобы получить N, т. е. N = ау.
Такой логарифм обозначается обычно как logаN, а равенство у = !одах определяет логарифмическую функцию. Основные свойства логарифма позволяют заменить умножение, деление, возведение в степень и извлечение корня более простыми действиями сложения, вычитания, умножения и деления, т. к. при умножении степени складываются, при делении — вычитаются и т. д.
Логарифмы открыты шотландским математиком Дж. Непером и швейцарским математиком И. Бюрги в начале XVII века. Термин "логарифм" возник из греческих слов "logos", что означает "соотношение", и "arithmos" — "число".
Важная мысль
Таким образом, мы выяснили, что для передачи определенного количества кодов (сигналов и чего угодно) необходимо выбрать число двоичных разрядов, равное степени, в которую необходимо возвести число "2", чтобы получить число, соответствующее количеству кодов или слегка превышающее его.
В приведенных выше примерах мы специально выбирали такие числа ("12" или "10"), у которых получается определенный избыток двоичных разрядов. Конечно, разумнее всего так подобрать количество кодов, чтобы они требовали соответствующего количества разрядов. Но это возможно только в том случае, если коды создаются произвольно.
К сожалению, так получается не всегда. Чаще всего ситуация не позволяет изменять количество кодов, например нельзя изменить количество букв алфавита.
Различие аналоговых и импульсных сигналов
"По квитанции — корова рыжая одна. Брали мы ее одну и возвращать будем одну,
чтобы не нарушать отчетности".
Эдуард Успенский
Рассмотрев два принципа передачи сигналов по отдельности, следует выяснить принципиальное различие между ними, которое состоит в том, что аналоговый сигнал не содержит информации об исходном состоянии, а импульсный сигнал всегда снабжается информацией о количестве передаваемых импульсов.
Пример-метафора
Аналоговый способ передачи информации легко представить следующей метафорой. Пользователь получает почтовый перевод, из которого следует, что ему высланы деньги. И вот когда он незамедлительно является в кассу, кассир говорит ему: "Возьмите 100 рублей. Больше нет, уже вечер, и касса пустая".
И хотя таких ситуаций в реальности не случается, тем не менее, это — в чистом виде аналоговый принцип. С точки зрения получателя: какую сумму отправили — неизвестно, поэтому получайте столько, сколько останется.
Таким образом, стоит уяснить, что, посылая аналоговый сигнал, никто не может гарантировать, что он дойдет в исходном состоянии. Совсем другое дело — импульсный способ передачи.
Пример-метафора
Продолжая пример с почтовым переводом, можно утверждать, что в "правильном" почтовом переводе всегда указывается, какая сумма пересылается. И если указано, скажем, 100 рублей, то получателю уже не грозит получить 120 или 80. Больше не дадут, а меньше не захочется. В данном случае получателя не касаются проблемы кассира. Если в кассе сейчас нет 100 рублей (бывают разные ситуации), это означает, что получатель повторно придет за переводом и рано или поздно его получит.
Исходя из этого примера, читатель может убедиться, почему импульсные технологии надежнее: всегда можно проверить и сравнить, какой объем информации передан и какой объем на самом деле достиг назначения.
Замечание
Впрочем, это не означает безоговорочного преимущества импульсных сигналов. Существует представление, что импульсные (цифровые) технологии по определению более качественны.
Увы, это представление далеко от истины.
Достоинство цифровых технологий заключается не в их качестве (в дальнейшем мы увидим — почему). Более того, аналоговые сигналы гораздо ближе к исходному сигналу и "интереснее" по характеру: например, стоит послушать старый ламповый приемник, у которого мягкий, приятный, "человеческий" звук в сравнении с цифровыми устройствами воспроизведения. Именно поэтому ценятся старые пластинки, по-прежнему пользуются популярностью концерты живой музыки...
Сила же импульсно-цифровых технологий — в том, что можно надежно передавать и копировать, сохранять и воспроизводить исходное состояние сигнала (не объективной реальности, она гораздо шире всех возможных систем, а именно начального сигнала), поэтому они интенсивно завоевывают информационное пространство.
Замечание
Учитывая столь полезные достоинства импульсной техники, можно предположить, что на следующем витке развития воспроизводящей техники произойдет возврат к аналоговым сигналам, но на более высоком уровне в сочетании с возможностями импульсных технологий.
Вместе с тем, стоит обратить внимание, что при обсуждении и сравнении двух способов передачи информации мы упустили из виду одну важную особенность импульсного способа.
Разряды и разрядность
Обратимся к табл. 4.6 и выпишем ряд десятичных чисел, которые равны "круглым" двоичным числам. В этот ряд входят следующие десятичные числа: "2", "4", "8", "16", "32", "64", "128", "256", "512" и, наконец, сакраментальное "1024". Все эти числа представляют ряд последовательных степеней числа "2". Каждое из названных чисел чрезвычайно активно используется в компьютерных технологиях. Читатель, видимо, убеждался в этом не один раз.
Мы оперируем каким-либо двоичным числом, а любое двоичное число — это совокупность битов, т. е. "1" и "О". Отсюда получается, что каждый бит — это один разряд или одна позиция в двоичном числе.
Замечание
Надеемся, что вы еще не забыли о позиционном принципе записи чисел в любых математических системах счисления (значение цифр, количество которых ограничено, зависит от положения в числе, от ее позиции).
В данный момент мы делаем шаг в сторону абстрагирования от конкретных значений цифр и начинаем считать только количество знакомест (позиций), которое в математике принято называть "разрядом", а совокупность разрядов (знакомест) — "разрядностью".
Определение
Разряд в арифметике — это место, занимаемое цифрой при записи числа. Например, в десятичной системе счисления цифры первого разряда — это единицы, второго разряда — десятки и т. д.
Но арифметические законы, которые кажутся привычными в десятичной системе счисления, все без исключения действительны и для двоичной системы счисления. Двоичные числа также можно складывать, вычитать, перемножать и делить с использованием тех же приемов школьного курса арифметики. Отличие заключается только в том, что используются всего две цифры.
Кроме того, как мы уже выяснили, в двоичной системе счисления каждый разряд — это бит и его значение зависит от позиции и равно соответствующей степени числа "2".
Определение
Разрядность двоичного числа — это количество знакомест (разрядов) или количество битов, заранее отведенных для записи числа.
Пример
Десятичное число "2" может быть записано различными способами в зависимости от разрядности двоичного числа: как "10", если разрядность равна двум; как "0010", если разрядность равна четырем; как "00000010", если разрядность равна восьми. Обратите внимание, что последний вариант соответствует записи десятичного числа "2" в пределах одного байта информации.
Разрядность двоичного числа интересует нас в связи с тем, что это количество разрядов (позиций или знакомест) обеспечивает определенный набор возможных двоичных чисел, которые, как мы уже договорились, могут служить кодами, с помощью которых происходит кодирование любых видов информации: собственно чисел, текстов, графических и цветных изображений, звуков, анимации и видео.
Осталось только выяснить, каким образом разрядность влияет на количество информации (двоичных кодов), котоую можно получить с помощью определенного количества разрядов. Однако прежде следует учесть одну особенность двоичных чисел, нашедшую применение в компьютерных технологиях, — это фиксированные значения разрядности двоичных чисел.
Схема импульсного сигнала
Определение
Импульсный способ передачи информации — это способ, у которого передача происходит не непрерывно, а только в отдельные моменты времени, в промежутках между ними сигнал отсутствует или его воздействие пренебрежимо мало.
Такой способ передачи сигналов дает возможность преодолеть указанные выше недостатки аналогового сигнала.
Схема передачи импульсных сигналов
Определение
Аналого-цифровой преобразователь (АЦП) — устройство, которое обеспечивает представление аналогового (непрерывного) сигнала соответствующими цифровыми кодами.
Цифроаналоговый преобразователь (ЦАП) — устройство, которое обеспечивает преобразование кода цифрового сигнала в соответствующий аналоговый (непрерывный) сигнал.
Этап передачи между АЦП и ЦАП — это импульсно-цифровой этап, или короче цифровой. В самом деле, с помощью последовательности импульсов передаются некие числа, которые представляют собой не сигнал как таковой (например, звук или изображение), а только его шифрованную форму (коды). Проще говоря, любая информация, которая передается последовательностью совершенно одинаковых импульсов, не может быть "аналогичной" (совпадать по форме) исходной. Совокупность импульсов — это последовательность кодов.
Принципам кодирования посвящена глава 5.
На первый взгляд, усложнение схемы двумя дополнительными устройствами может показаться большим недостатком. На самом деле, в этом кроется колоссальное достоинство, которое всегда несет с собой унификация, особенно в технических системах и на производстве.
Пример-метафора
Стоит сравнить перевозку разнообразных предметов индивидуально и унифицированно. Одно дело— каждой вещи создавать свою особенную упаковку, совсем другое — предусмотреть один-два стандартных ящика, которые легко складировать, перемещать и учитывать. Особенно стоит обратить внимание на возможность "учета". В свое время мы об этом вспомним.
Для передачи информации используются два основных способа: аналоговый и импульсный.
Аналоговый способ необходим по причине того, что объективная информация (звук, цвет) представляет собой аналоговую форму. Поэтому на этапах ввода и вывода информации приходится иметь дело с аналоговыми сигналами. Рассмотренные в данной главе особенности достаточны для того, чтобы представлять себе, какие сигналы подлежат преобразованию в форму, "понятную" компьютеру.
С другой стороны, компьютерные технологии не обладают органами чувств и мышлением, которыми природа снабдила человека.
Для их функционирования требуется самый простой и однообразный вид сигнала, каковым является импульсный.
Таким образом, мы закончили обсуждение аналогового способа, который по-прежнему используется в технике, и переходим к более детальному рассмотрению импульсного способа передачи.
Импульсный сигнал характеризуется прежде всего тем, что одинаковые импульсы нетрудно сосчитать и передать их количество вместе с информационным сигналом. Это позволяет абсолютно достоверно осуществлять копирование информации.
Далее предстоит разобраться, каким образом происходит кодирование самых разных форм информации, откуда эти коды берутся, как мы их можем получать, доставлять и использовать, т. е. рассмотреть в предельно популярном виде основы кодирования.
Но прежде необходимо от технических вопросов передачи информации перейти к математическим основам кодирования.
Следствие произвольности кодовой таблицы
Но далеко не всегда такая договоренность имеет место или правильно понимается, огромное число проблем возникает именно из-за того, что "кто-то кого-то не так понял". Иногда это случайные ситуации, а иногда и преднамеренная дезинформация в форме "непонятой условности".
Только в том случае информация, которая имела место на входе в линию связи, будет соответствовать информации на выходе с линии связи, если на входе и выходе используется одна и таже таблица кодирования. Если же в примере с кодированием четырех ахроматических цветов на входе и выходе будут использованы различные таблицы, то в результате мы получим весьма превратное представление об исходной информации.
Кодирование четырех ахроматических цветов описано в главе 7.
Пример
Русские пользователи Интернета и электронной почты постоянно сталкиваются с проблемой несоответствия кодировок текста. По разным историческим причинам в разных компьютерных системах размещение букв русского алфавита (кириллицы) приходится на различные значения кодов. (Стоит сказать, что такие проблемы в несколько ослабленной форме справедливы для всех алфавитов, имеющих буквы, которые не входят в латинский алфавит, особенно эти проблемы усугубляются, если происходит обмен между ними и кириллицей).
Проблем с английским языком не бывает, потому что все договоренности изначально учитывали только английский язык (точнее сказать, только латинский алфавит), а все остальные языки потом приспосабливались, внедряя свои символы в эту кодовую таблицу. Ярким примером, как уже сказано, служат несколько кодировок кириллицы.
Пример
Однако несовпадение кодовых таблиц возможно и в самых обычных текстовых редакторах. Причина кроется в "устройстве" шрифтовых файлов, по одному и тому же коду, как по адресу, могут находиться как русские, так и дополнительные символы латиницы. В этом случае одни и те же коды (заметьте, правильные коды!) могут вызвать неадекватный результат, если произошла подмена шрифтовых файлов.
Резюме
В компьютерных технологиях основополагающую роль играет понятие бита. Последний определяется как минимальное количество информации, равное наличию или отсутствию сигнала. Использование бита обеспечивает количественное измерение информации.
Двоичная система счисления идеально совпадает с понятием бита. Это дает возможность передавать информацию одновременно с ее учетом.
Любое двоичное число — это совокупность битов, а каждый бит — это один разряд, значение которого зависит от позиции и равно соответствующей степени числа "2".
Разрядность двоичного числа — это количество знакомест, количество разрядов, количество битов, заранее отведенных для записи числа, что обеспечивает определенный набор возможных двоичных чисел, которые могут служить кодами.
Двоичное слово — последовательность битов, рассматриваемых как единое целое. Слово имеет определенное, хотя и произвольное, значение (в соответствующем кодовом алфавите).
Количество разрядов n, необходимых для обеспечения N кодов, можно вычислить по формуле: n=logN.
Кодовый алфавит — это минимальный перечень элементов. Алфавит характеризуется стабильностью состава в течение определенного исторического периода.
Кодовая таблица — это совокупность кодов и их значений. Длина кодовой таблицы может быть произвольной, но ограничивается возможностями технической реализации.
Значение кода не является законом природы — это всякий раз результат условности, результат договоренности заинтересованных сторон. Значимые для человечества или большой группы людей кодовые таблицы приобретают статус стандартов.
В общем случае, кодовая таблица может включать любое содержание, если мы сумеем его подготовить к кодированию. Вопрос состоит в том, как готовить аналоговую информацию к кодированию. В главе 6 будет рассмотрено преобразование абстрактного сигнала, а в последующих главах части III речь пойдет об особенностях преобразования изобразительной информации.
Рассмотрев выше подробно формальные (математические) основы построения кодовых таблиц, необходимо обратиться к "плану содержания" и поставить вопрос: каким общим качеством должны обладать те значения, которые мы собираемся кодировать? Условие это единственное и необходимое.Без него нельзя начать процесс кодирования. Но об этом мы поговорим уже в следующей главе.
Количество кодов, создаваемых тремя двоичными разрядами
Номер по порядку |
Двоичный код |
Номер по порядку |
Двоичный код | ||||||
1 |
000 |
5 |
100 | ||||||
2 |
001 |
6 |
101 | ||||||
3 |
010 |
7 |
110 | ||||||
4 |
011 |
8 |
111 | ||||||
В результате получилось восемь кодов, которые представляют диапазон от "все лампочки потушены" до "все лампочки горят".
Мы не зря использовали условные обозначения для лампочек ("ноль" и "единицу"), ведь по сути дела нам требовалось написать двоичные числа, которые являются кодами десятичных чисел от "О" до "7". Для этого требуется два двоичных разряда.
Можно продолжить наращивание количества разрядов и составить таблицу кодов для четырех двоичных разрядов (табл. 5.2).
Таблица 5.2. Количество кодов, создаваемых четырьмя двоичными разрядами
Номер по порядку |
Двоичный код |
Номер по порядку |
Двоичный код | ||||||
1 |
0000 |
9 |
1000 | ||||||
2 |
0001 |
10 |
1001 | ||||||
3 |
0010 |
11 |
1010 | ||||||
4 |
0011 |
12 |
1011 | ||||||
5 |
0100 |
13 |
1100 | ||||||
6 |
0101 |
14 |
1101 | ||||||
7 |
0110 |
15 |
1110 | ||||||
8 |
0111 |
16 |
1111 | ||||||
В результате получилось шестнадцать кодов, которые также представляют диапазон от "все лампочки потушены" до "все лампочки горят", т. е. десятичные числа от "О" до "15".
Полагаем, что дальше продолжать нет необходимости: принцип получения кодов, кажется, ясен, и теперь можно составить таблицу (табл. 5.3) зависимости между количеством двоичных разрядов (битов) и количеством кодов, которые можно получить с их помощью.
Таблица 5.3. Количество разрядов и количество кодов
Количество разрядов двоичного числа |
Количество кодов |
Количество разрядов двоичного числа |
Количество кодов | ||||||
1 |
2 |
6 |
64 | ||||||
2 |
4 |
7 |
128 | ||||||
3 |
8 |
8 |
256 | ||||||
4 |
16 |
9 |
512 | ||||||
5 |
32 |
10 |
1024 | ||||||
Обратите внимание на то, что каждое последующее количество кодов больше предыдущего в два раза. Это означает, что количество разрядов является степенью при основании "двойки". Если значение степени равняется количеству разрядов, то общее количество кодов можно вычислить по чрезвычайно простой формуле:
N=2n, где N — это количество кодов, а n — количество двоичных разрядов.
С помощью приведенной формулы всегда можно определить, сколько потенциальных кодов получается в случае использования определенного количества разрядов.
Не стоит забывать, что эти рассуждения интересуют нас исключительно в связи с компьютерными технологиями, т. к. каждый разряд требует аппаратного размещения. Отсюда можно поставить обратную задачу: как рассчитать количество разрядов, если известно количество кодов, которое необходимо обеспечить для кодирования известной совокупности данных.
Влияние помехи на передаваемый
Пример
Если читателю не очень по душе пример с абстрактными волнами, стоит представить, как влияют на различение звуков голоса порывы ветра или помехи в телефонной трубке.
Возможность контроля сигнала
Если импульсный сигнал сравнивать с аналоговым сигналом (для которого характерно непрерывное и разнообразное изменение уровня тока), может сложиться впечатление полной скуки, поскольку по такому сигналу нельзя получить никакой даже приблизительной информации о сигнале: громкий он или тихий, быстрый или медленный, с повышающимся или понижающимся тоном и т. д.
Однако не стоит делать опрометчивых выводов. У скучных импульсов есть одно весьма существенное преимущество: импульсы можно сосчитать! Поэтому такой вид называют еще импульсно-цифровым способом передачи информации. (Понятно, что при всех красотах аналоговые "извивы" сосчитать невозможно).
Важная мысль
Важнейшим достоинством импульсного способа передачи является возможность "учета и контроля" передаваемых импульсов.
В начале посылки совокупности таких сигналов можно указать количество импульсов и, тем самым, проконтролировать достоверность передачи. Если в результате передачи их количество не совпадает, происходит повторная передача. И, следовательно, сигнал не может потеряться или измениться, т. к. всегда имеется возможность проверить исходное состояние.
Если же, например, на линии происходит сбой и в какой-либо период времени передача невозможна, то при ее восстановлении совокупность сигналов повторяется.
Пример
Такое взаимодействие характерно, например, для модемной связи. Когда происходит связь модемов по телефонной линии, модем-приемник передает модему-отправителю на языке специального почтового протокола готовность к приему почтового отправления. Модем-отправитель информирует на том же языке об отсылке пакета в несколько килобайт и начинает бит за битом (последовательная передача) пересылать указанный пакет. Если на линии происходит сбой, то протокол взаимодействия заставляет модем-приемник ответить, что объем переданного пакета не соответствует заявленному. В этом случае происходит повторная передача пакета.
Если же пакет дошел в полном объеме (модем-приемник "сосчитал" импульсы и их оказалось ровно столько, сколько было заявлено), модем-приемник заявляет об успешности и происходит передача следующего пакета или прямая связь разрывается.
Справка
Модемом называется устройство, которое обеспечивает модуляцию и демодуляцию информационных сигналов (МОдуляция и ДЕМодуляция). Назначение модулятора модема заключается в том, что поток цифровых данных из компьютера преобразуется в аналоговые сигналы, пригодные для передачи по телефонному каналу связи. Демодулятор модема выполняет обратную задачу.
Затухание аналогового сигнала
Действительно, когда сигнал передается по линии связи, он представляется в форме электрического тока. А поскольку в любых проводниках существует сопротивление, которое необходимо преодолевать, вследствие этого неизбежного процесса сигнал постепенно затухает. В результате через определенное расстояние на устройстве воспроизведения полезный сигнал заметно уменьшается или вовсе снижается до уровня шума.
Важная мысль
Передача любого сигнала ограничивается естественным затуханием в среде, создающей сопротивление.
Поэтому электрический сигнал требует регулярного усиления в пунктах, далеко отстоящих от уровня своего полного затухания.
Пример
Человеческий голос, также преодолевая сопротивление воздушной среды, не может распространяться бесконечно. Поэтому, если требуется передача сигнала голосом, то можно, например, выстроить цепочку людей на таком расстоянии друг от друга, которое бы обеспечивало "слышимость", исключающую ситуацию "испорченного телефона". Впрочем, голос— очень ненадежный источник сигнала, чаще используют зрительные сигналы: флажки, фонари, семафоры или светофоры.
Примерно такая же идея положена в устройство телефонных линий. Когда вы говорите в трубку дома, и, скажем, во Владивостоке вас прекрасно слышат, то это вовсе не потому, что вы так громко кричите. Понятно, что сигнал на пути в несколько тысяч километров периодически усиливается, предотвращая естественное затухание.
Значения кодовой таблицы
Ужас бытия человеческого состоит в том, что ничто существенное не вытекает ни из каких правил, ни из каких законов, оно должно быть конкретно, вот здесь установлено и понято.
Мераб Мамардашвили
В примерах кодовых таблиц, которые мы до сих пор использовали, например табл. 5.5, главное внимание было обращено, прежде всего, на количественную сторону. Теперь настало время рассмотреть качественную сторону кодирования: каким образом поставить в соответствие каждому коду (или каждому двоичному числу) определенные значения из самых разных областей знания.
По сути дела это и есть основополагающая задача при разработке кодовой таблицы — поставить в соответствие друг другу список двоичных чисел (они имеют вполне стандартный вид) и список значений (выделение и сортировка которых чаще всего носят нетривиальный характер).
Нетривиальность вызывает множество вопросов. Какими принципами следует руководствоваться при заполнении правой части кодовой таблицы? Каким образом формируется совокупность значений и в каком порядке они распределяются?
Вспомним наши "эксперименты" с лампочками. В самом деле, когда лампочка не горит — это можно счесть "нулевым значением", а когда горит, то, само собой разумеется, -- "единичным".
Пример-метафора
Но ведь возможна и другая точка зрения, когда важнее, чтобы лампочка не горела. Любители отечественной киноклассики могут вспомнить, что в фильме "Бриллиантовая рука" как раз такая ситуация: незадачливым жуликам требовалось, чтобы погас свет в одном из номеров гостиницы "Атлантик", это был знак к началу операции. Таким образом, для них более значимым сигналом (знаком) было не горение лампочки, а, наоборот, отсутствие света.
Можно привести и массу других примеров, в которых одно и то же действие или один и тот же знак (код) имеют совершенно разные значения.
Обратимся снова к табл. 5.4. Почему "нулю" мы поставили в соответствие значение "Да!", а "единице" — значение "Нет!"? Есть ли в этом какая-либо неизбежная логика?
Самый общий принцип заполнения столбца кодовой таблицы, который называется "значения", можно сформулировать так: он заполняется произвольной информацией в произвольном порядке!
Важная мысль
Значения кодовой таблицы определяются логикой предметной области.
Пример 1
Представим, что каждому студенту необходимо присвоить персональный код (то есть, другими словами, составить кодовую таблицу, в которой значениями будут служить фамилии студентов), тогда, прежде всего, необходимо решить несколько вопросов.
Первый вопрос, связанный с количеством строк этой таблицы и количеством разрядов в двоичном коде, решается довольно просто: сосчитать количество присутствующих студентов и экстраполировать это число на определенный исторический период ("на вырост"). Затем рассчитать необходимое количество разрядов и составить список кодов, начиная с кода "00...00" и заканчивая кодом "11... 11".
Гораздо сложнее решить вопрос, связанный с тем, в каком порядке (по какому критерию) составить список студентов. Какой принцип перечисления фамилий следует выбрать: совершенно произвольно, по алфавиту, по успеваемости, по возрасту, по дате рождения... Можно, видимо, придумать еще массу принципов. И у каждого из них есть свои достоинства и свои недостатки. В этом случае мы должны выбрать один принцип, т. е. однозначно договориться о той логике, по которой мы сортируем совокупность значений.
Пример 2
Кодирование широко применяется в базах данных всевозможных товаров. Разрабатываются специальные коды прейскуранта, в которых любой товар получает индивидуальный номер, т. е. цифровой код. Эти прейскурантные коды не очень интересны покупателю, но чрезвычайно важны для изготовителей, для торговли или для ремонтных служб. Для автоматизации ввода кодов изобретена технология штрих-кодов, что представляет собой надстройку кода над кодом, т. е. числовой код кодируется графически, чтобы считывающему сканеру легче было воспринимать информацию из толщин и промежутков между этими линейками.
С числами задачу сканирования и распознавания решить было сложнее: нужно очень точно позиционировать площадь считывания (что возможно обеспечить только со стандартными объектами, например коды цифр на почтовых конвертах).
В принципе, мы вольны принять любую систему, даже с полным отсутствием какой бы то ни было очевидной логики. Другой вопрос, будет ли такая кодовая таблица рациональной, удобной и универсальной.
Разберем более простой пример. Предположим, что необходимо закодировать четыре ахроматических цвета: белый, черный, темно-серый, светло-серый.
Каким образом станем действовать? С точки зрения левого (числового) столбца кодовой таблицы проблема решается просто: для четырех значений требуется четыре кода, а для формирования четырех двоичных кодов (двоичных чисел) идеально подходят два разряда (диапазон от "00" до "11").
Определение
Кодирование — это операция отождествления двоичных чисел с дискретными значениями какой-либо предметной области.
А что касается правого столбца, то здесь, как говорится, необходимо договариваться. Когда же речь заходит о всевозможных системах кодирования, то это всегда — определенные договоренности.
Замечание
Возьмем изображение яблока в виде знака. Что оно может обозначать? Какая связь между яблоком и известной фирмой? Никакой! Эту связь установили условно, "договорились!". Ведь в природе такой связи не было.
В самом деле, совершенно не очевидно, если вернуться к ахроматическим цветам, какой код правильнее (выгоднее, удобнее, рациональнее) присвоить, например, черному цвету. Два нуля, две единицы, а может быть, сохранить порядок, который приведен выше? Рассуждая таким образом, мы вынуждены признать, что привлекаемая нами логика носит произвольный характер, она не вызвана какими-либо однозначными закономерностями.
В качестве примера, видимо, вполне рационально присвоить коды, начиная с белого и заканчивая черным. Тогда, следуя этой логике (подчеркнем еще раз, что это произвольная логика, не основанная на математических законах), белому цвету присваивается код "00", черному — код "11", а светлосерому и темно-серому оттенкам вполне логично присвоить промежуточные значения (табл. 5.6).
Таблица 5.6. Кодовая таблица для четырех ахроматических цветов
Двоичные коды |
Значения кодов |
||
00 |
Белый цвет |
||
01 |
Светло-серый цвет |
||
10 |
Темно-серый цвет |
||
11 |
Черный цвет |
||
Что касается кодирования указанных цветовых оттенков, то на самом деле ситуация иная. В системе RGB черному цвету присваивается нулевое значение. И там есть определенная логика, о которой речь пойдет ниже.
Информацию о цветовых моделях см. в части VI.
Возможны ли другие варианты таблицы? Разумеется. Причем, очень многие варианты носят совершенно произвольный характер, например "темно-серый, белый, черный, светло-серый". Для компьютера все варианты абсолютно равнозначны, а для человека важнее всего очевидная логика, поэтому мы расставили значения в определенном порядке, следуя логике перехода тонов от белого до черного. Соответственно, человеку понятнее и логика сортировки чисел, скажем, от "00" до "11" или, наоборот, от "11" до "00", но вот связь двух цепочек (цепочка чисел и цепочка значений) не имеет отчетливых логических зацепок.
Замечание
Кстати, отсутствие отчетливой логики не является препятствием для использования. Разве везде и всюду действует какая-то разумная логика? Довольно часто задаются какие-либо условия, которые выгодны не тем, кто их использует, а тем, кто их регулирует. Предположим, дорожное движение: иногда ставят дорожные знаки не так, как удобнее водителям и безопаснее для движения, а так, как удобнее соответствующим службам.
История компьютерных технологий также изобилует подобными фактами. Вот только два примера. Знаменитая комбинация клавиш <Ctrl>+<Alt>+<Del> для "горячей" перезагрузки компьютера была встроена в клавиатурный код только потому, что система первых PC была склонна к зависаниям (что благополучно сохранилось до наших дней). В основе современных операционных систем, разрабатываемых компанией Microsoft, лежит крайне несовершенное ядро MS-DOS, которое в спешке было разработано в далеком 1980 году.
Это очень важное обстоятельство: выбор значения и его соответствие кодам носят принципиально произвольный характер. Но вместе с тем, следует отметить, что в области, подвергаемой кодированию, имеется та или иная логика, та или иная степень классификации и т. д., поэтому предпочтительнее руководствоваться логикой тех значений, которые мы используем в правой части кодовой таблицы.
Важная мысль
Значение кода не является законом природы — это всякий раз результат условности, результат договоренности в определенных сферах общества.
Пример-метафора
Вместе с тем, ситуацию нельзя доводить до абсурда, например устанавливать договоренность о способах пересечения каждого отдельного перекрестка. Разумеется, что договоренности, которые затрагивают огромное количество участников, стараются стандартизировать. Те же правила дорожного движения являются международными.