Подписка на видеоконференцсвязь с использованием потоков со множеством скоростей передачи битов

Иллюстрации

Показать все

Изобретение относится к области видеоконференцсвязи. Техническим результатом является обеспечение подписок на видеоконференции с использованием потоков с множеством скоростей передачи битов. Сервер видеоконференции может принимать видеопотоки от каждого клиента в видеоконференции и может принимать запросы на подписку от каждого клиента. Запросы на подписку могут включать в себя запросы на просмотр видеопотоков от конкретных других клиентов с заданным разрешением и/или частотой кадров. Сервер видеоконференции может сопоставлять принятые видеопотоки с запросами на подписку, чтобы послать подписавшимся клиентам необходимые им видеопотоки. Сервер может также запрашивать различные версии видеопотоков от участников (например, с другими разрешениями) и/или изменять видеопотоки, чтобы они лучше соответствовали запросу на подписку. 3 н. и 17 з.п. ф-лы, 6 ил.

Реферат

Уровень техники

Подписки на видеоконференцию предоставляют клиентам возможность выбрать участников, которых они хотят видеть. Для вызова видеоконференцсвязи можно использовать технологии интерактивной связи, которые предоставляют возможность взаимодействовать из двух и/или более местоположений посредством двунаправленных видео- и аудиопередач одновременно. В видеоконференциях может использоваться передача аудио и видео, чтобы организовать совместную встречу людей, находящихся в разных местах. Это может быть беседа между двумя лицами, находящимися в личных кабинетах (двухточечная связь), и/или можно задействовать несколько мест (многоточечная связь) с более чем одним человеком в больших помещениях в разных местах. Кроме аудио- и визуальной передачи проводимых встреч, видеоконференцсвязь можно использовать для совместной работы с документами, отображаемой компьютером информацией и «белыми досками». Аудио/видео передачи могут захватываться, записываться и оцифровываться с использованием процесса, известного как кодирование, передаваться через среду связи, такую как компьютерная сеть, в другое место, а также приниматься, декодироваться и отображаться другому участнику видеоконференции. С этим процессом совместимо множество стандартов кодирования/декодирования.

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

Сущность изобретения

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

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

Приведенное выше общее описание и последующее подробное описание предоставляют примеры и приведены только для разъяснения. Соответственно, приведенное выше общее описание и последующее подробное описание не следует рассматривать как ограничения. Кроме того, вдобавок к изложенным здесь признакам или их разновидностям могут быть предоставлены другие. Например, варианты осуществления могут быть направлены на различные совокупности и подсовокупности признаков, описанных в подробном описании.

Краткое описание чертежей

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

На чертежах:

фиг.1 - блок-схема среды видеоконференции;

фиг.2 - схема, иллюстрирующая различные конфигурации подписки на видео;

фиг.3 - схема, иллюстрирующая кодирование со множеством скоростей передачи битов (MBR);

фиг.4 - блок-схема способа предоставления подписок на видеоконференцию;

фиг.5 - блок-схема подпрограммы, используемой в способе по фиг.4, для выбора видеопотока, который соответствует запросу на подписку; и

фиг.6 - блок-схема системы, включающей в себя вычислительное устройство.

Подробное описание

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

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

На фиг.1 представлена блок-схема среды 100 видеоконференции. Среда 100 видеоконференции может содержать клиент 110 интрасети и сервер 120 видеоконференции, подсоединенный через сетевое соединение 115 интрасети. Среда 100 видеоконференции, кроме того, может содержать первый клиент 130 сети Интернет, второй клиент 140 сети Интернет и третий клиент 150 сети Интернет. Каждый из клиентов сети Интернет может быть подсоединен к серверу 120 видеоконференции через сеть 160 Интернет. Согласно вариантам осуществления настоящего изобретения каждый из сервера 120 видеоконференции, клиента 110 интрасети, первого клиента 130 сети Интернет, второго клиента 140 сети Интернет и третьего клиента 150 сети Интернет может содержать вычислительное устройство 600, более подробно описанное ниже в отношении фиг.6.

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

Каждый клиент может кодировать, по меньшей мере, один видеопоток для посылки на сервер 120 видеоконференции. Например, каждый клиент может иметь средство ввода аудио/видео, такое как веб-камера и/или микрофон, подсоединенные к клиенту. Указанное средство ввода можно использовать для создания видеопотока (который может включать в себя аудио), и клиент может кодировать видеопоток перед его посылкой на сервер 120 видеоконференции. Сервер 120 видеоконференции может принимать кодированные потоки от каждого клиента и принимать решение о том, какие потоки ретранслировать каждому клиенту. Например, клиент 110 интрасети может кодировать видеопоток в виде последовательности видеокадров, содержащих текущую речь человека. Сервер 120 видеоконференции может послать от клиента 110 интрасети кодированный поток, показывающий говорящего в данный момент, первому клиенту 130 сети Интернет, второму клиенту 140 сети Интернет и третьему клиенту 150 сети Интернет. Сервер 120 видеоконференции может послать кодированный исходящий поток от каждого из первого клиента 130 сети Интернет, второго клиента 140 сети Интернет и третьего клиента 150 сети Интернет клиенту 110 интрасети, чтобы показать зрителей.

На фиг.2 представлена схема, иллюстрирующая различные конфигурации подписки на видео в среде 100 видеоконференции. Первый клиент 130 сети Интернет может посылать первый исходящий видеопоток 230 на сервер 120 видеоконференции. Второй клиент 140 сети Интернет может посылать второй исходящий видеопоток 240 на сервер 120 видеоконференции. Третий клиент 150 сети Интернет может посылать третий исходящий видеопоток 250 на сервер 120 видеоконференции. Клиент 110 интрасети может посылать четвертый исходящий видеопоток 210 на сервер 120 видеоконференции.

Каждый исходящий видеопоток может содержать некоторые свойства, в том числе разрешение и частоту кадров. Например, исходящие видеопотоки могут содержать видео, закодированное с разрешением Hi-Definition (высокой четкости) (1280×720 пикселей) при 30 кадрах в секунду (кадр/с), с разрешением VGA (640×480) при 30 кадр/с и/или с разрешением CIF (320×240) при 15 кадр/с.

Каждый клиент может послать на сервер 120 видеоконференции запрос на подписку. Запрос на подписку может включать в себя запрашиваемые параметры, такие как клиент-источник, разрешение и/или частота кадров. Например, клиент 110 интрасети может запросить подписку на видеопоток от первого клиента 130 сети Интернет. Сервер 120 видеоконференции может определить, доступен ли видеопоток, соответствующий данному запросу на подписку, например, первый исходящий видеопоток 230. Согласно вариантам осуществления изобретения сервер 120 видеоконференции может определить, содержит ли первый исходящий видеопоток 230 какой-либо и/или все другие параметры запроса на подписку. Например, запрос на подписку может включать в себя запрос на видеопоток от первого клиента 230 сети Интернет, закодированный с разрешением VGA при 30 кадр/с. Если первый исходящий видеопоток 230 соответствует этим параметрам, то есть, если первый исходящий видеопоток 230 закодирован с разрешением VGA при 30 кадр/с, то сервер 120 видеоконференции может ретранслировать первый исходящий видеопоток 230 клиенту 110 интрасети.

Если первый исходящий видеопоток 230 не соответствует этим параметрам, сервер видеоконференции может дать команду первому клиенту сети Интернет закодировать дополнительный исходящий видеопоток, содержащий другую версию первого исходящего видеопотока 230, причем эта другая версия содержит настолько близко соответствующие параметры запроса на подписку, насколько первый клиент 130 сети Интернет может закодировать. Например, первый клиент 130 сети Интернет может быть не способен закодировать исходящий видеопоток с разрешением VGA при 30 кадр/с, но может быть способен закодировать исходящий видеопоток с разрешением VGA при 15 кадр/с. Таким образом, первый клиент 130 сети Интернет может закодировать дополнительный исходящий видеопоток с разрешением VGA при 15 кадр/с и послать этот дополнительный исходящий видеопоток на сервер 120 видеоконференции. Сервер 120 видеоконференции может ретранслировать дополнительный исходящий видеопоток клиенту 110 интрасети в ответ на запрос на подписку от клиента 110 интрасети.

Согласно вариантам осуществления изобретения клиент видеоконференции может послать на сервер 120 видеоконференции запрос на подписку на более чем один видеопоток. Например, первый клиент 130 сети Интернет может запросить подписку на исходящие видеопотоки от каждого из других клиентов, участвующих в данной видеоконференции. Сервер 120 видеоконференции может ретранслировать второй исходящий видеопоток 240, третий исходящий видеопоток 250 и четвертый исходящий видеопоток 210 первому клиенту 130 сети Интернет.

Кроме того, согласно вариантам осуществления изобретения клиент может захотеть просматривать исходящие видеопотоки от всех клиентов-участников видеоконференции. Например, второй клиент 140 сети Интернет может принимать участие в видеоконференции четырех клиентов и запросить подписку на составной видеопоток 2×2, показывающий всех четырех клиентов-участников. Сервер видеоконференции может объединить первый исходящий видеопоток 230, второй исходящий видеопоток 240, третий исходящий видеопоток 250 и четвертый исходящий видеопоток 210 в единый видеопоток, используя обработку цифровых сигналов, скомпоновать четыре источника в виде сетки 2×2 и послать единый составной видеопоток второму клиенту 240 сети Интернет.

Кроме того, согласно вариантам осуществления изобретения клиент может пожелать подписаться на множество исходящих видеопотоков, но он может не обладать достаточной пропускной способностью для приема оригинальных версий запрошенных потоков. Например, третий клиент 150 сети Интернет может запросить подписку на видеопоток от клиента 110 интрасети и первого клиента 130 сети Интернет. Эта подписка может включать в себя параметр, запрашивающий два потока, подлежащих пересылке в виде матрицы 2×1 с разрешением VGA при 15 кадр/с. Если первый исходящий видеопоток 230 и четвертый исходящий видеопоток 210 посылаются на сервер 120 видеоконференции с разрешением VGA при 30 кадр/с, то сервер 120 видеоконференции может изменить каждый из первого исходящего видеопотока 230 и четвертого исходящего видеопотока 210, например, путем удаления каждого другого кадра, до составления двух видеопотоков в новый видеопоток для посылки третьему клиенту 150 сети Интернет.

На фиг.3 представлена схема, иллюстрирующая кодирование со множеством скоростей передачи битов (MBR). Как было описано выше в отношении фиг.1, система 100 видеоконференции может содержать клиент 110 интрасети, сервер 120 видеоконференции, первый клиент 130 сети Интернет и второй клиент 140 сети Интернет. Согласно вариантам осуществления изобретения клиент 110 интрасети может посылать на сервер 120 видеоконференции версию 310 исходящего видеопотока с высоким разрешением и версию 320 исходящего видеопотока с низким разрешением на основе запросов на подписку от других клиентов. Например, первый клиент сети Интернет может послать на сервер 120 видеоконференции запрос 305 на подписку на видеопоток с высоким разрешением от клиента 110 интрасети, а сервер 120 видеоконференции может ответить на это путем ретрансляции версии 310 исходящего видеопотока с высоким разрешением первому клиенту 130 сети Интернет.

Второй клиент 140 сети Интернет может послать запрос 340 на подписку на видеопоток с низким разрешением от клиента 110 интрасети с частотой кадров, отличной от версии 320 исходящего видеопотока с низким разрешением, выдаваемого клиентом 110 интрасети. Сервер 120 видеоконференции может изменить версию 320 с низким разрешением для соответствия с запрошенной частотой кадров и послать измененную версию 350 исходящего видеопотока второму клиенту 140 сети Интернет.

Согласно вариантам осуществления изобретения запрос на подписку может включать в себя параметр режима. Например, клиент может захотеть подписаться на видеопотоки от всех других участников, но принимать поток говорящего в данный момент с более высоким разрешением. Таким образом, клиент может послать запрос на подписку, содержащий параметр режима речи. Сервер 120 видеоконференции может выполнять переключение видеопотоков для клиентской подписки, как только каждый исходящий видеопоток указывает, что он является носителем говорящего в данный момент, и говорящий в данный момент клиент может добавить дополнительный видеопоток с более высоким разрешением, когда он является говорящим в данный момент. Другой возможный формат может иметь одного главного клиента-говорящего и много клиентов-зрителей. Говорящий может захотеть просматривать много и/или все видеопотоки от клиентов-зрителей, в то время как клиенты-зрители могут захотеть видеть только говорящего и/или клиента, задающего вопросы во время сессии Q&A (вопрос-ответ). Сервер 120 видеоконференции может предоставить клиенту-говорящему возможность подписаться на всех клиентов-зрителей путем запроса потоков с низким разрешением. Сервер 120 видеоконференции может изменить потоки для уменьшения частоты кадров, если общая пропускная способность для всех потоков с низким разрешением все еще превышает ту, которую сможет обработать клиент-говорящий. Согласно вариантам осуществления изобретения клиент-говорящий может переключаться на просмотр одного клиента-зрителя или множество клиентов-зрителей. Клиенты-зрители могут посылать на сервер 120 видеоконференции видеопотоки с более высоким разрешением, если, например, количество клиентов-зрителей меньше конфигурируемого порога.

На фиг.4 представлена блок-схема, раскрывающая общие этапы, задействованные в способе 400 согласно варианту осуществлениия изобретения для предоставления подписок в видеоконференции. Способ 400 можно реализовать, используя вычислительное устройство 600, более подробно описанное ниже в отношении фиг.6. Пути реализации этапов способа 400 более подробно описаны ниже. Согласно вариантам осуществления изобретения любой и/или все этапы способа 400 могут быть выполнены на сервере 120 видеоконференции и/или любом из множества клиентов видеоконференции.

Способ 400 может начаться с начального блока 410 и продолжаться на этапе 420, где вычислительное устройство 600 может зарегистрировать, по меньшей мере, одного клиента. Например, по меньшей мере, один клиент может быть функционально подсоединен к вычислительному устройству 600 через сетевое соединение и может запросить участие в вызове видеоконференции, хостом которой является вычислительное устройство 600.

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

От этапа 420 способ 400 может перейти к этапу 430, где вычислительное устройство 600 может принять, по меньшей мере, один кодированный видеопоток, по меньшей мере, от одного клиента. В видеоконференции может участвовать множество клиентов, и каждый клиент может посылать, по меньшей мере, один видеопоток. Например, вычислительное устройство 600 может принимать аудио/видеопоток, закодированный с разрешением VGA при 30 кадр/с, по меньшей мере, от одного клиента. Согласно вариантам осуществления изобретения вычислительное устройство 600 может принимать множество потоков, по меньшей мере, от одного клиента. Например, клиент может посылать три версии видеопотока: один поток, закодированный с разрешением высокой четкости при 30 кадр/с; один поток, закодированный с разрешением VGA при 30 кадр/с, и один поток, закодированный с разрешением CIF при 15 кадр/с.

От этапа 430 способ 400 может перейти к этапу 440, где вычислительное устройство 600 может принять запрос на подписку, по меньшей мере, от одного клиента в видеоконференции. Например, вычислительное устройство 600 может принять запрос на подписку от одного клиента на закодированный поток с разрешением VGA при 30 кадр/с от второго клиента. Согласно вариантам осуществления изобретения вычислительное устройство 600 может принять множество запросов на подписку от любого и/или всех клиентов, принимающих участие в видеоконференции. Например, один клиент может запросить версии других участвующих клиентов с более низким разрешением; другой клиент может запросить версию с высоким разрешением от клиента, который может быть обозначен как активный говорящий на видеоконференции, и версии с низким разрешением от некоторых либо всех других клиентов.

От этапа 440 способ 400 может перейти к подпрограмме 450, где вычислительное устройство 600 может найти видеопоток, соответствующий запросу на подписку, для посылки, по меньшей мере, одному клиенту. Например, вычислительное устройство 600 может определить, что второй клиент уже посылает видеопоток, закодированный с разрешением VGA при 80 кадр/с, на вычислительное устройство 600, и тогда вычислительное устройство 600 может определить, что данный видеопоток соответствует запросу на подписку. Дополнительные подробности, касающиеся подпрограммы 450, описываются ниже в отношении фиг.5.

От подпрограммы 450 способ может перейти к этапу 460, где вычислительное устройство 600 может послать клиенту соответствующий поток. Например, вычислительное устройство 600 может транслировать соответствующий видеопоток, принятый от второго клиента, через сетевое соединение тому клиенту, который послал запрос на подписку.

От этапа 460 способ 400 может перейти к этапу 470, где вычислительное устройство 600 может определить, были ли приняты какие-либо еще запросы на подписку. Запросы на подписку могут содержать запросы на изменение существующей подписки, например, когда один клиент запрашивает версию потока, который клиент уже принимает в данный момент, но с более низким разрешением. Такой запрос может быть сделан, например, в ответ на снижение доступной пропускной способности. Запросы на подписку также могут содержать запрос, выполненный клиентом, уже принимающим, по меньшей мере, один видеопоток, на видеопотоки от дополнительного клиента (клиентов), или запросы от других клиентов в видеоконференции.

Если вычислительное устройство 600 определяет, что принят еще один запрос на подписку, то способ 400 может вернуться к подпрограмме 450 и попытаться найти соответствующий видеопоток. Если дополнительные запросы на подписку не приняты, то вычислительное устройство 600 может продолжать ждать дополнительные запросы до окончания видеоконференции и тогда способ 400 может закончиться на этапе 480.

На фиг.5 представлена блок-схема подпрограммы, используемой в способе по фиг.4 для выбора видеопотока, который соответствует запросу на подписку. В подпрограмме 450 вычислительное устройство 600 может проанализировать свойства, связанные с запросом на подписку, например, клиента-источника на запрошенный видеопоток. Подпрограмма 450 может начаться на этапе 510, где вычислительное устройство 600 может определить, доступен ли видеопоток, связанный с запрошенным клиентом-источником. Указанное определение может содержать определение того, подключен ли клиент-источник к видеоконференции, посылает ли в данный момент клиент-источник видеопоток на вычислительное устройство 600 и/или способен ли клиент-источник послать видеопоток, если он будет запрошен вычислительным устройством 600 и/или другим клиентом, участвующим в видеоконференции. Если на этапе 510 вычислительное устройство 600 определяет, что запрашиваемый клиент-источник не способен предоставить запрашиваемый видеопоток, то подпрограмма 450 может перейти к этапу 515, где вычислительное устройство 600 может выбрать альтернативного клиента-источника согласно предварительно определенной логике. Например, вычислительное устройство 600 может выбрать клиента, обозначенного как активный говорящий. Согласно вариантам осуществления изобретения вычислительное устройство 600 может возвратить запрашивающему клиенту сообщение об ошибке, информирующее этого клиента о том, что запрашиваемая подписка недоступна. Вычислительное устройство 600 может продолжать периодически определять, не стал ли запрашиваемый клиент-источник доступным, на протяжении всей видеоконференции. Если на этапе 515 альтернативный клиент-источник выбран, то подпрограмма 450 может вернуться к этапу 510, чтобы определить, доступен ли вновь выбранный клиент-источник.

Если на этапе 510 вычислительное устройство 600 определяет, что запрашиваемый клиент-источник доступен и/или он способен предоставить видеопоток, то подпрограмма 450 может перейти к этапу 520, где вычислительное устройство 600 может определить, посылает ли в данный момент клиент-источник, связанный с запросом на подписку, видеопоток с разрешением, связанным с данным запросом на подписку. Например, клиент может запросить подписку на видеопоток от клиента-источника с разрешением VGA (640×480). Вычислительное устройство 600 может определить, предоставляет ли клиент-источник версию видеопотока с разрешением VGA. Если нет, то подпрограмма 450 может перейти к этапу 525, где вычислительное устройство 600 может определить, способен ли клиент-источник предоставить видеопоток с правильным разрешением.

Если на этапе 525 вычислительное устройство 600 определяет, что клиент-источник способен предоставить видеопоток с запрошенным разрешением, то подпрограмма 450 может перейти к этапу 530, где вычислительное устройство 600 может запросить клиент-источник начать посылку видеопотока с запрошенным разрешением. Если определено, что клиент-источник не способен предоставить видеопоток с запрошенным разрешением, то подпрограмма 450 может перейти к этапу 535, где вычислительное устройство 600 может выбрать использование другой версии видеопотока клиента-источника с ближайшим возможным разрешением. Например, клиент-источник может оказаться способным предоставить видеопоток с разрешением CIF вместо видеопотока с разрешением VGA.

Как только вычислительное устройство 600 выбрало разрешение видеопотока, подпрограмма 450 может перейти к этапу 540, где вычислительное устройство 600 может определить, доступен ли видеопоток с частотой кадров, связанной с запросом на подписку. Если поток, выбранный на этапе 520, не соответствует запрошенной частоте кадров, то подпрограмма 450 может перейти к этапу 545, где вычислительное устройство 600 может изменить видеопоток, например, путем удаления попеременных кадров для уменьшения частоты кадров. Например, вычислительное устройство 600 может принять запрос на подписку на видеопоток с разрешением VGA при 15 кадр/с, но видеопоток, предоставленный клиентом- источником, может кодироваться при 30 кадр/с. Вычислительное устройство 600 может, например, отбрасывать кадры из видеопотока, чтобы уменьшить частоту кадров. Согласно вариантам осуществления изобретения вычислительное устройство 600 может определить, способен ли клиент-источник кодировать и посылать видеопоток с запрошенной частотой кадров, подобно процессу на этапе 525, относящемся к разрешению, и может запросить, чтобы клиент-источник послал на вычислительное устройство 600 соответствующий поток. От этапа 540 и/или этапа 545 подпрограмма 450 может вернуться к способу 400 на этапе 460.

Согласно вариантам осуществления изобретения запрос на подписку может предоставить допустимые альтернативные значения для таких свойств, как клиент-источник, разрешение и частота кадров. Например, запрос на подписку может содержать запрос на видеопоток от первого клиента и может указывать, что также допустим видеопоток от второго клиента. Аналогичным образом, запрос на подписку может отдавать предпочтение запрашиваемому разрешению, например, предпочтение видеопотоку высокой четкости, если доступно, указывая при этом, что поток с разрешением VGA также допустим, но запрашивая, чтобы вычислительное устройство 600 не посылало видеопоток в ответ на запрос на подписку, если доступным является только поток с разрешением CIF.

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

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

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

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

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

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

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