Saturday, March 15, 2008 11:16 AM
by
Barim
Несколько лиц на одном экране
Как известно Office Communication Server 2007 позволяет проводить видеоконференции в режиме селекторного совещания. То есть мы видим на экране максимум 2 картинки. Но многие задают вопрос, как бы вывести несколько видео потоков. Вот результат внутреннего обсуждения.
Многоточечные видеоконференции (multipoint conferences) требуют наличия MCU (Multipoint Control Unit). В OCS роль MCU играет A/V conferencing server role.
MCU может работать в одном из двух режимов (стандартов): VAS (Voice Activated Switching) и CP (Continuous Presence).
В режиме VAS MCU принимает все входящие видео потоки и отслеживает в режиме реального времени, какой из потоков соответствуют текущему оратору (отслеживая голосовую активность в аудиоканалах). Этот конкретный поток передается обратно всем участникам. Поэтому все видят только того, кто говорит в данный момент.
В режиме CP MCU принимает все входящие видео потоки и комбинирует их вместе, составляя компонентный кадр (обычно 2х2, но многие MCU – например, Polycom Accord - поддерживают более сложные раскладки, например крупный кадр слева вверху в обрамлении 5 кадров поменьше внизу и справа, т.е. всего на 6 картинок). Этот итоговый поток передается обратно всем участникам. Понятно, что итоговый исходящий поток требует гораздо большую ширину полосы, чем любой из входящих, кроме того нужны немалые ресурсы для процессинга данных, поэтому работа в CP режиме приводит к сильной нагрузке на сервер и на сеть.
Простая арифметика: предположим, мы имеем 4 участника видеоконференции, каждый передает 384 Kbps видео (минимально разумная ширина полосы, при которой получится изображение минимально приемлемого качества - считается легко: количество пикселей в кадре (например, CIF = 352x288) * количество памяти на пиксель (обычно 24-битный цвет - это 3 байта) * количество кадров в секунду (30 - высокое качество, 15 - приемлемое) / коэффициент сжатия кодека (может быть разным от 3-5 до 30-50). Это значит, что в MCU приходит суммарный входящий поток в 4х384 = 1.5 Mbps. Все эти картинки собираются вместе (как раз и получится 1.5 Mbps, если их искусственно не уменьшать и урезать качество) и каждый такой поток передается обратно каждому пользователю. Таким образом, исходящий из MCU поток данных уже потребует 4x1.5 = 6 Mbps. Суммарная используемая полоса - 7.5 Mbps. И это всего лишь видеоконференция на 4 человека с не особо качественной картинкой! Режим VAS для той же конференции потребовал бы всего лишь 3 Mbps.
Я думаю, это наглядно объясняет, почему режим CP так сложно использовать, особенно если пользователей оказывается больше 4 (требуемая ширина полосы растет пропорционально квадрату числа пользователей). Это, в частности, объясняет и почему OCS поддерживает только режим VAS в своей MCU.
Что же касается сложной картинки, генерируемой RoundTable, то тут весь процессинг происходит внутри самого устройства, благодаря чему мы и имеем панорамную картинку участников с выделенным кадром активного оратора. Никакого отношения к multipoint conferencing это вообще не имеет.
Однако недавно появилась возможность проинтегрировать решение от Tandberg c OCS 2007.
http://www.tandberg.com/collateral/tandberg_microsoft_solution_sheet.pdf