`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Видеопотоки. Технологии сжатия

0 
 
Вообще говоря, доставка видео по IP-сетям была возможна и ранее. Правда, для этого требовалось сначала загрузить соответствующий файл, а уже затем его воспроизводить. Существенными недостатками этого метода были длительное время ожидания полной загрузки файла, необходимость наличия места на жестком диске и трудности с соблюдением авторских прав, поскольку пользователь мог свободно распоряжаться скопированным файлом. Однако и достоинства были немалые -- метод не предъявлял высоких запросов к пропускной способности сети и к качеству обслуживания (QoS). В то же время потоковое видео предполагает возможность воспроизведения в процессе загрузки файла. А это накладывает весьма жесткие требования на данные характеристики.

Дело в том, что качество цифрового видео зависит от трех параметров: частоты кадров, глубины цвета и разрешения. Необходимая частота кадров определяется такой особенностью человеческого мозга, как инертность зрительного восприятия -- образ остается на сетчатке глаза в течение приблизительно 0,1 с, даже если сам объект исчез из поля зрения или был заменен на другой. Поэтому если последовательные кадры сменяют друг друга с частотой более чем 10 fps (frame per second), то создается эффект непрерывного движения. Для воссоздания движения без потерь стандарт предписывает частоту 30 fps. Глубина цвета может кодироваться одним, двумя или тремя байтами. Что касается разрешения, то его устанавливают 640 480 пикселов для полного экрана, 320 240 для четверти и т. д. Несложный подсчет показывает, что для доставки полноэкранного видео необходима пропускная способность 216 Mbps. Таким образом, даже коммутируемая сеть Fast Ethernet не справится с передачей полноценного видео в режиме реального времени, а что уже говорить о модемах.

Кроме высокой пропускной способности, от пакетной сети требуются также своевременная доставка пакета и строгая очередность. Достичь этого в Internet весьма проблематично. Протокол TCP/IP гарантирует получение пакетов в нужной последовательности, но является слишком медленным, а UDP хотя и более быстрый, но также не предоставляет необходимый уровень QoS для видеотрафика.

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

Человеческий глаз реагирует на энергию света в диапазоне длин волн примерно от 400 до 700 нм. Восприятие происходит с помощью фоторецепторов -- небезызвестных колбочек и палочек. Палочки чувствительны к интенсивности света. По сферической поверхности сетчатки распределено примерно 120 млн. палочек. За цвет отвечают колбочки, которых всего лишь 8 млн. Результатом этого неравенства является большая чувствительность глаза к изменениям яркости, чем к цвету. Этот факт учитывается при разработке алгоритмов сжатия цветного изображения, обсуждаемых ниже. Дискретизация цвета происходит с более низкой частотой, чем яркости. Для определения цвета имеются три типа колбочек. В соответствии с этим необходимо три цвета, например красный, зеленый и синий (RGB), для симуляции чувствительности глаза к цвету. Нужно учитывать тот факт, что в природе цвета как такового не существует -- он результат совместной деятельности глаза и мозга. Процесс обработки цветов является аддитивным в том смысле, что мозг может создавать новый цвет из компонентов: например, сложение красного и синего дает в результате пурпурный цвет, который отсутствует в спектре разложения белого. Эти свойства восприятия цвета человеком используются в схемах сжатия, что обеспечивает эффективные методы хранения, передачи и воспроизведения видеоданных.


Аналоговое видео

В аналоговой форме видеоинформация представляется как кадры с флуктуирующими значениями напряжения. В ранних аналоговых видеосистемах индивидуальный видеосигнал -- яркость, синхроимпульсы и цвет -- комбинировались в единый сигнал, получивший название полного, или композитного (composite video). Такой сигнал мог быть передан по одному проводнику. Этот метод давал очень плохое качество изображения. Поэтому был разработан составной, или компонентный, метод представления видеосигнала, когда он разбивался на отдельные составляющие (component video). Наибольшее распространение получили две системы: двухпроводная Y/C и RGB, требующая трех проводов.

Система Y/C отделяет яркость (Y) от цвета (C). Такой подход, называемый S-Video, используется в видеокамерах Hi-8 и Super VHS. RGB-система разделяет видеосигнал на три компонента -- красный (R), зеленый (G) и синий (B) -- и применяется в ЭЛТ-мониторах.


Цифровое видео

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

Видеопотоки. Технологии сжатия
Рис. 1
Цветное изображение на экране монитора, имитирующее восприятие человеческого глаза, создается с помощью пикселов, цвет которых определяется путем сложения трех базовых цветов RGB с различной интенсивностью. Цифровое видео, однако, часто использует формат, известный как YCrCb, где Y является яркостью (Luma), Cr и Cb представляют разности R -- Y и B -- Y соответственно. Вычитание яркости из значений R и B дает "чистый" цвет. Вместе Cr и Cb называют сигналом цветности (Chroma). На рис. 1 приведены примеры выборок цветного изображения. Здесь 4 указывает, что значение яркости выбирается четыре раза, а цветность один или два раза при некоторой базовой частоте (обычно 3,375 MHz). Такой подход к формированию цифрового цветного изображения позволяет уменьшить объем файлов без существенного ухудшения восприятия картинки человеческим глазом. Так как глаз более чувствителен к изменениям яркости, чем цвета, то обычно для ее представления используют больше бит, чем для цветовой информации. В этой схеме каждый пиксел имеет собственное значение яркости, но значение цветности может быть общей для группы пикселов.

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


Масштабирование

Преобразование изображения из цветового пространства RGB в YCrCb уменьшает размер файла в 2--3 раза, что недостаточно для передачи в режиме потока для большинства современных локальных и сетей доступа. Для дальнейшего сокращения размера файла применяют масштабирование по всем трем параметрам, определяющим качество изображения: частоте кадров, разрешению и глубине цвета. Как уже упоминалось выше, для передачи полноэкранного видео с частотой кадров 30 fps, разрешением 640 480 и глубиной цвета 24 бита необходима пропускная способность 216 Mbps, но если эти значения уменьшить до соответственно 15 fps, 320 240 и 16 бит, то потребуется "лишь" 18 Mbps, что тоже для большинства случаев неприемлемо. Конечно, можно еще уменьшать значения этих параметров, однако получаемое в результате качество изображения оставляет желать лучшего. Чтобы добиться дальнейшего сокращения размера файлов, применяют различные методы сжатия, или компрессии.


Стандарты сжатия

Существование современного потокового видео обязано именно развитым технологиям сжатия медиафайлов. Оно выполняется с помощью так называемых кодеков (от английского codec -- COmpression/DECom­pression). Мы будем в дальнейшем использовать также термины "кодирование/декодирование" в качестве синонимов "компрессия/декомпрессия" (кстати, некоторые источники расшифровывают codec как enCOding/DECoding).

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


H.263

Стандарт был разработан ITU в 1994 г. и предназначен для видеоконференций и видеотелефонии. Он весьма нетребователен к полосе пропускания -- всего 20--30 Kbps. Остановимся вкратце на основных шагах алгоритма.

Исходные видеоданные попадают в блок анализа параметров движения (motion estimation) и блок компенсации движения (motion compensation). Цель обработки -- закодировать только отличия последующего фрейма от предыдущего. В процессе анализа параметров движения кодек сокращает размер кодируемого файла, выделяя области изображения фрейма, которые изменились по сравнению с предыдущим. Компенсатор движения формирует матрицу пикселов размером 16 16, или макроблок. В свою очередь, макроблок состоит из четырех блоков -- матриц 8 8. Реально в последующем фрейме передается именно макроблок. Он является результатом вычитания макроблока предыдущего фрейма из соответствующего макроблока текущего. Полученная разность затем кодируется.

Далее данные поступают в блок дискретного косинус-преобразования (Discrete Cosine Transformation -- DCT). Оно заключается в аппроксимации дискретной функции двух переменных, заданной на блоке пикселов 8 8, двойным конечным рядом Фурье, содержащим только косинусы "пространственных частот". Коэффициенты разложения (амплитуды) подбираются таким образом, чтобы значения аппроксимирующей функции совпадали со значениями исходной функции в точках дискретизации. Результатом DCT является матрица амплитуд размерностью 8 8. Ее особенность заключается в том, что амплитуды, которые располагаются под побочной диагональю и соответствуют высоким частотам, близки или равны нулю. Поэтому для дальнейшей обработки матрица амплитуд преобразуется в вектор с помощью зигзаг-сканирования -- упорядочения элементов, начиная с левого верхнего угла, зигзагом параллельно побочной диагонали (а11, а12, а21, а31, ..., а88). Таким образом, амплитуды, соответствующие низким частотам, являются начальными элементами вектора, в конце же вектора располагаются значения, близкие к нулю. Дискретное косинусоидальное преобразование позволяет менять степень сжатия без заметной потери качества изображения.

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

Видеопотоки. Технологии сжатия
Рис. 2
Наконец, вектор попадает в энтропийный кодировщик (Entropy Encode), где выполняется групповое кодирование. Оно представляет собой разбиение вектора на пары (n, m), где n указывает на число пропускаемых нулей, а m -- значение, которое необходимо записать в следующую ячейку (например, вектор 75, 54, 0, 0, 0, 35, 0, - 23 ... записывается как 0,75, 0, 54, 3, 35, 1, - 23 ... ). В завершение групповые коды сжимаются по алгоритму Хаффмана, на чем мы не будем останавливаться. В результате получается поток бит, который и передается. Заметим, что в течение всего процесса текущий фрейм сохраняется в буфере (Frame Store). Блок-схема алгоритма приведена на рис. 2. В процессе декомпрессии, в общем, выполняется обратная последовательность преобразований.

Международная организация по стандартизации (ISO) одобрила серию видеокодеков, известную как MPEG. Название этой серии обязано рабочей группе ISO -- Moving Pictures Expert Group. Группа разработала несколько стандартов сжатия -- MPEG-1, MPEG-2 и MPEG-4, к краткому рассмотрению которых мы и переходим.


MPEG-1 и MPEG-2

В общем, технология сжатия видеоданных в MPEG состоит из двух частей: уменьшение избыточности и сжатие отдельных изображений.

Стандарт MPEG-1 был предложен в 1992 г. и предназначался в основном для видеоконференций, видеофонов, компьютерных игр и CD-ROM первой генерации. Он обеспечивал видео потребительского качества и аудио качества CD-ROM при скорости передачи данных около 1,5 Mbps и частоте кадров 30 fps.

MPEG-кодирование является гибридом схем DCT и DPCM (Differential Pulse Code Modulation) с алгоритмом компенсации движения, подобным стандарту H.263. MPEG-1 использует линейный механизм кодирования в отличие от объектно-базированного. Это значит, что во фрейме не выделяются движущиеся и неподвижные объекты, а он обрабатывается как таковой. Удаление избыточной информации выполняется с помощью внутрифреймовой (intraframe com­pres­sion) и межфреймовой компрессии (interframe compression).

MPEG-кодирование оперирует в цветовом пространстве YCrCb. Это значит, что имеется раздельная информация о яркости и о цвете. Яркость каждого пиксела не подвергается компрессии. Что же касается цвета, то его значения усредняются по группе соседних пикселов. Это становится возможным благодаря невысокой чувствительности глаза к цвету, о чем уже упоминалось выше. MPEG-1 использует компрессию в соотношении 4:1 (заметим, что зеленый цвет получается при воспроизведении путем вычитания значений красного и голубого из значения яркости).

В процессе компрессии пикселы каждого фрейма организуются в блоки -- матрицы 8 8. Блок яркости содержит данные блоков оригинального изображения, а блоки цветности при коэффициенте сжатия 4:1 -- данные области 16 16, то есть четырех блоков яркости. Затем каждый блок подвергается ряду преобразо­ваний, аналогичных стандарту H.263. В результате получается так называемый I-фрейм (In­dependent frame), который может быть воспроизведен независимо от соседних фреймов.

Хотя серия I-фреймов обеспечивает наивысшее качество сжатия, все же требуемая для их передачи пропускная способность остается слишком большой. Для дальнейшего уменьшения трафика используется метод межфреймовой компрессии. Решение заключается в применении I-фреймов лишь в качестве опорных для группы изображений (Group Of Picture -- GOP), которая состоит из фреймов, содержащих только отличия от опорного. MPEG поддерживает два типа таких фреймов: P-фреймы (Predictive -- предиктивный) и B-фреймы (Bi-directional).

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

Видеопотоки. Технологии сжатия
Рис. 3
GOP может состоять только из I-фреймов; I-фреймов и P-фреймов или содержать все три типа. Обычно GOP включает 12 или 15 фреймов и начинается с I-фрейма, например IBBPBBPBBPBBPBB (рис. 3). Первый I-фрейм получается в результате сжатия фрейма-источника, следующими генерируются P-фреймы и, наконец, промежуточные B-фреймы. Затем порядок фреймов меняется с целью минимизировать требования к памяти для буферизации в декодере, а их первоначальная последовательность восстанавливается декодером при воспроизведении.

Стандарт MPEG-2 был принят в 1994 г. и разрабатывался с учетом обратной совместимости с MPEG-1. Он был значительно улучшен, однако не предназначался для замены последнего. Стандарт обеспечивал студийное качество для HDTV, кабельного телевидения и спутниковой передачи. MPEG-2 поддерживает разрешение от 720 480 до 1280 720 и частоту кадров 60 fps. Алгоритм сжатия усовершенствован, но в общем аналогичен MPEG-1.

MPEG-2 поддерживает две схемы кодирования, которые определяются нуждами приложения: переменную скорость передачи для обеспечения постоянного качества видео и разное качество при постоянной скорости передачи. Скорость передачи может изменяться от 2 до 10 Mbps, что позволяет воспроизводить 4Х CD-ROM. MPEG-2 был выбран в качестве основного стандарта для DVD-ROM. Еще одним существенным его отличием от MPEG-1 является поддержка технологии Transport Streams. Она предназначена для передачи видео по сетям с высоким уровнем ошибок. Потоки (Streams) состоят из уменьшенных пакетов фиксированной длины (188 байт), благодаря чему легко осуществлять контроль ошибок. Эта технология дает возможность использовать MPEG-2 для доставки видео по кабельному телевидению, АТМ и через спутники.


MPEG-4

Разработка этого стандарта была окончена в 1998 г., а в 1999 г. он получил статус международного. В отличие от двух предшествующих, в которых кодирование использовало линейный подход, MPEG-4 является объектно-базированным. Технология рассматривает каждый объект изображения как не зависимый от других, что в результате позволяет получить более высокую скорость сжатия. Использование индивидуальных объектов, связанных некоторым отношением в пространстве и времени, предоставляет ряд преимуществ. Одним из них является то, что к разным объектам могут применяться различные методы кодирования, в результате чего можно значительно повысить качество. К примеру, генерация движений головы лучше представляется с использованием анимационной техники, в то время как для изображения лучше представляется значениями пикселов.

Опишем конспективно некоторые основные части функциональной структуры MPEG-4. Прежде всего, это системная часть (System part). Она включает описание отношения между аудиовизуальными компонентами, или объектами, в частной сцене. Данное отношение можно разбить на два уровня. Бинарный формат для сцен (Binary Format for Scenes -- BIFS) описывает пространственно-временное расположение объектов в сцене. Это предоставляет возможность конечному пользователю интерактивно взаимодействовать с объектами, например в играх. Вторым уровнем являются дескрипторы объектов (Object Descriptors), которые определяют отношение между элементарными потоками (Elementary Streams), принадлежащими каждому объекту. Примером могут служить аудио- и видеопотоки видеоконференций.

Визуальная часть MPEG-4 имеет дело с закодированным представлением естественных и генерируемых компьютером визуальных объектов, в то время как звуковая часть отвечает за естественные и синтезированные аудиообъекты.

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

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

0 
 

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT