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

Классы МПК:H04L12/18 для трансляции широковещательных программ или конференц-связи
H04N21/2343 включающая операции переформатирования видеосигналов для распределения или согласования с запросами конечных пользователей или требованиями устройств конечных
Автор(ы):, ,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2009-11-09
публикация патента:

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

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

Формула изобретения

1. Способ предоставления подписки на видеопоток, причем способ содержит этапы, на которых:

принимают, по меньшей мере, один видеопоток, по меньшей мере, от одного первого клиента;

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

определяют, соответствует ли, по меньшей мере, один видеопоток, принятый, по меньшей мере, от одного первого клиента, запросу на подписку на видео, по меньшей мере, от одного второго клиента;

в ответ на определение того, что, по меньшей мере, один видеопоток, принятый, по меньшей мере, от одного первого клиента, не соответствует запросу на подписку на видео, по меньшей мере, от одного второго клиента, запрашивают другой видеопоток, по меньшей мере, от одного первого клиента, который соответствует запросу на подписку на видео, по меньшей мере, от одного второго клиента; и

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

2. Способ по п.1, в котором запрос на подписку на видео дополнительно содержит запрошенную частоту кадров.

3. Способ по п.1, дополнительно содержащий этап, на котором:

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

4. Способ по п.1, дополнительно содержащий этапы, на которых:

регистрируют множество клиентов;

принимают, по меньшей мере, один видеопоток от каждого из множества клиентов;

принимают, по меньшей мере, один запрос на подписку на видео от каждого из зарегистрированных клиентов;

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

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

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

6. Способ по п.4, дополнительно содержащий этапы, на которых:

в ответ на определение того, что, по меньшей мере, один запрос на подписку на видео, по меньшей мере, от одного из зарегистрированных клиентов не может быть удовлетворен, по меньшей мере, одним из видеопотоков, принятых от множества клиентов, определяют, может ли быть изменен, по меньшей мере, один принятый видеопоток, чтобы он соответствовал, по меньшей мере, одному запросу на подписку на видео;

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

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

7. Способ по п.6, в котором изменение видеопотока содержит, по меньшей мере, один из этапов, на которых: повторно кодируют видеопоток с другим разрешением, отбрасывают, по меньшей мере, один кадр из видеопотока, и объединяют, по меньшей мере, два из принятых видеопотоков в единый видеопоток.

8. Способ по п.4, дополнительно содержащий этапы, на которых:

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

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

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

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

10. Способ по п.4, дополнительно содержащий этапы, на которых:

в ответ на определение того, что, по меньшей мере, один запрос на подписку на видео, по меньшей мере, от одного из зарегистрированных клиентов не может быть удовлетворен, по меньшей мере, одним из видеопотоков, принятых от множества клиентов, вычисляют, какой из видеопотоков наиболее близко соответствует, по меньшей мере, одному запросу на подписку на видео; и

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

11. Способ по п.10, в котором вычисление того, какой из видеопотоков наиболее близко соответствует, по меньшей мере, одному запросу на подписку на видео, содержит этапы, на которых:

определяют, соответствует ли, по меньшей мере, один из видеопотоков клиенту-источнику видеопотока, связанному с запросом на подписку;

определяют, соответствует ли, по меньшей мере, один из видеопотоков, соответствующих клиенту-источнику видеопотока, связанному с запросом на подписку, разрешению, связанному с запросом на подписку;

определяют, соответствует ли, по меньшей мере, один из видеопотоков, соответствующих клиенту-источнику видеопотока, частоте кадров, связанной с запросом на подписку; и

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

12. Способ по п.11, дополнительно содержащий этапы, на которых:

в ответ на определение того, что, по меньшей мере, один из видеопотоков не соответствует клиенту-источнику видеопотока, связанному с запросом на подписку:

выбирают второй клиент-источник видеопотока среди множества клиентов, отличных от клиента-источника видеопотока, связанного с запросом на подписку; и

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

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

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

регистрацию множества клиентов видеоконференции;

прием, по меньшей мере, одного исходящего видеопотока от каждого из множества клиентов видеоконференции;

прием, по меньшей мере, одного запроса на подписку на видеопоток, по меньшей мере, от одного из множества клиентов видеоконференции, который содержит запрошенное разрешение, которое может варьироваться от низкого разрешения до высокого разрешения;

определение того, соответствует ли, по меньшей мере, один первый поток из исходящих видеопотоков, принятых от каждого из множества клиентов видеоконференции, по меньшей мере, одному запросу на подписку на видеопоток;

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

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

15. Считываемый компьютером запоминающий носитель по п.14, дополнительно содержащий:

прием, по меньшей мере, от одного из множества клиентов видеоконференции, по меньшей мере, одного второго запроса на подписку на видеопоток;

определение того, соответствует ли, по меньшей мере, один второй поток из исходящих видеопотоков, принятых от каждого из множества клиентов видеоконференции, по меньшей мере, одному запросу на подписку на второй видеопоток; и

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

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

создание составного видеопотока из, по меньшей мере, одного соответствующего первого потока из исходящих видеопотоков и, по меньшей мере, одного соответствующего второго потока из исходящих видеопотоков; и

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

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

18. Считываемый компьютером запоминающий носитель по п.14, дополнительно содержащий:

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

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

прием, по меньшей мере, от одного третьего клиента видеоконференции запроса на подписку на исходящий видеопоток от, по меньшей мере, одного первого клиента видеоконференции и, по меньшей мере, одного второго клиента видеоконференции;

создание составного видеопотока из, по меньшей мере, одного второго исходящего видеопотока от, по меньшей мере, одного первого клиента видеоконференции и, по меньшей мере, одного второго исходящего видеопотока, по меньшей мере, от одного второго клиента видеоконференции; и

посылку составного видеопотока, по меньшей мере, одному третьему клиенту видеоконференции.

19. Считываемый компьютером запоминающий носитель по п.14, дополнительно содержащий:

прием, по меньшей мере, одного первого исходящего видеопотока, по меньшей мере, от одного первого клиента видеоконференции;

прием, по меньшей мере, одного второго исходящего видеопотока, по меньшей мере, от одного второго клиента видеоконференции;

прием, по меньшей мере, от одного третьего клиента видеоконференции запроса на подписку на исходящий видеопоток от, по меньшей мере, одного первого клиента видеоконференции и, по меньшей мере, одного второго клиента видеоконференции;

создание составного видеопотока из, по меньшей мере, одного первого исходящего видеопотока и, по меньшей мере, одного второго исходящего видеопотока, причем создание составного видеопотока содержит:

изменение частоты кадров, по меньшей мере, одного первого исходящего видеопотока,

изменение частоты кадров, по меньшей мере, одного второго исходящего видеопотока, и

объединение измененного первого исходящего видеопотока и измененного второго исходящего видеопотока в единый видеопоток; и

посылку составного видеопотока, по меньшей мере, одному третьему клиенту видеоконференции.

20. Система для предоставления подписок в видеоконференции, причем система содержит:

запоминающее устройство; и

блок обработки, подсоединенный к запоминающему устройству, причем блок обработки функционирует с возможностью:

принимать множество видеопотоков от множества клиентов видеоконференции, причем каждый клиент посылает, по меньшей мере, один из множества видеопотоков;

принимать, по меньшей мере, один запрос на подписку, по меньшей мере, от одного из множества клиентов видеоконференции, причем запрос на подписку содержит запрос на, по меньшей мере, одно из: множества видеопотоков, запрошенного разрешения, которое может варьироваться от низкого разрешения до высокого разрешения, и запрошенной частоты кадров;

определять, принимается ли, по меньшей мере, один из множества видеопотоков от клиента-источника для, по меньшей мере, одного запрошенного потока из множества видеопотоков с запрошенным разрешением и запрошенной частотой кадров;

в ответ на определение того, что, по меньшей мере, один запрошенный видеопоток из множества видеопотоков не принимается от клиента-источника для, по меньшей мере, одного запрошенного видеопотока из множества видеопотоков с запрошенным разрешением и запрошенной частотой кадров, определять, способен ли клиент-источник для, по меньшей мере, одного запрошенного видеопотока из множества видеопотоков послать, по меньшей мере, один запрошенный видеопоток из множества видеопотоков с запрошенным разрешением при запрошенной частоте кадров;

в ответ на определение того, что клиент-источник для, по меньшей мере, одного запрошенного видеопотока из множества видеопотоков способен послать, по меньшей мере, один запрошенный видеопоток из множества видеопотоков с запрошенным разрешением при запрошенной частоте кадров, посылать команду клиенту-источнику, которая запрашивает, чтобы клиент-источник кодировал и посылал в систему, по меньшей мере, один запрошенный видеопоток из множества видеопотоков с запрошенным разрешением при запрошенной частоте кадров; и

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

Описание изобретения к патенту

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

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

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

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

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

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

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

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

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

На чертежах:

фиг.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.

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

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

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

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

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

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

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

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

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

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

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

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

Обратимся к фиг.6, где система согласно варианту осуществления изобретения может включать в себя вычислительное устройство, такое как вычислительное устройство 600. В базовой конфигурации вычислительное устройство 600 может включать в себя, по меньшей мере, один блок обработки 602 и системную память 604. В зависимости от конфигурации и типа вычислительного устройства системная память 604 может содержать, но не только, энергозависимую память (например, оперативную память (RAM)), энергонезависимую память (например, постоянную память (ROM)), флэш-память или любую их комбинацию. Системная память 604 может содержать операционную систему 605, один или множество программных модулей 606, а также может содержать программные данные 607. Операционная система 605, например, может подходить для управления функционированием вычислительного устройства 600. В одном варианте осуществления программные модули 606 могут включать в себя, например, модуль анализа данных и/или сервер 630 видеоконференции. Кроме того, варианты осуществления изобретения можно практически реализовать в сочетании с графической библиотекой, другими операционными системами или любой другой прикладной программой, и это не ограничивается какими-либо конкретными приложениями или системами. Описанная базовая конфигурация проиллюстрирована на фиг.6 в виде компонентов, находящихся в пределах пунктирной линии 608.

Вычислительное устройство 600 может иметь дополнительные признаки или функциональные возможности. Например, вычислительное устройство 600 может также включать в себя дополнительные запоминающие устройства (съемные и/или несъемные), такие, как например, магнитные диски, оптические диски или лента. Такое дополнительное запоминающее устройство проиллюстрировано на фиг.6 в виде съемного запоминающего устройства 609 и несъемного запоминающего устройства 610. Компьютерный носитель информации может включать в себя энергозависимый и энергонезависимый, съемный и несъемный носитель, реализованный любым способом или по любой технологии для запоминания информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Системная память 604, съемное запоминающее устройство 609 и несъемное запоминающее устройство 610 являются примерами компьютерного носителя информации. Компьютерный носитель информации может включать в себя, но не только, RAM, ROM, электрически стираемую постоянную память (EEPROM), флэш-память или память другой технологии, CD-ROM, цифровые универсальные диски (DVD), или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, либо любой другой носитель, который можно использовать для запоминания информации и к которому может осуществлять доступ вычислительное устройство 600. Любой такой компьютерный носитель информации может быть частью устройства 600. Вычислительное устройство 600 также может иметь устройство (устройства) 612 ввода, такое как клавиатура, мышь, перо, устройство звукового ввода, устройство сенсорного ввода и т.д. Также в устройство 600 может быть включено устройство (устройства) 614 вывода, такое как дисплей, громкоговорители, принтер и т.д. Вышеупомянутые устройства являются примерами и могут быть использованы другие устройства.

Вычислительное устройство 600 может также содержать соединение 616 связи, которое предоставляет возможность устройству 600 осуществлять связь с другими вычислительными устройствами 618, например, через сеть в распределенной вычислительной среде, например интрасети или сети Интернет. Соединение 616 связи является одним из примеров среды связи. Среда связи, как правило, может быть осуществлена с помощью считываемых компьютером команд, структур данных, программных модулей или иных данных в модулированном сигнале данных, таком как несущая волна или другой механизм транспортировки, и включает в себя любую среду для доставки информации. Термин «модулированный сигнал данных» может описывать сигнал, который имеет одну или множество характеристик, установленных или измененных таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не как ограничение, среда связи может включать в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная (RF), инфракрасная или иная беспроводная среда. Используемый здесь термин «считываемая компьютером среда» может включать в себя как запоминающую среду, так и среду связи.

Как было установлено выше, в системной памяти 604, включающей в себя операционную систему 605, может храниться множество программных модулей и файлов данных. При исполнении в блоке 602 обработки программные модули 606 (например, сервер 620 видеоконференции) могут выполнять процессы, включая, например, один или более из вышеописанных этапов способа 400. Вышеупомянутая обработка является примером, и блок обработки 602 может выполнять и другие операции. Другие программные модули, которые могут использоваться согласно вариантам осуществления настоящего изобретения, могут включать в себя приложения для электронной почты и контактов, приложения для обработки текстов, приложения для работы с электронными таблицами, приложения для баз данных, приложения для презентации слайдов, прикладные программы для автоматизированного проектирования или создания чертежей и т.д.

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

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

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

Используемый компьютером или считываемый компьютером носитель может представлять собой, например, но не только, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, устройство, прибор или носитель. Более конкретные примеры считываемого компьютером носителя (не исчерпывающий список) могут включать в себя следующее: электрическое соединение, имеющее один или множество проводов; портативная компьютерная дискета, оперативная память (RAM), постоянная память (ROM), стираемую программируемую постоянную память (EPROM или флэш-память), волоконно-оптическую и портативную постоянную память на компакт-диске (CD-ROM). Заметим, что используемым компьютером или считываемым компьютером носителем может быть даже бумага или другой подходящий носитель, на котором напечатана программа, когда программа может быть захвачена электронным путем, например, посредством оптического сканирования бумаги или другого носителя, а затем скомпилирована, интерпретирована или по иному обработана подходящим образом, если это необходимо, после чего она запоминается в компьютерной памяти.

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

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

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

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

Класс H04L12/18 для трансляции широковещательных программ или конференц-связи

передающий терминал, способ передачи и считываемый компьютером носитель записи, хранящий программу передачи -  патент 2529641 (27.09.2014)
способ, устройство управления системой обслуживания телевидения в сетях передачи данных по протоколу ip, и система обслуживания телевидения в сетях передачи данных по протоколу ip -  патент 2520408 (27.06.2014)
способы для генерации визуальной композиции для события мультимедийной конференц-связи -  патент 2518402 (10.06.2014)
система дистанционного присутствия, способ дистанционного присутствия и устройство сбора видеоданных -  патент 2518218 (10.06.2014)
способ и сервисное устройство для осуществления персонального разговора во время конференции в сети ims -  патент 2515703 (20.05.2014)
способ, устройство и система для осуществления видеовызова -  патент 2504090 (10.01.2014)
способ индикации состояния прохождения вызова, устройство управления конференц-связью и система конференц-связи -  патент 2491735 (27.08.2013)
идентификация активного говорящего участника -  патент 2483452 (27.05.2013)
управление передачами подтверждения приема от участников группы многоадресной передачи для группы многоадресной передачи в сети беспроводной связи -  патент 2466504 (10.11.2012)
способы доступа к удаленным данным для портативных устройств -  патент 2463717 (10.10.2012)

Класс H04N21/2343 включающая операции переформатирования видеосигналов для распределения или согласования с запросами конечных пользователей или требованиями устройств конечных

Наверх