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

Исходный материал

Из курса биологии известно, что сетчатка человеческого глаза состоит примерно из 120 млн палочек и 6 млн колбочек. Палочки отвечают за четкость изображения и реагируют на яркость, а колбочки обеспечивают цветовое восприятие, причем по поглощению различных длин волн видимой части спектра различают три типа колбочек. Как вы, вероятно, уже догадались, эти длины волн соответствуют красному, зеленому и синему цветам. (Да простят меня биологи за столь примитивную трактовку зрительных процессов!)

Ввиду таких физиологических особенностей глаза вся видеотехника базируется на трех главных, или опорных цветах (RGB-сигналы). Вместе с яркостной составляющей они образуют так называемый композитный видеосигнал. Но передавать его на большие расстояния очень накладно: для этого потребуется пропускная способность не менее 540 Мбит/с.

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

Y = 0,299R + 0,587G + 0,114B

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

Другой особенностью видеосигнала является то обстоятельство, что «картинка» не считывается и не воспроизводится вся сразу. Теоретически такой режим возможен, но это очень неэффективное и чрезвычайно дорогое решение. На практике применяется метод сканирования изображения — слева направо по строкам и сверху вниз по кадру. Для того чтобы человеческий глаз не мог различить мелькание, изображение должно обновляться не менее 50 раз в секунду.

В современной видеотехнике применяется чересстрочный режим сканирования каждого кадра: сначала четные, а затем нечетные строки. В таком случае частоту обновления можно снизить до 25 кадров в секунду (теперь это полукадры). Благодаря инерционности зрения человек не замечает такого «подвоха», зато при этом значительно снижаются требования к полосе передачи.

Завершая рассказ об основах кодирования видеосигнала, упомяну всем известные системы цветного телевидения, получившие распространение в мире, — NTSC, PAL, SECAM. Они различаются по числу элементов разложения, методам кодирования, полосе видеосигнала, типу модуляции и т. д. Для нашей темы данные различия не важны, но отметим, что кодеки видеоконференц-связи обычно создаются с учетом стандартов PAL и NTSC.

Видеокодеки для ВКС

Базовым стандартом сжатия видеосигнала является Н.261, принятый еще в 1990 г. Затем ITU-T разработал две очередные рекомендации, посвященные этой проблеме. Кодек Н.262 включает в себя различные шаблоны, или профили для кодирования при передаче изображения разных форматов по различным сетям. Но в системах видеоконференц-связи он пока не нашел широкого применения.

Н.263 практически полностью идентичен Н.261, однако благодаря улучшенному алгоритму сжатия требует гораздо меньше пропускной способности при одинаковом качестве изображения. Ниже речь будет идти о рекомендации Н.261 с указанием особенностей Н.263.

Чтобы нивелировать различия между региональными стандартами телевизионных сигналов, использующих 625 или 525 линий в кадре, был введен общий промежуточный формат CIF (Common Intermediate Format). Он характеризуется разрешающей способностью 352x288 пикселов, частотой обновления до 30 кадров в секунду и отсутствием чересстрочной развертки. Обязательным для всех кодеков является формат QCIF (Quarter CIF), соответственно имеющий разрешение 176x144 пиксела, что и отражено в его наименовании.

Рекомендация Н.263 дополнена еще тремя форматами: sub-QCIF, 4CIF и 16CIF. В настоящее время форматы выше CIF (см. таблицу) используются только для передачи статического изображения.

Каждый формат кодируется одной яркостной (Y) и двумя цветоразностными (CB и CR) составляющими, параметры которых определяются в соответствии с рекомендацией ITU-R 601. Таким образом, кадры изображения можно рассматривать как трехслойный пирог.

Для яркостного сигнала Y каждый кадр CIF имеет разрешающую способность 352х288 пикселов, а каждая цветоразностная составляющая — 176х 144 пиксела. Суммарная скорость потока при восьмиразрядном кодировании значения каждого пиксела и при частоте 30 кадров в секунду составляет более 36 Мбит/с. Стандарты Н.261/263 требуют, чтобы была обеспечена передача оцифрованного видеосигнала по каналу nx64 кбит/с (где n находится в пределах от 1 до 30), но при этом рекомендуют данный диапазон еще несколько расширить — от 40 кбит/с до 2 Мбит/с.

Разложение кадра формата CIF

На рис. 1 показан принцип разложения кадра на блоки для формата CIF. Используется иерархическая четырехуровневая схема: кадр — группа блоков (GOB, group of blocks) — макроблок (MB, macroblock) — блок. Как видно из рисунка, кадр формата CIF содержит 12 групп блоков по 33 макроблока в каждой, а формат QCIF — только три группы. Рекомендация Н.263 описывает в составе кадра 18 групп блоков для CIF и 9 для QCIF.

Уменьшить скорость цифрового потока можно путем снижения числа кадров. Допускается изъятие от одного до трех кадров между двумя переданными. В результате кодеки могут поддерживать 30, 15, 10 и 7,5 кадров в секунду. Выбор скорости обновления возлагается, например, на рекомендацию Н.221, которая определяет процедуры передачи потока данных видеоконференц-связи. Но этот способ уменьшения трафика существенно не влияет на результирующую скорость. Он применяется вместе с другими, более эффективными приемами сжатия сигнала.

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

В рекомендации Н.261 предсказание осуществляется по всем пикселам блока, а в Н.263 — по половине пикселов, что заметно ускоряет процесс обработки. Кроме того, в Н.263 допускается предсказание конца вектора за пределами анализируемого кадра.

Различают опорные кадры (их часто называют INTRA или I-кадрами) и кадры, полученные в результате предсказания (INTER или Predictive — P-кадры). В какой момент времени эти кадры нужно формировать, рекомендация Н.261 не уточняет (это возложено либо на Н.245, либо на Н.230, Н.234 и Н.242), но вполне логично, что I-кадры должны быть сформированы в случае значительных ошибок предсказаний.

Рекомендация Н.263 допускает еще один режим предсказания — с помощью В-кадров (РВ-режим). В-кадры широко используются в MPEG и Н.262. Они получаются в результате двунаправленного предсказания (bidirectionally predictive) предыдущего и последующего Р-кадров. Вполне очевидно, что В-кадр содержит небольшой объем информации, поэтому данный метод позволяет значительно снизить скорость передачи при заданном качестве.

После проведения анализа, изъятия «лишних» кадров, вычисления векторов и ошибок осуществляется операция квантования и кодирование полученных значений. Это происходит на уровне блоков.

Как описывалось выше, макроблок состоит из четырех яркостных и двух цветоразностных блоков. Сначала сканируются четыре блока яркостной составляющей (слева направо и сверху вниз), а затем CB и CR.

Зигзаг-сканирование пикселов блока Y

Каждый блок подвергается двумерному дискретно-косинусному преобразованию, являющемуся основой практически всех методов сжатия изображения. Сканирование пикселов внутри блока происходит зигзагообразно, как показано на рис. 2. Такой алгоритм обеспечивает длинные последовательности нулевых значений в полученной матрице коэффициентов. В дальнейшем этот массив уменьшается за счет «выбрасывания» нулевых значений, причем передается только информация о количестве нулей. Затем табличным методом происходит преобразование в кодовую последовательность с переменной длиной слова. Часто встречаемые значения кодируются словом меньшей длины. Таким образом дискретно-косинусное преобразование значительно уменьшает объем передаваемых данных.

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

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

Естественно, что заголовок макроблока также содержит свой порядковый номер в группе. Если в макроблоке нет полезной информации, он не передается. В заголовке передается тип информации, содержащейся в блоке, это может быть I-кадр или P-кадр (с компенсацией ошибки вектора или без нее). Блок не имеет заголовка, он содержит коды коэффициентов дискретно-косинусного преобразования и завершается символом окончания (EOB).

Рекомендация Н.261 определяет максимальное число битов для кодирования одного кадра. В формате CIF оно не должно превышать 256 кбит, в формате QCIF — 64 кбит. В среднем кадры формата CIF имеют следующие размеры:

I-кадр — 150 кбит,

P-кадр — 50 кбит,

B-кадр — 20 кбит (для стандартов Н.262 и Н.263).

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

Сравнение с MPEG

Стандарты MPEG (Moving Picture Experts Group, экспертная группа кинематографии) в отличие от Н.261—263 предназначены для одновременной передачи сжатых видео- и аудиосигналов. Сейчас довольно широко распространены стандарты MPEG1 и MPEG2, ведутся работы над следующими поколениями.

Описать MPEG1 очень легко: он чрезвычайно похож на стандарты сжатия видеосигнала для кодеков ВКС. В нем применяются такие же типы кадров (I, P и B) и практически идентичная техника кодирования на основе дискретно-косинусного преобразования. И даже скорость оцифрованного потока почти совпадает: в MPEG1 она ограничена 1,5 Мбит/с.

Но существуют и некоторые отличия. Например, MPEG-1 поддерживает больше компонентных форматов видеосигнала и использует разрешение, известное под названием SIF (Source Input Format, формат источника сигнала), — 352х240 пикселов при 30 кадрах в секунду. Из-за большого объема вычислений кодек стандарта MPEG1 требует гораздо больше аппаратно-программных ресурсов, чем построенный согласно рекомендациям Н.261/263.

Стандарт MPEG2 поддерживает более высокие разрешения, чем MPEG1, но и полосы пропускания требует как минимум в четыре раза большей. Он в основном предназначается для телевизионного вещания.

* * *

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


Форматы видеокодеков
Формат кадраЧисло пикселов
Яркостный компонентЦветоразностный компонент
16CIF1408x1152704x576
4CIF704x576352x288
CIF352x288176x144
QCIF176x14488x72
sub-QCIF128x9664x48