Представление информации в компьютере

1





Представление текстовой информации в компьютере 

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

С точки зрения ЭВМ текст состоит из отдельных символов. К числу символов принадлежат не только буквы (заглавные или строчные, латинские или русские), но и цифры, знаки препинания, спецсимволы типа "=", "(", "&" и т.п. и даже (обратите особое внимание!) пробелы между словами. Да, не удивляйтесь: пустое место в тексте тоже должно иметь свое обозначение. 

Каждый символ хранится в виде двоичного кода, который является номером символа. Можно сказать, что компьютер имеет собственный алфавит, где весь набор символов строго упорядочен. Количество символов в алфавите также тесно связано с двоичным представлением и у всех ЭВМ равняется 256. Иными словами, каждый символ всегда кодируется 8 битами, т.е. занимает ровно один байт. 

Как видите, хранится не начертание буквы, а ее номер. Именно по этому номеру воспроизводится вид символа на экране дисплея или на бумаге. Поскольку алфавиты в различных типах ЭВМ не полностью совпадают, при переносе с одной модели на другую может произойти превращение разумного текста в "абракадабру". Такой эффект иногда получается даже на одной машине в различных программных средах: например, русский текст, набранный в MS DOS, нельзя без специального преобразования прочитать в Windows. Остается утешать себя тем, что задача перекодировки текста из одной кодовой таблицы в другую довольно проста и при наличии программ машина сама великолепно с ней справляется. 

Наиболее стабильное положение в алфавитах всех ЭВМ занимают латинские буквы, цифры и некоторые специальные знаки. Это связано с существованием международного стандарта ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией). Русские же буквы не стандартизированы и могут иметь различную кодировку. 

Желающие могут в качестве примера ознакомится с таблицей стандартной части алфавита ЭВМ - символы с шестнадцатеричными кодами с 20 до 7F.



Нельзя также пройти мимо еще одного интересного факта: каждый символ текста имеет свой числовой код, но не каждому коду соответствует отображаемый на экране символ. Речь идет о существовании так называемых УПРАВЛЯЮЩИХ КОДОВ, величина которых меньше шестнадцатеричного числа 20 (т.е. 32 в десятичной системе счисления). При получении этих кодов внешние устройства не изображают какого-либо символа, а выполняют те или иные управляющие действия. Так, код 07 вызывает подачу стандартного звукового сигнала, а код 0C - очистку экрана. Особую роль играют коды 0A (перевод строки, обозначаемый часто LF) и 0D (возврат каретки - CR). Первый вызывает перемещение в следующую строку без изменения позиции, а второй - на начало текущей строки. Таким образом, для перехода на начало новой строки требуются оба кода и в любом тексте эта "неразлучная пара" кодов хранится после каждой строки.

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



Представление графической информации.

Растровое представление:

В отличии текстового представления информации, когда минимальной единицей является символ, при отображении графики картинка строится из отдельных элементов - ПИКСЕЛОВ (от английских слов PICture ELement, означающих "элемент картинки"). 

Очень часто пиксел совпадает с точкой дисплея, но это совсем необязательно: например, в некоторых видеорежимах 1 пиксел может состоять из 2 или 4 точек экрана.

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

Так, для черно-белой картинки закодировать цвет точки можно одним битом: 0 - черный, 1 - белый. Для случая 16 цветов требуется уже по 4 разряда на каждую точку, а для 256 цветов - 8, т.е. 1 байт.

Растр - прямоугольная сетка пикселей на экране.

Число цветов, воспроизводимых на экране дисплея (K), и число бит, отводимых в видеопамяти под каждый пиксель (N), связаны формулой:

K = 2 N. 

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

1

1

1

1

00F

1

0

0

1

009

1

0

0

1

009

1

1

1

1

00F













 

1111



1111

1111

1111

00FFFF

1111



0000

0000

1111

00F00F

1111

0000

0000

1111

00F00F

1111



1111

1111

1111

00FFFF





В режиме 16-цветной графики это же самое изображение потребует памяти в 4 раза больше.

Наконец, при 256 цветах на каждую точку требуется уже по байту и наш квадратик разрастется еще вдвое.

















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

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

Код цвета пикселя содержит информацию о доле каждого базового цвета.

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

Желающие могут в качестве примера ознакомится с таблицей кодирующей 8 - цветную палитру с помощью трехразрядного двоичного кода 

Шестнадцатицветная палитра получается при использовании 4 - разрядной кодировки пикселя: к трем битам базовых цветов добавляется один бит интенсивности. Этот бит управляет яркостью всех трех цветов одновременно.

Например: 
если в 8 - цветовой палитре код 100 обозначает красный цвет, то в 16 - цветной палитре: 0100 - красный, 1100 - ярко - красный цвет; 0110 - коричневый, 1110 - ярко коричневый (желтый).

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

При использовании битовой глубины 8 бит / пиксель количество цветов: 28 = 256. Биты такого кода распределены следующим образом: КККЗЗЗСС.

Это значит, что под красную и зеленую компоненты выделено по 3 бита, под синюю - 2 бита. Следовательно, красная и зеленая компоненты имеют по 28 = 256 уровней яркости, а синяя - 4 уровня.



Векторное представление:

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

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

Положение и форма графических примитивов задаются в системе графических координат, связанных с экраном. Обычно начало координат расположено в верхнем левом углу экрана. Сетка пикселей совпадает с координатной сеткой. Горизонтальная ось X направлена слева направо; вертикальная ось Y - сверху вниз.

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







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



Представление звуковой информации

звук есть колебания среды. 

Для их записи с целью последующего воспроизведения необходимо как можно точней сохранить форму кривой зависимости интенсивности звука от времени. При этом возникает одна очень важная и принципиальная трудность: звуковой сигнал непрерывен, а компьютер способен хранить в памяти только дискретные величины. Отсюда следует, что в процессе сохранения звуковой информации она должна быть "оцифрована", т.е. из аналоговой непрерывной формы переведена в цифровую дискретную. Данную функцию выполняет специальный блок, входящий в состав звуковой карты, который называется аналого-цифровой преобразователь – АЦП.

Каковы основные принципы работы АЦП?

Во-первых, он производит дискретизацию записываемого звукового сигнала по времени. Это означает, что измерение уровня интенсивности звука ведется не непрерывно, а, напротив, в определенные фиксированные моменты времени (удобнее, разумеется, через равные временные промежутки). Частоту, характеризующую периодичность измерения звукового сигнала принято называть частотой дискретизации. Вопрос о ее выборе далеко не праздный и ответ в значительной степени зависит от спектра сохраняемого сигнала: существует специальная теорема Найквиста, согласно которой частота "оцифровки" звука должна как минимум в 2 раза превышать максимальную частоту, входящую в состав спектра сигнала. 

Считается, что редкий человек слышит звук частотой более 20 000 Гц (20 кГц). Поэтому для высококачественного воспроизведения звука верхнюю границу обычно с некоторым запасом принимают равной 22 кГц. Отсюда немедленно следует, что частота звукозаписи в таких случаях должна быть не ниже 44 кГц. Названная частота используется, в частности, при записи музыкальных компакт-дисков. Однако часто такое высокое качество не требуется, и частоту дискретизации можно значительно снизить. Например, при записи речи вполне достаточно частоты дискретизации 8 кГц. Заметим, что результат при этом получается хотя и не блестящий, но легко разборчивый – вспомните, как вы слышите голоса своих друзей по телефону.

Во-вторых, АЦП производит дискретизацию амплитуды звукового сигнала. Это следует понимать так, что при измерении имеется "сетка" стандартных уровней (например, 256 или 65 536 – это количество характеризует глубину кодирования), и текущий уровень измеряемого сигнала округляется до ближайшего из них. Напрашивается линейная зависимость между величиной входного сигнала и номером уровня. Иными словами, если громкость возрастает в 2 раза, то интуитивно ожидается, что и соответствующее ему число возрастет вдвое. В простейших случаях так и делается, но, как показывает более детальное изучение, это не самое лучшее решение. Проблема в том, что в широком диапазоне громкости звука человеческое ухо не является линейным. Например, при очень громких звуках, увеличение или уменьшение интенсивности звука почти не дает эффекта, в то время как при восприятии шепота очень незначительное падение уровня может приводить к полной потере разборчивости. Поэтому при записи цифрового звука, особенно при 8 - битном кодировании, часто используют различные неравномерные распределения уровней громкости, в основе которых лежит логарифмический закон.

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



На рисунке представлен процесс "оцифровки" зависимости интенсивности звукового сигнала I от времени t. Отчетливо видна дискретизация по времени (равномерные отсчеты на горизонтальной оси) и по интенсивности сигнала (требуемое при этом округление схематически изображено "изломами" горизонтальных линий разметки). Подчеркнем, что на рисунке степень дискретизации для наглядности сознательно утрирована: реально различие между соседними уровнями дискретизации по обеим осям значительно меньше и, следовательно, форма сигнала передается гораздо точнее.

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

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

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

Наиболее наглядный и понятный из них состоит в том, что по имеющимся точкам рассчитывается степенная функция, проходящая через заданные точки, которая и принимается в качестве формы аналогового сигнала. Чтобы понять, как это делается, возьмем, например, интерполяцию параболой I = at 2 + bt + c по трем заданным точкам. Подставив в эту формулу известные значения времени и приравняв их к сохраненным в файле значениям интенсивности звука I, получим три линейных уравнения с тремя неизвестными a, b и c. 

Качественный вид результата представлен на рисунке: 



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

Представление видео информации.

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

В частности, когда при весьма скромном размере окна видеоизображения 360x240 и 16 битах цветовой информации на каждый пиксел скорость передачи данных превышает один мегабайт в секунду. То есть за десять минут должно быть передано более 600 Мбайт данных, что эквивалентно немного немало почти целому диску CD-ROM! 

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

Что представляет собой фильм с точки зрения информатики? Прежде всего, это сочетание звуковой и графической информации. Кроме того, для создания на экране эффекта движения используется дискретная по своей сути технология быстрой смены статических картинок. Исследования показали, что если за одну секунду сменяется более 10-12 кадров, то человеческий глаз воспринимает изменения на них как непрерывные. В любительской киносъемке использовалась частота 16 кадров/сек., в профессиональной – 24.

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

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







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

Принцип формирования разностного кадра поясняется на следующем рисунке, где продемонстрировано небольшое горизонтальное смещение прямоугольного объекта. 

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











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

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

Существует множество различных форматов представления видеоданных. Рассмотрим некоторые из них:

Формат

Характеристика

AVI

 

В среде Windows, например, уже более 10 лет (начиная с версии 3.1) применяется формат Video for Windows, базирующийся на универсальных файлах с расширением AVI (Audio Video Interleave – чередование аудио и видео). Суть AVI файлов состоит в хранении структур произвольных мультимедийных данных, каждая из которых имеет простой вид, изображенный на рисунке. 



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

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

Quick Time

Еще более универсальным является мультимедийный формат Quick Time, первоначально возникший на компьютерах Apple. По сравнению с описанным выше, он позволяет хранить независимые фрагменты данных, причем даже не имеющие общей временной синхронизации, как этого требует AVI. В результате в одном файле может, например, храниться песня, текст с ее словами, нотная запись в MIDI-формате, способная управлять синтезатором, и т.п. Мощной особенностью Quick Time является возможность формировать изображение на новой дорожке путем ссылок на кадры, имеющиеся на других дорожках. Полученная таким способом дорожка оказывается несоизмеримо меньше, чем если бы на нее были скопированы требуемые кадры. Благодаря описанной возможности файл подобного типа легко может содержать не только полную высококачественную версию видеофильма, но и специальным образом "упрощенную" копию для медленных компьютеров, а также рекламный ролик, представляющий собой "выжимку" из полной версии. И все это без особого увеличения объема по сравнению с полной копией.

MPEG

Все большее распространение в последнее время получают системы сжатия видеоизображений, допускающие некоторые незаметные для глаза искажения изображения с целью повышения степени сжатия. Наиболее известным стандартом подобного класса служит MPEG (Motion Picture Expert Group), который разработан и постоянно развивается созданным в 1988 году Комитетом (группой экспертов) международной организации ISO/IEC (International Standards Organization/International Electrotechnical Commission) по стандартам высококачественного сжатия движущихся изображений. Методы, применяемые в MPEG, непросты для понимания и опираются на достаточно сложную математику. Укажем лишь наиболее общие приемы, за счет которых достигается сжатие. Прежде всего, обрабатываемый сигнал из RGB-представления с равноправными компонентами преобразуется в яркость и две "координаты" цветности. Как показывают эксперименты, цветовые компоненты менее важны для восприятия и их можно проредить вдвое. Кроме того, производится специальные математические преобразования (DCT – дискретно-косинусное преобразование), несколько загрубляющее изображение в мелких деталях. Опять таки из экспериментов следует, что на субъективном восприятии изображение это практически не сказывается. Наконец, специальными методами ликвидируется сильная избыточность информации, связанная со слабыми отличиями между соседними кадрами. Полученные в результате всех описанных процедур данные дополнительно сжимаются общепринятыми методами, подобно тому, как это делается при архивации файлов.

DivX

В последнее время все большее распространение получает технология под названием DivX (происходит от сокращения слов Digital Video Express, обозначающих название видеосистемы, которая "прославилась" неудачной попыткой взимать небольшую оплату за каждый просмотр видеодиска; к собственно технологии DivX это никакого отношения не имело). Благодаря DivX удалось достигнуть степени сжатия, позволившей вмесить качественную запись полнометражного фильма на один компакт-диск – сжать 4,7 Гб DVD-фильма до 650 Мб. И хотя это достижение, к сожалению, чаще всего используется для пиратского копирования, сам по себе этот факт не умаляет достоинств новой технологии. Как и то, что самая первая версия сжатия DivX была сработана французскими хакерами из MPEG-4 – современные версии DivX уже не имеют к этому событию никакого отношения.

кодеки

Наиболее популярные программы проигрывания видеофайлов позволяют использовать замещаемые подсистемы сжатия и восстановления видеоданных – кодеки (от англ. compression/decompression – codec).

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