Начинаем цикл статей о видео, в котором наш СЕО Николай просто и популярно объясняет о том, что такое цифровое видео и как оно устроено.
Аналоговое и цифровое видео
Видео может быть аналоговым и цифровым.
Вся информация из реального мира вокруг нас аналоговая. Волны в океане, звук, плывущие в небе облака. Это непрерывный поток информации, который не разделен на части и его можно представить в виде волн. Люди воспринимают именно аналоговую информацию из окружающего мира.
Старые видеокамеры, которые вели запись на магнитные кассеты, записывали информацию в аналоговом виде. Магнитофоны на бобинной пленке и кассетах работали по тому же принципу. Магнитная пленка пропускалась через магнитные головки проигрывателя, и это позволяло воспроизводить звук и видео. Виниловые пластинки тоже аналоговые.
Воспроизводились такие записи строго в том порядке, в котором были записаны. Дальнейшее редактирование было сильно затруднено. Ровно как передача таких записей в интернете.
С повсеместным распространением компьютеров практически всё видео представлено в цифровом формате, в виде нулей и единиц. Когда вы снимаете видео на телефон, оно преобразуется из аналогового формата в цифровой и сохраняется в памяти, а при воспроизведении происходит обратное преобразование из цифрового в аналоговый формат. Это позволяет передавать видео по сети, хранить на жестком диске, редактировать и сжимать его.
Из чего состоит цифровое видео
Видео состоит из последовательности картинок или кадров, которые, быстро сменяясь, создают ощущение того, что на экране двигаются объекты.
Пример того, как делается видео.
Частота кадров (framerate)
Кадры на экране меняются с определенной скоростью. Количество сменяемых кадров в секунду — частота кадров или фреймрейт. У такого знакомого для геймеров термина, как FPS, ноги как раз растут отсюда. Стандарт для ТВ — 24 кадра в секунду, а для IMAX в кинотеатрах — 50 кадров в секунду.
Чем выше количество кадров в секунду, тем больше деталей можно разглядеть при быстро движущихся на видео объектах.
Разница между 15, 30 и 60 FPS.
Пиксель (pixel)
Все дисплеи на телевизорах, планшетах, телефонах и других девайсах состоят из маленьких светящихся лампочек — пикселей. Скажем, что каждый пиксель может отображать один цвет (технически разные производители реализуют это по-разному).
Для того, чтобы отобразить изображение на дисплее, нужно, чтобы каждый пиксель на экране светился определенным цветом.
Благодаря этому техническому устройству экранов, в цифровом видео каждый кадр представляет собой набор цветных точек или пикселей.
Количество таких точек по горизонтали и вертикали называется разрешением картинки. Записывается разрешение в виде 1024х768. Первая цифра — количество пикселей по горизонтали, а вторая — по вертикали.
Разрешение всех кадров в видео одинаковое и это в свою очередь называется разрешение видео.
Давайте рассмотрим один пиксель подробнее. На экране он представляет собой светящуюся точку определенного цвета, а в самом видеофайле пиксель хранится в виде цифровой информации (чисел). С её помощью устройство поймет, каким именно цветом должен засветиться пиксель на экране.
Цветовые пространства
Существуют разные способы представления цвета точки в цифровом формате, и эти способы называются цветовыми пространствами или color spaces.
Цветовое пространство устроено таким образом, чтобы любой цвет был представлен точкой, имеющей определенные координаты в этом пространстве.
К примеру, цветовое пространство RGB (Red Green Blue) является трехмерным цветовым пространством, где каждый цвет описан набором из трёх координат — каждая из них отвечает за красный, зелёный и синий цвета.
Любой цвет в этом пространстве представлен в виде комбинации красного, зеленого и синего цветов.
Вот пример изображения разложенного на составляющие цвета в RGB:
Существует множество цветовых пространств, и они отличаются количеством цветов, которые можно закодировать с их помощью, и объемом памяти, который требуется для представления данных о цвете пикселя.
Самые популярные пространства это RGB (используется в компьютерной графике), YCbCr (используется в видео) и CMYK (используется в полиграфии)
CMYK работает схожим с RGB образом, только базовых цвета уже четыре: голубой, пурпурный, жёлтый и черный (Cyan, Magenta, Yellow, Key или Black).
RGB и CMYK пространства не очень эффективны, так как хранят избыточную информацию.
Для видео используется более эффективное цветовое пространство, которое использует особенности зрения человека..
Органы зрения человека менее чувствительны к цвету предметов, чем к их яркости.
В левой части изображения цвета квадратов A и B на самом деле одинаковы. Нам кажется, что они разные. Мозг заставляет нас уделять больше внимания яркости, а не цвету. С правой стороны между обозначенными квадратами есть перемычка того же цвета — поэтому мы (т.е. наш мозг) легко определяем, что, на самом деле, там один и тот же цвет.
Используя эту особенность зрения, можно отобразить цветовое изображение, отделив светимость от цветовой информации. Впоследствии половину или даже четверть цветовой информации можно просто выбросить при сжатии ( представить светимость с большим разрешением, чем цвет). Человек не заметит разницы, а мы существенно сэкономим на хранении информации о цвете.
О том, как именно работает сжатие цвета, мы поговорим в следующей статье).
Наиболее известным пространством, которое работает таким образом, является YCbCr и его вариации: YUV и YIQ.
Вот пример изображения разложенного на составляющие в YCbCr. Где Y' — компонента яркости, CB и CR являются синим и красным цветоразностными компонентами.
Именно YCbCr используется при кодировании цветов в видео. Во-первых, это цветовое пространство позволяет сжимать цветовую информацию, а во-вторых, оно хорошо подходит для черно-белых видео (например камер видеонаблюдения), так как информация о цвете (CB и CR) может быть просто опущена.
Глубина цвета (Bit Depth)
Глубина цвета говорит о том сколько места (бит) выделяется в памяти для представления цвета одного пикселя — чем больше бит, тем большее количество цветов можно закодировать и тем больше места в памяти будет занимать каждый пиксель. Чем больше цветов, тем лучше выглядит картинка.
Долгое время для видео было стандартом использовать глубину цвета 8 бит (Standard Dynamic Range или SDR видео). Сейчас все чаще используются 10 бит или 12 бит (High Dynamic Range или HDR видео).
При этом надо учитывать, что в разных цветовых пространствах, при одинаковом количестве бит, выделенных на пиксель, можно закодировать разное количество цветов.
Битрейт (bitrate)
Битрейт — количество битов в памяти, которое занимает одна секунда видео. Чтобы его рассчитать для несжатого видео, нужно взять количество пикселей в картинке или кадре, умножить на глубину цвета и умножить на количество кадров в секунду:
1024 пикселей Х 768 пикселей Х 10 бит Х 24 кадра в секунду = 188743680 бит в секунду
Это 23592960 байта, 23040 мегабайта или 22,5 гигабайта в секунду
Т.е. видео продолжительностью 5 минут займет в памяти 6750 гигабайт или 6,59 терабайт.
Это подводит нас к тому, зачем нужны и почему появились способы сжатия видео. Без сжатия такие объемы информации невозможно хранить и передавать по сети. Ролики на YouTube загружались бы вечность.
Комментарии