Если человек занимается изучением компьютерной техники не поверхностно, а достаточно серьезно, он непременно должен знать о том, какие существуют формы представления информации в компьютере. Этот вопрос является одним из основополагающих, поскольку не только использование программ и операционных систем, но и само программирование в принципе основаны именно на этих азах.
Урок «Представление информации в компьютере»: основы
Вообще, компьютерная техника по тому, как она воспринимает информацию или команды, преобразовывает их в форматы файлов и выдает пользователю уже готовый результат, несколько отличается от общепринятых понятий.
Дело в том, что все существующие системы основаны всего лишь на двух логических операторах – «правда» и «ложь» (true, false). В более простом понимании это «да» или «нет».
Понятно, что слова вычислительная техника не понимает, поэтому на заре развития компьютерной техники была создана специальная цифровая система с условным кодом, в котором утверждению соответствует единица, а отрицанию – ноль. Именно так и появилось так называемое двоичное представление информации в компьютере. В зависимости от сочетаний нулей и единиц определяется и размер информационного объекта.
Наименьшей единицей измерения размера такого типа является бит – двоичный разряд, который может иметь значение либо 0, либо 1. Но современные системы с такими малыми величинами не работают, и практически все способы представления информации в компьютере сводятся к использованию сразу восьми битов, которые в сумме составляют байт (2 в восьмой степени). Таким образом, в одном байте можно произвести кодировку любого символа из 256 возможных. И именно двоичный код является основой основ любого информационного объекта. Далее будет понятно, как это выглядит на практике.
Информатика: представление информации в компьютере. Числа с фиксированной запятой
Раз уж речь изначально зашла о числах, рассмотрим, каким образом система их воспринимает. Представление числовой информации в компьютере сегодня условно можно разделить на обработку чисел с фиксированной и плавающей запятой. К первому типу также можно отнести обычные целые числа, у которых после запятой стоит ноль.
Считается, что числа этого типа могут занимать 1, 2 или 4 байта. Так называемый главный байт отвечает за знак числа, при этом положительному знаку соответствует ноль, а отрицательному – единица. Таким образом, например, в 2-байтовом представлении диапазон значений для положительных чисел находится в пределах от 0 до 216-1, что составляет 65535, а для отрицательных чисел – от -215 до 215-1, что равно числовому диапазону от -32768 до 32767.
Представление чисел с плавающей запятой
Теперь рассмотрим второй тип чисел. Дело в том, что школьная программа занятий по теме «Представление информации в компьютере» (9 класс) числа с плавающей запятой не рассматривает. Операции с ними являются достаточно сложными и используются, например, при создании компьютерных игр. Кстати, немного отвлекаясь от темы, стоит сказать, что для современных графических ускорителей одним из главных показателей производительности является скорость проведения операций именно с такими числами.
Здесь используется экспоненциальная форма, в которой положение запятой может изменяться. В качестве основной формулы, показывающей представление любого числа A принята следующая: A = mA * qP, где mA – это мантисса, qP – это основание системы счисления, а P – порядок числа.
Мантисса должна отвечать требованию q-1≤|mA|<1, то есть должна быть правильной двоичной дробью, содержащей после запятой цифру, которая отличается от нуля, а порядок – целым числом. И любое нормализованное десятичное число можно совершенно просто представить в экспоненциальном виде. И числа этого типа имеют размер 4 или 8 байт.
Например, десятичное число 999,999 согласно формуле с нормализованной мантиссой будет выглядеть как 0,999999*103.
Отображение текстовых данных: немного истории
Более всего пользователи компьютерных систем все-таки используют тестовую информацию. И представление текстовой информации в компьютере соответствует тем же принципам двоичного кода.
Однако в связи с тем, что сегодня в мире можно насчитать достаточно много языков, для представления текстовой информации используются специальные системы кодировок или кодовые таблицы. С появлением MS-DOS основным стандартом считалась кодировка CP866, а компьютеры Apple использовали собственный стандарт Mac. В то время для русского языка была введена специальная кодировка ISO 8859-5. Однако с развитием компьютерных технологий пришлось вводить новые стандарты.
Разновидности кодировок
Так, например, в конце 90-х годов прошлого века появилась универсальная кодировка Unicode, которая могла работать не только с текстовыми данными, но и с аудио и видео. Ее особенностью стало то, что под один символ отводился уже не один бит, а два.
Чуть позже появились и другие разновидности. Для Windows-систем самой применяемой является кодировка CP1251, но для того же русского языка и до сих пор используется КОИ-8Р – кодировка, появившаяся еще в конце 70-х, а в 80-х активно использовавшаяся даже в UNIX-системах.
Само же представление текстовой информации в компьютере основано на таблице ASCII, включающей в себя базовую и расширенную части. Первая включает в себя коды от 0 до 127, вторая - от 128 до 255. Однако первые коды диапазона 0-32 отведены не под символы, которые присвоены клавишам стандартной клавиатуры, а функциональным кнопкам (F1-F12).
Графические изображения: основные типы
Что касается графики, которая активно используется в современном цифровом мире, тут есть свои нюансы. Если посмотреть на представление графической информации в компьютере, сначала следует обратить внимание на основные типы изображений. Среди них выделяют две основных разновидности – векторные и растровые.
Векторная графика основана на использовании примитивных форм (линий, окружностей, кривых, многоугольников и т. д.), текстовых вставок и заливок определенным цветом. Растровые изображения основаны на применении прямоугольной матрицы, каждый элемент которой называется пикселем. При этом для каждого такого элемента можно задать яркость и цвет.
Векторные изображения
Сегодня применение векторных изображений имеет ограниченную область. Они хороши, например, при создании чертежей и технических схем или для двумерных или трехмерных моделей объектов.
Примерами стационарных векторных форм могут быть форматы вроде PDF, WMF, PCL. Для движущихся форм в основном применяется стандарт MacroMedia Flash. Но если говорить о качестве или проведении более сложных операций, чем то же масштабирование, лучше использовать растровые форматы.
Растровые изображения
С растровыми объектами дело обстоит гораздо сложнее. Дело в том, что представление информации в компьютере, основанной на матрице, подразумевает использование дополнительных параметров – глубины цвета (количественным выражением числа цветов палитры) в битах, и размера матрицы (количества пикселей на один дюйм, обозначаемого как DPI).
То есть палитра может состоять из 16, 256, 65536 или 16777216 цветов, а матрицы могут разниться, хотя наиболее распространенным разрешением называют 800х600 пикселей (480 тысяч точек). По этим показателям можно определить количество бит, требуемое для хранения объекта. Для этого сначала используется формула N = 2I, в которой N – это количество цветов, а I – это глубина цвета.
Затем рассчитывается и объем информации. Например, вычислим размер файла для изображения, содержащего 65536 цветов, и матрицей 1024х768 пикселей. Решение выглядит следующим образом:
- I = log265536, что составляет 16 бит;
- количество пикселей 1024 * 768 = 786 432;
- объем памяти составляет 16 бит * 786 432=12 582 912 байт, что соответствует 1,2 Мб.
Разновидности аудио: главные направления синтеза
Представление информации в компьютере, называемой аудио, подчиняется тем же основным принципам, которые были описаны выше. Но, как и для любой другой разновидности информационных объектов, для представления звука тоже используются свои дополнительные характеристики.
К сожалению, качественное звучание и воспроизведение появились в компьютерной технике в саму последнюю очередь. Однако если с воспроизведением еще дела обстояли еще кое-как, то синтез реально звучащего музыкального инструмента был практически невозможен. Поэтому некоторые звукозаписывающие компании ввели собственные стандарты. Сегодня наиболее широко применяется FM-синтез и таблично-волновой метод.
В первом случае подразумевается, что любой природный звук, являющийся непрерывным, можно разложить на некую последовательность (комбинацию) простейших гармоник с помощью метода дискретизации и произвести представление информации в памяти компьютера на основе кода. Для воспроизведения используется обратный процесс, однако в этом случае неизбежны потери некоторых составляющих, что отображается на качестве.
При таблично-волновом синтезе предполагается, что имеется заранее созданная таблица с примерами звучания живых инструментов. Такие примеры называются сэмплами. При этом для воспроизведения достаточно часто используются команды MIDI (Musical Instrument Digital Interface), которые воспринимают из кода тип инструмента, высоту тона, длительность звучания, интенсивность и динамику изменения, параметры среды и прочие характеристики. Благодаря этому такой звук достаточно близко приближен к натуральному.
Современные форматы
Если раньше за основу был взят стандарт WAV (собственно, сам звук и представляет в виде волны), со временем он стал очень неудобен, хотя бы по причине того, что такие файлы занимали слишком много места на носителе информации.
Со временем появились технологии, позволяющие сжимать такой формат. Соответственно, изменились и сами форматы. Наиболее известными сегодня можно назвать MP3, OGG, WMA, FLAC и множество других.
Однако до сих пор основными параметрами любого звукового файла остаются частота дискретизации (стандартом является 44,1 кГц, хотя можно встретить значения и выше, и ниже) и количество уровней сигнала (16 бит, 32 бита). В принципе, такую оцифровку можно трактовать как представление информации в компьютере звукового типа на основе первичного аналогового сигнала (любой звук в природе изначально является аналоговым).
Представление видео
Если со звуком проблемы были решены достаточно быстро, то с видео все шло не так гладко. Проблема состояла в том, что клип, фильм или даже видеоигра представляют собой сочетание видеоряда и звука. Казалось бы, чего проще, чем совместить движущиеся графические объекты со звукорядом? Как оказалось, это стало настоящей проблемой.
Тут дело в том, что с технической точки зрения изначально следует запомнить первый кадр каждой сцены, называемый ключевым, а только потом сохранять отличия (разностные кадры). И, что самое печальное, оцифрованные или созданные видеоролики получались такого размера, что хранить их на компьютере или съемном носителе было просто невозможно.
Проблема была решена, когда появился формат AVI, который представляет собой некий универсальный контейнер, состоящий из набора блоков, в которых может храниться произвольная информация, при этом даже сжатая разными способами. Таким образом, даже файлы одинакового формата AVI между собой могут существенно разниться.
И сегодня можно встретить достаточно много других популярных форматов видео, однако для всех них также применяются собственные показатели и значения параметров, главным из которых является количество кадров в секунду.
Кодеки и декодеры
Представление информации в компьютере в плане видео невозможно представить себе без применения кодеков и декодеров, применяемых для сжатия начального содержимого и распаковки при воспроизведении. Само их название говорит о том, что одни кодируют (сжимают) сигнал, вторые – наоборот - распаковывают.
Именно они отвечают за содержимое контейнеров любого формата, а также определяют размер конечного файла. Кроме того, немаловажную роль играет и параметр разрешения, как это указывалось для растровой графики. А ведь сегодня можно встретить даже UltraHD (4k).
Заключение
Если подвести некий итог всего вышесказанного, можно отметить только то, что современные компьютерные системы изначально работают исключительно на восприятии двоичного кода (другого они просто не понимают). И на его использовании основано не только представление информации, но и все известные сегодня языки программирования. Таким образом, изначально, чтобы понять, как все это работает, нужно вникнуть именно в суть применения последовательностей единиц и нулей.