31 августа 2015

Битники

О том, как текст, картинки и звук переводятся в цифровую форму

Нынешний расцвет мобильных гаджетов, компьютеров и Всемирной паутины называют цифровым веком. Это связано с бумом цифровой информации: всё, что мы читаем и пишем, видим и слышим, переводится в форму, понятную компьютеру. Компьютер, в свою очередь, открывает нам целую вселенную возможностей по работе с такой информацией – копировать, передавать, хранить любые дынные становится все проще. МТС/Медиа поможет разобраться в теории создания цифрового мира.

Двоичная и десятичная системы счисления

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

На самом базовом уровне компьютер, несмотря на приписываемый молвой интеллект, оперирует прямо-таки примитивными категориями: да – нет, делать – не делать. В дебрях микросхем этот дуализм выражается в наличии или отсутствии электросигнала. Всё, что должен переварить компьютер, ему предварительно нужно «разжевать», разбить на простые элементы, свести к набору из двух противоположных понятий.

«Нет» в компьютерном языке заменяет цифра 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, смартфоны и селфи-палки. И сколько всего ещё появится в будущем!

Подписка на новости

Новое и лучшее