Битники
Нынешний расцвет мобильных гаджетов, компьютеров и Всемирной паутины называют цифровым веком. Это связано с бумом цифровой информации: всё, что мы читаем и пишем, видим и слышим, переводится в форму, понятную компьютеру. Компьютер, в свою очередь, открывает нам целую вселенную возможностей по работе с такой информацией – копировать, передавать, хранить любые дынные становится все проще. МТС/Медиа поможет разобраться в теории создания цифрового мира.
Двоичная и десятичная системы счисления
Прежде чем понять, как картинка, полученная объективом смартфона, или книга или становятся файлом на компьютере, нужно хотя бы в первом приближении понимать, как работает этот самый компьютер.
На самом базовом уровне компьютер, несмотря на приписываемый молвой интеллект, оперирует прямо-таки примитивными категориями: да – нет, делать – не делать. В дебрях микросхем этот дуализм выражается в наличии или отсутствии электросигнала. Всё, что должен переварить компьютер, ему предварительно нужно «разжевать», разбить на простые элементы, свести к набору из двух противоположных понятий.
«Нет» в компьютерном языке заменяет цифра 0, «да» – 1. Именно поэтому компьютерная информация и называется цифровой. Всё, что хранит ваш компьютер или смартфон, все сложные алгоритмы, зашитые в самых сложных программах – и кадр-шедевр с последней вечеринки, и любимая песня, и недописанное начальнику письмо с заголовком «да пошел…» – все это лишь длинная череда нулей и единиц.
Базовым числом в нашей повседневной жизни является 10 – мы используем цифры от 0 до 9, то есть, привычной для нас является десятичная система счисления. В мире компьютера базовое число – 2 (всего две цифры, 0 и 1), а системе счисления называется двоичной или бинарной. В десятичной системе для перехода от однозначных чисел к двузначным нужно сначала досчитать до девяти, для перехода к трёхзначным – до 99. Принцип формирования разрядов в системах один и тот же: новый разряд в числе появляется после того, как только в текущем исчерпаны все доступные цифры
Теперь мы уже понимаем, как в цифровую форму, понятную компьютеру, можно перевести любое число. Кроме того, мы видим, каков он, минимальный кусок информации – это 1 или 0. Этот минимальный кусок называется битом. Для того, чтобы записать число 2 в двоичной системе нужно 2 бита информации (10), для записи числа 4 – 3 бита (100), для 15 – 4 бита (1111).
Буквы – в цифры
На деле, чаще мы сталкиваемся не с битами информации, а с байтами. Байт равен 8 битам. Если вы видите, что речь идёт об объеме информации, скажем, в 10 МБ, то буква «Б» – это именно байт, а не бит. В тех случаях, когда указываются биты, слово «бит» пишут целиком.
Байт – аналог слова в машинном языке. На заре компьютерной эры 8 бит информации соответствовали одной ячейке памяти машин, все 8 бит передавались вместе как одно целое. Потом машинные «слова» стали удлиняться, но оставались кратными восьми по количеству бит.
Почему именно 8? Так сложилось. 8 бит были необходимы, чтобы представить 1 текстовый символ в одной из первых компьютерных кодировок. Кодировка – это таблица соответствия текстовых символов значениям двоичных чисел. Если попытаться написать все варианты восьмизначных чисел, состоящих из нулей и единиц, от 00000000 до 11111111, то таких вариантов наберётся 256 – именно столько символов есть во многих ныне существующих кодировках, и все они называются 8-битными.
Таблица кодировки – своего рода инструкция для компьютера, с помощью которой он переводит буквы текста в двоичные числа и наоборот. Однако все символы всех языков в одной кодировке не поместятся, и для каждого языка нужны свои инструкции. По этой причине в мире получили распространение национальные кодировки. Так, в кириллических кодировках (КОИ-8, Windows-1251, MacCyrillic) есть большие и маленькие буквы русского и латинского алфавитов, цифры, знаки препинания и вспомогательные символы. Если на компьютере где-нибудь в Китае не установлена поддержка кириллической кодировки, то вы не сможете набрать русские символы, а операционная система не сумеет их отобразить.
Позднее наряду с 8-битными кодировками получили распространения 16-битные, в которые вмещаются чуть ли не все мыслимые символы всех языков. Однако каждая буква в такой кодировке занимает уже два байта.
Итак, 1 буква – это 1 или 2 байта. Теперь мы знаем, что если в «Войне и мире» Льва Толстого около 3 млн букв, то на компьютере сравнимый объём информации займёт около 3 или 6 млн байт.
Отступление о степенях двойки
Байт – очень небольшой объём информации. Поэтому в цифровом мире в ходу обычные для обозначения больших величин приставки кило (к), мега (М), гига (Г) и другие. Вот только из-за двоичности компьютерного мира значения этих приставок иные. Килобайт – это не 1000, а 1024 байта, мегабайт – 1024 килобайта. Это связано с тем, что при обработке цифровой информации, которая вся состоит из двоичных чисел, удобнее использовать степени числа 2. 1024 – это 2 в 10 степени. Мегабайт – это чуть больше 1 миллиона байтов, 1048576.
Как только компьютеры стали бытовыми устройствами, неординарность расчёта объёма информации стала приводить к недопонимаю со стороны пользователей, живущих в мире традиционных «десятичных» ценностей. Как следствие, вот уже несколько лет производители карт памяти и жёстких дисков пишут на своей продукции объём, имея в виду обычные значения приставок кило и мега (т.е. кратных 1000). А вот операционные системы семейства Windows, к примеру, продолжают, использовать производные от степеней двойки. Купив жёсткий диск на 2 ТБ и установив его в Windows-компьютер, пользователь увидит лишь 1,8 ТБ – никакого тебе закона сохранения. И немалая разница в 10%.
Была, правда, сделана попытка победить путаницу вводом для бинарных приставок своих вариантов киби, меби, гиби и так далее, но в действительности их используют крайне редко.
Импрессионизм, доведенный до автоматизма
До сих пор мы говорили о переводе в цифровой вид абстрактных сущностей – чисел и символов. С изображениями, а также звуком есть важный нюанс. Как бы тщательно мы не старались свести к перечню отдельных числовых значений всё разнообразие красок и звуков, всё равно цифровой вариант будет грубым упрощением. Хорошая новость в том, что при достаточно детальном переводе аналогового цвета или звука в «цифру» мы перестаём улавливать на глаз и слух разницу между реальностью и компьютерной её копией.
Начнём с того, что мы видим. Первое огрубление цифрового изображения в том, что видимую картинку нужно свести к прямоугольнику с определённом количеством точек по длине и ширине, чего нет в мире, воспринимаемом глазом. В матрице цифрового фотоаппарата и матрице компьютерного монитора ограниченное количество точек. Поднесите к монитору лупу, и эти точки станут видимыми. От количества точек в компьютерном изображении зависит, насколько мелкие детали удастся разглядеть на изображении – чем больше, тем чётче. Чем-то это напоминает художественные произведения импрессионистов, разумеется, не подозревавших о компьютерах, но стремившихся с помощью мелких мазков и точек передать все богатство цвета и света реального мира.
Поначалу компьютеры работали с монохромными изображениями, и для каждой их точки нужно было указать, чёрная она или белая. Соответственно, для каждой точки хватало 1 бита информации, а такой набор цветов (цветовую глубину) называют однобитным. Для 2-битовой глубины цвета получаем 4 возможных оттенка (00, 01, 10, 11), для 4-битовой – 16, для 8-битовой – 256. В большинстве случаев, на чёрно-белом изображении с 256 оттенками серого глаз видит все цветовые переходы плавными. Объём такого изображения на компьютере равен произведению количества точек в нём на 8 бит или на 1 байт. Вот пример. Одно из стандартных разрешений мониторов – 1024 на 768 точек или всего 786 432 точек. Чёрно-белое 8-битное изображение в таком разрешении займёт 786 432 Б или почти 0,8 МБ.
Цветное изображение компьютерных мониторов формируется смешением трёх базовых цветов – красного, зелёного и синего. Такой формат формирования цвета обозначают аббревиатурой RGB – производной от английских слов red, green и blue. При 256 оттенках на каждый цвет получим, во-первых, всего 256 х 256 х 256 = 16,7 млн разных цветов, а, во-вторых, 24 бита или 3 байта информации на одну точку изображения. В приведённом выше примере 24-битное цветное изображение замет уже почти 2,5 МБ. 24-битный цвет – стандарт для современных компьютеров и смартфонов. К слову говоря, человеческий глаз может улавливать около 10 млн оттенков, а потому 16,7 млн и 24-битная цветовая глубина – это с запасом.
На деле, компьютерные изображения почти всегда занимают намного меньше места, чем стоило бы ожидать из приведённых только что математических выкладок. За счёт различных алгоритмов подчас удаётся уменьшить объём графических файлов в несколько раз. Для этого, в основном, используют две хитрости.
Первое. Если все точки части изображения одного и того же цвета, нет смысла описывать цвет каждой точки по отдельности: его указывают один раз для группы точек. Вторая хитрость опирается на особенности человеческого зрения. Иногда за счёт небольшого и незаметного на глаз искажения цветов компьютерного изображения можно увеличить количество точек одинакового цвета в нём, а потом воспользоваться хитростью номер один. Если нам нужно сильнее уменьшить объём графического файла, мы вносим в него больше искажений, хотя с каждыми таким шагом повышается риск сделать качество изображения неприемлемым. Примерно так создаются графические файлы в популярном формате Jpeg. Две версии одной и той же фотографии ниже сделаны именно в этом формате, один файл в 8 раз больше другого, но и разница в качестве налицо.
В целом, «легкие» цифровые фотографии имеют меньшее число точек (разрешение) и более низкое качество, выражающееся в видимых искажениях и размытии изображения.
Принципиальной разницы между статичными цифровыми изображениями и цифровым видео нет, ведь видео – это лишь череда изображений.
Звуки в цифрах
Живой звук состоит из непрерывной череды звуковых колебаний, и идеальная его оцифровка – разбивка исходного звука на бесконечное число мгновений, в каждое из которых замеряется амплитуда звуковой волны. Идеал, конечно, невозможен, и мы снова вынуждены огрублять. Для приемлемого качества цифрового звука за секунду делается десятки тысяч замеров амплитуды звуковой волны, а соответствующее качество цифрового звука называют частотой дискретизации, измеряемой в герцах. Скажем, частота дискретизации звукового файла в 96 кГц означает, что измерения амплитуды для данного файла производилась с частотой почти 100 000 раз в секунду. Каждый такой замер – аналог точки цифрового изображения.
Точность измерений амплитуды тоже влияет на качество цифрового звука. Чем больше предусмотрено различных уровней амплитуды (по аналогии с числом оттенков цвета), тем меньше будет искажение оригинального звука. Приемлемую точность подбирали опытным путём, ориентируясь на возможность человека уловить несовершенство цифрового звука на слух. В итоге, оказалось, что если каждое измерение амплитуды звука записывать 16-ю битами информации (более 65 тысяч различных вариантов), то на слух искажения будут почти незаметными. Говорят, что у такого цифрового звука разрядность составляет 16 бит. Для сверхточного описания живого звука иногда проводят более точную оцифровку с разрядностью 24 или даже 32 бита.
Для обычного формата аудио-CD была выбрана разрядность 16 бит при частоте дискретизации 44,1 кГц. Наученные предыдущими разделами этого обзора, мы легко подсчитаем, какой объем занимает секунда такого звука: 44,1 тысячи измерений/с х 16 бит = 705600 бит = 88,2 КБ. Трёхминутная музыкальная композиция в таком качестве заняла бы на диске около 16 МБ.
Как и в случае с изображениями, наши подсчёты не соответствуют опыту: как правило, одна композиция занимает в 2-5 раз меньше места на ваших дисках. Дело в том, что и для цифрового звука придуманы алгоритмы сжатия. Без потери качества звук можно сжать не более чем на четверть. Сжатие с потерями качества опирается на несовершенство наших органов восприятия: как и в случае с изображениями, сжатия добиваются путём внесения небольших искажений. Если с этим не усердствовать и оставлять искажения неразличимыми на слух, то исходный звуковой файл можно сжать чуть ли не в 10 раз.
****
Все прочие аналоговые величины, скажем, давление или температуру, можно оцифровать по базовым принципам, применяемым к зрительным образам и звуку: всегда ищется баланс между стремлением к точному соответствию и разумностью, диктуемой конкретной задачей. Скажем, для того, чтобы одеться по погоде, достаточно знать температуру в единицах градусов, а в физическом опыте могут потребоваться измерения с точностью до тысячных долей.
Для оцифровки окружающего нас мира придуманы десятки приборов и сотни программ. Фотоаппарат, видеокамера, сканер, микрофон и даже радиотелескоп можно смело отнести к таким приборам, умеющим при поддержке сложных алгоритмов и компьютеров расщеплять тот или иной вид информации на нули и единицы.
Цифровая информация обладает рядом преимуществ, которые с лихвой компенсируют некоторое её несоответствие действительности: «цифру» можно копировать, передавать на расстояния, легко модифицировать. Благодаря цифровой информации появились интернет, YouTube, смартфоны и селфи-палки. И сколько всего ещё появится в будущем!