Согласование скорости при видеоконференциях

Иллюстрации

Показать все

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

Реферат

Предшествующий уровень техники

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

Например, для сети intranet клиенты могут иметь возможность кодировать и воспроизводить при VGA-разрешении (640×480 пикселов в расчете на каждый кадр) с частотой кадров в 30 кадров в секунду (кадров/с). Интернет-клиент может иметь возможность кодировать и принимать только при CIF-разрешении (320×240) со скоростью в 15 кадров/с. Традиционная стратегия состоит в том, чтобы инструктировать каждому клиенту кодировать и принимать при более низком CIF-разрешении или инструктировать системе видеоконференцсвязи отбрасывать попеременные кадры из потока VGA-разрешения.

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

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

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

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

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

Прилагаемые чертежи, которые включаются в и составляют часть этого раскрытия сущности, иллюстрируют различные варианты осуществления настоящего изобретения. На чертежах:

Фиг.1 является блок-схемой операционного окружения;

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

Фиг.3 является схемой, иллюстрирующей согласование скорости при видеоконференциях;

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

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

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

Подробное описание изобретения

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

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

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

Окружение 100 видеоконференцсвязи может использоваться, когда несколько клиентов хотят совместно использовать потоки данных между собой. Каждый клиент может подключаться к серверу 120 видеоконференцсвязи. Сервер 120 видеоконференцсвязи может поддерживать список того, какие клиенты подключены и каковы характеристики каждого клиента. В соответствии с вариантами осуществления изобретения сервер 120 видеоконференцсвязи может периодически обновлять все изменения в характеристиках клиента. Например, сервер 120 видеоконференцсвязи может анализировать сетевое intranet-соединение 115 и определять то, что клиент 110 сети intranet может иметь большую доступную полосу пропускания, чем определено ранее. Сервер 120 видеоконференцсвязи может сохранять эту информацию для использования в упрощении совместного использования данных. Сервер 120 видеоконференцсвязи может отвечать за определение того, какие клиенты могут отвечать за отправку потоков данных на сервер 120 видеоконференцсвязи, и за отправку потоков данных в каждый подключенный клиент.

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

Фиг.2A-2C являются схемами, иллюстрирующими алгоритмы кодирования видеопотоков с использованием различных типов кадров. Видеопоток может быть кодирован как последовательность видеокадров, при этом каждый кадр может содержать одно изображение. Каждый кадр может представляться посредством битов данных. Видеопоток может быть кодирован так, что не каждый бит данных в каждом кадре должен отправляться, чтобы представлять источник видеопотока. Различные типы кадров могут использоваться для того, чтобы кодировать и/или сжимать видеопоток.

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

Фиг.2A содержит I (внутренний) кадр 210. I-кадр 210 может быть кодирован без ссылки на другие кадры и может быть декодирован независимо от всех остальных кадров. I-кадры могут давать возможность произвольного доступа в видеопотоке. I-кадры могут быть самыми большими кадрами по размеру и наименее сжатыми.

Фиг.2B содержит P (прогнозный) кадр 230. P-кадр 230 может быть кодирован с использованием предыдущего кадра 220 в качестве опорного и может быть декодирован корректно, только если предыдущий кадр 220 является доступным. P-кадр 230 может быть меньшим и более сжатым, чем I-кадр 210. Предыдущий кадр 220 может содержать I-кадр и/или P-кадр.

Фиг.2C содержит B (двунаправленный) кадр 250. B-кадр 250 может быть кодирован с использованием информации из предыдущего кадра 240 и следующего кадра 260. B-кадр 250 может быть декодирован корректно, если предыдущий кадр 240 и следующий кадр 260 являются доступными. B-кадр 250 может быть меньшим и более сжатым, чем P-кадр 230 и I-кадр 210.

Применение различных типов кадров для того, чтобы кодировать видеопоток, позволяет использовать преимущество источника, в котором существует большое подобие между двумя последующими кадрами, чтобы уменьшать объем данных, который должен отправляться в просматривающий клиент. Например, клиент 110 сети intranet может кодировать и передавать видеопоток человека, говорящего на статическом фоне. Поскольку говорящий человек не может интенсивно перемещаться, видеопоток может быть кодирован с использованием P-кадров так, что P-кадр 230 может содержать только биты данных, представляющие изменения в изображении по сравнению с предыдущим кадром 220.

Фиг.3 является схемой, иллюстрирующей согласование скорости при видеоконференциях. Как описано выше относительно фиг.1, система 100 проведения видеоконференций может содержать клиент 110 сети intranet, сервер 120 видеоконференцсвязи, первый Интернет-клиент 130 и второй Интернет-клиент 140. В соответствии с вариантами осуществления изобретения клиенты в системе 100 проведения видеоконференций могут подключаться с различными полосами пропускания и/или различными характеристиками кодирования и/или декодирования видео. Каждый клиент в системе 100 проведения видеоконференций может регистрироваться на сервере 120 видеоконференцсвязи и устанавливать, по меньшей мере, одну характеристику, такую как доступная полоса пропускания, максимальное разрешение кодирования, максимальное разрешение декодирования и доступные алгоритмы кодирования и/или декодирования данных. Например, клиент 110 сети intranet может регистрироваться на сервере 120 видеоконференцсвязи и устанавливать доступную полосу пропускания в 2 Мбит/с при характеристике кодировать/декодировать видеопоток с помощью VGA-разрешения (640×480) при 30 кадрах/с и CIF-разрешения (320×240) при 15 кадрах/с. Первый Интернет-клиент 130 может регистрироваться на сервере 120 видеоконференцсвязи и устанавливать доступную полосу пропускания в 150 Кбит/с при характеристике кодировать/декодировать видеопоток с помощью 720p-разрешения (1280×720) при 30 кадрах/с, VGA-разрешения (640×480) при 30 кадрах/с и CIF-разрешения (320×240) при 15 кадрах/с. Второй Интернет-клиент 140 может регистрироваться на сервере 120 видеоконференцсвязи и устанавливать доступную полосу пропускания в 200 Кбит/с при характеристике кодировать/декодировать видеопоток только при CIF-разрешении (320×240) при 15 кадрах/с.

В соответствии с вариантами осуществления изобретения клиенты могут допускать кодирование видеопотока, декодирование которого они могут не допускать, и наоборот. Например, второй Интернет-клиент 140 может допускать прием и декодирование видеопотоков VGA-разрешения, но может иметь возможность кодировать только видеопоток CIF-разрешения. В этом сценарии клиент 110 сети intranet и первый Интернет-клиент 130 могут кодировать только один видеопоток при VGA-разрешении, которое сервер 120 видеоконференцсвязи может отправлять во второй Интернет-клиент 140. Кодированный видеопоток CIF-разрешения от второго Интернет-клиента 140 может продолжать отправляться в клиент 110 сети intranet и первый Интернет-клиент 130.

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

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

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

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

В соответствии с вариантами осуществления изобретения сервер 120 видеоконференцсвязи может инструктировать, по меньшей мере, одному из клиентов, ассоциированных с видеоконференцвызовом, кодировать видеопоток, определенный как применяемый посредством одного из других клиентов, ассоциированных с видеоконференцвызовом. Например, сервер 120 видеоконференцсвязи может определять то, что второй Интернет-клиент 140 в настоящий момент использует CIF-декодирование; сервер 120 видеоконференцсвязи может инструктировать первому Интернет-клиенту 130 кодировать поток CIF-разрешения, чтобы отправлять на сервер 120 видеоконференцсвязи, который может быть ретранслирован на второй Интернет-сервер 140.

Дополнительно в соответствии с вариантами осуществления изобретения сервер 120 видеоконференцсвязи может изменять видеопоток до отправки его в клиент. Например, клиент 110 сети intranet может допускать кодирование и отправку видеопотоков при 720p-, VGA- и CIF-разрешениях и иметь существенную стабильную величину доступной полосы пропускания. Первый Интернет-клиент 130 может допускать прием и декодирование видеопотоков при 720p-, VGA- и CIF-разрешениях, но иметь сильно варьирующуюся величину доступной полосы пропускания. По мере того как полоса пропускания, доступная для первого Интернет-клиента 130, уменьшается, сервер 120 видеоконференцсвязи может изменять видеопоток, ретранслированный от клиента 110 сети intranet в первый Интернет-клиент 130, как лучше всего подходит для доступной величины полосы пропускания. Например, от наибольшей доступной величины полосы пропускания до наименьшей сервер видеоконференцсвязи может использовать следующую логику:

1. Отправка неизмененного 720p-потока,

2. Отбрасывание 1 B-кадра для 720p-потока,

3. Отбрасывание 2 B-кадров для 720p-потока,

4. Отправка неизмененного VGA-потока,

5. Отбрасывание 1 B-кадра для VGA-потока,

6. Отбрасывание 2 B-кадров для VGA-потока,

7. Отправка неизмененного CIF-потока,

8. Отбрасывание 1 B-кадра для CIF-потока,

9. Отбрасывание 2 B-кадров для CIF-потока,

10. Отбрасывание всех B- и P-кадров для 720p-потока (сохранение только I-кадров),

11. Отбрасывание всех B- и P-кадров для VGA-потока (сохранение только I-кадров), и

12. Отбрасывание всех B- и P-кадров для CIF-потока (сохранение только I-кадров).

Выбор потоков, отправляемых в каждый клиент, может зависеть от настроек просмотра каждого клиента, а также характеристик клиента. Например, первый Интернет-клиент 130 может быть выполнен с возможностью просматривать других двух участников системы 100 проведения видеоконференций рядом, одновременно, в то время как второй Интернет-клиент 140 может быть выполнен с возможностью показывать только текущего говорящего. В этом случае сервер видеоконференцсвязи может отправлять поток VGA-разрешения от клиента 110 сети intranet и поток CIF-разрешения от второго Интернет-клиента 140 в первый Интернет-клиент 130. Второй Интернет-клиент 140 может попеременно принимать потоки CIF-разрешения от клиента 110 сети intranet и первого Интернет-клиента 130 по мере того, как каждый из этих клиентов говорит в видеоконференцвызове.

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

От этапа 420 способ 400 может переходить к этапу 430, на котором вычислительное устройство 600 может собирать и/или анализировать характеристики каждого зарегистрированного клиента. Например, вычислительное устройство 600 может определять величину полосы пропускания, доступной для каждого клиента. Вычислительное устройство 600 также может определять характеристики обработки данных для каждого клиента, такие как характеристики кодирования и/или декодирования видео и/или скорость обработки данных. Характеристики кодирования/декодирования видео могут включать в себя максимальное разрешение.

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

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

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

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

От этапа 470 способ 400 может завершаться на этапе 480.

Фиг.5 является блок-схемой последовательности операций способа подпрограммы, используемой в способе по фиг.4 для выбора потока данных для клиента. От этапа 440 вычислительное устройство 600 может входить в подпрограмму 450 на этапе 510, на котором вычислительное устройство 600 может собирать характеристики кодирования и/или декодирования, по меньшей мере, для одного клиента. По меньшей мере, один клиент может содержать другое вычислительное устройство 618, к примеру клиент 110 сети intranet. Например, вычислительное устройство 600 может определять то, что клиент 110 сети intranet допускает кодирование при VGA- и CIF-разрешениях и декодирование при 720p-, VGA- и CIF-разрешениях.

От этапа 510 подпрограмма 450 может переходить к этапу 520, на котором вычислительное устройство 600 может определять доступную величину полосы пропускания, по меньшей мере, для одного клиента. Например, вычислительное устройство 600 может определять то, что клиент 110 сети intranet имеет доступными 400 Кбит/с для отправки потока данных и доступными 750 Кбит/с для приема потока данных.

От этапа 520 подпрограмма 450 может переходить к этапу 530, на котором вычислительное устройство 600 может выбирать поток данных наивысшего разрешения, доступный для клиента. Например, первый Интернет-клиент может отправлять три потока данных в вычислительное устройство 600: видеопоток 720p-разрешения, видеопоток VGA-разрешения и видеопоток CIF-разрешения. Вычислительное устройство может сначала выбирать видеопоток 720p-разрешения для отправки в клиент 110 сети intranet.

От этапа 530 подпрограмма 450 может переходить к этапу 540, на котором вычислительное устройство 600 может определять то, имеет или нет клиент возможность обрабатывать выбранный поток данных. Например, вычислительное устройство 600 может определять то, допускает или нет клиент 110 сети intranet декодирование выбранного видеопотока 720p-разрешения. Если на этапе 540 вычислительное устройство 600 определяет то, что клиент не может обрабатывать выбранный видеопоток, подпрограмма 540 может возвращаться к этапу 530, на котором вычислительное устройство 600 может выбирать альтернативный поток данных, такой как версия VGA-разрешения видеопотока 720p-разрешения.

Если на этапе 540 вычислительное устройство 600 определяет то, что клиент имеет возможность обрабатывать выбранный поток, подпрограмма 450 может переходить к этапу 550, на котором вычислительное устройство 600 может определять то, имеет или нет клиент достаточную доступную полосу пропускания для того, чтобы принимать выбранный поток данных без существенного снижения производительности. Например, вычислительное устройство 600 может определять то, что клиент имеет 700 Кбит/с доступной полосы пропускания, и что это достаточная полоса пропускания для того, чтобы принимать и воспроизводить видеопоток 720p-разрешения в режиме реального времени с незначительными пропусками и/или паузами в видео либо вообще без них. Если вычислительное устройство 600 определяет то, что клиент имеет достаточную полосу пропускания для выбранного потока на этапе 550, подпрограмма 450 может возвращаться к этапу 460 способа 400.

Если на этапе 550 вычислительное устройство определяет то, что клиент не имеет достаточную полосу пропускания для того, чтобы принимать и обрабатывать выбранный поток, подпрограмма 450 может переходить к этапу 560, на котором вычислительное устройство 600 может изменять выбранный поток до отправки его в клиент. Например, вычислительное устройство 600 может удалять, по меньшей мере, один B-кадр в секунду из видеопотока, чтобы уменьшать объем данных, которые должны отправляться в клиент. Подпрограмма 450 может переходить к этапу 570, на котором вычислительное устройство 600 может определять то, имеет или нет клиент достаточную полосу пропускания для того, чтобы принимать измененный поток данных. Если клиент по-прежнему не имеет достаточную полосу пропускания для того, чтобы принимать измененный поток, подпрограмма 450 может возвращаться к этапу 530, на котором вычислительное устройство 600 может выбирать альтернативный поток данных, такой как версия VGA-разрешения видеопотока 720p-разрешения. В соответствии с вариантами осуществления изобретения вычислительное устройство 600 может удалять дополнительные кадры и/или удалять другие типы кадров и определять то, могут или нет ограничения по полосе пропускания удовлетворяться, до возвращения к этапу 530. Если на этапе 550 вычислительное устройство определяет то, что клиент имеет достаточную полосу пропускания для того, чтобы принимать и обрабатывать измененный поток данных, подпрограмма 450 может возвращаться к этапу 460 способа 400.

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

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

Другой вариант осуществления в соответствии с изобретением может содержать систему для предоставления видеопотоков во множество клиентов. Система может содержать запоминающее устройство и процессор, связанный с запоминающим устройством. Процессор может быть выполнен с возможностью принимать, по меньшей мере, один видеопоток от каждого из множества клиентов, собирать данные характеристик видеоконференции, ассоциированные с каждым из множества клиентов, выбирать, по меньшей мере, один видеопоток, чтобы отправлять в каждый из множества клиентов, согласно собранным данным характеристик видеоконференции, ассоциированным с каждым из множества клиентов, и отправлять выбранный, по меньшей мере, один видеопоток в каждый из множества клиентов. Система может быть выполнена с возможностью принимать, по меньшей мере, один первый видеопоток и, по меньшей мере, один второй видеопоток, по меньшей мере, от одного из множества клиентов, при этом, по меньшей мере, один первый видеопоток содержит версию более высокого разрешения, по меньшей мере, одного второго видеопотока. Например, по меньшей мере, один первый видеопоток может содержать видеопоток, кодированный при разрешении 1280×720 и/или 640×480, а второй видеопоток может содержать видеопоток, кодированный при разрешении 320×240.

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

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

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

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