согласование скорости при видеоконференциях
Классы МПК: | H04N7/15 системы для конференц-связи |
Автор(ы): | ЛИ Мин-Чиех (US), ХАН Му (US), МУР Тим (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2009-11-09 публикация патента:
27.07.2014 |
Изобретение относится к области видеоконференций, а именно к согласованию скорости передачи видеопотока между клиентами. Техническим результатом является повышение производительности видеоконференций за счет выбора для передачи видеопотока, характеристики которого удовлетворяют характеристикам возможностей принимающего клиента. Для этого принимают множество потоков данных, каждый из которых имеет отличающееся от других разрешение видео, от каждого из передающих клиентов и анализируют характеристики принимающих клиентов. В результате анализа выбирают один из множества потоков данных от каждого из передающих клиентов и отправляют его в принимающий клиент. Указанные операции выполняются посредством сервера видеоконференцсвязи, принимающего исходные видеопотоки от клиентов в видеоконференции, анализирующего характеристики каждого клиента и выбирающего видеопоток, чтобы отправлять в каждый клиент, на основе этих характеристик. Например, клиент, допускающий кодирование и декодирование видеопотока высокой четкости, может предоставлять три исходных видеопотока: высокой четкости, среднего и низкого разрешений. Сервер может отправлять в клиент с низким значением доступной полосы пропускания только поток низкого разрешения, в другой клиент, с достаточной полосой пропускания для потока высокой четкости, но без его возможности декодировать, - поток среднего разрешения. 3 н. и 16 з.п. ф-лы, 6 ил.
Формула изобретения
1. Способ предоставления данных во множество клиентов, содержащий этапы, на которых:
принимают множество потоков данных, каждый из которых имеет отличающееся от других разрешение видео, от каждого из по меньшей мере двух из множества клиентов;
анализируют по меньшей мере одну характеристику, ассоциированную с по меньшей мере одним из множества клиентов;
выбирают по меньшей мере один из множества потоков данных от каждого из упомянутых по меньшей мере двух из множества клиентов, чтобы отправить в упомянутый по меньшей мере один из множества клиентов, на основе проанализированной по меньшей мере одной характеристики; и
после выбора упомянутого меньшей мере одного из множества потоков данных отправляют выбранный по меньшей мере один из множества потоков данных в упомянутый по меньшей мере один из множества клиентов.
2. Способ по п.1, в котором упомянутое множество потоков данных содержит множество потоков данных видеоконференцсвязи.
3. Способ по п.1, в котором каждый из упомянутого множества потоков данных ассоциирован с по меньшей мере одним из упомянутого множества клиентов.
4. Способ по п.1, в котором при анализе по меньшей мере одной характеристики, ассоциированной с по меньшей мере одним из множества клиентов, анализируют полосу пропускания по меньшей мере одной среды связи, ассоциированной с по меньшей мере одним из множества клиентов.
5. Способ по п.4, в котором упомянутая по меньшей мере одна среда связи, ассоциированная с по меньшей мере одним из множества клиентов, содержит Интернет.
6. Способ по п.4, в котором упомянутая по меньшей мере одна среда связи, ассоциированная с по меньшей мере одним из множества клиентов, содержит сеть intranet.
7. Способ по п.1, в котором при анализе по меньшей мере одной характеристики, ассоциированной с по меньшей мере одним из множества клиентов, анализируют характеристику обработки данных, ассоциированную с по меньшей мере одним из множества клиентов.
8. Способ по п.7, в котором при анализе по меньшей мере одной характеристики, ассоциированной с по меньшей мере одним из множества клиентов, определяют по меньшей мере одну характеристику декодирования видео.
9. Способ по п.1, в котором по меньшей мере один первый клиент из упомянутого множества клиентов ассоциирован с множеством потоков данных, при этом по меньшей мере один первый поток данных из упомянутого множества потоков данных содержит версию более высокого разрешения по меньшей мере одного второго потока данных из упомянутого множества потоков данных.
10. Способ по п.9, в котором при анализе по меньшей мере одной характеристики, ассоциированной с по меньшей мере одним из множества клиентов, определяют, способен или нет по меньшей мере один второй клиент из упомянутого множества клиентов декодировать упомянутый по меньшей мере один первый поток данных.
11. Способ по п.9, в котором при анализе по меньшей мере одной характеристики, ассоциированной с по меньшей мере одним из множества клиентов, определяют, имеет или нет по меньшей мере один второй клиент из упомянутого множества клиентов достаточную полосу пропускания для того, чтобы принимать упомянутый по меньшей мере один первый поток данных.
12. Машиночитаемый носитель, на котором сохранен набор инструкций, которыми при их исполнении реализуется способ предоставления видеопотоков во множество клиентов, при этом способ, реализуемый посредством набора инструкций, содержит этапы, на которых:
принимают по меньшей мере один видеопоток от каждого из множества клиентов и более чем один видеопоток с разными разрешениями от по меньшей мере одного из множества клиентов;
собирают данные характеристик видеоконференции, ассоциированные с каждым из множества клиентов;
для каждого из множества клиентов выбирают по меньшей мере один видеопоток, чтобы отправить в каждый из множества клиентов, согласно собранным данным характеристик видеоконференции, ассоциированным с каждым из множества клиентов; и
после выбора упомянутого меньшей мере одного видеопотока отправляют выбранный по меньшей мере один видеопоток в каждый из множества клиентов.
13. Машиночитаемый носитель по п.12, в котором способ дополнительно содержит этап, на котором принимают по меньшей мере один первый видеопоток и по меньшей мере один второй видеопоток от по меньшей мере одного из упомянутого множества клиентов, причем этот по меньшей мере один первый видеопоток содержит версию более высокого разрешения этого по меньшей мере одного второго видеопотока.
14. Машиночитаемый носитель по п.13, при этом упомянутый по меньшей мере один первый видеопоток содержит видеопоток, закодированный с разрешением, содержащим по меньшей мере одно из 1280×720 и 640×480, причем упомянутый по меньшей мере один второй видеопоток содержит видеопоток, закодированный с разрешением 320×240.
15. Машиночитаемый носитель по п.12, в котором способ дополнительно содержит этапы, на которых:
определяют, имеет или нет по меньшей мере один из множества клиентов достаточную полосу пропускания для того, чтобы принимать все кадры, содержащие по меньшей мере один первый видеопоток; и
в ответ на определение того, что упомянутый по меньшей мере один из множества клиентов имеет достаточную полосу пропускания для того, чтобы принимать все кадры, содержащие упомянутый по меньшей мере один видеопоток, отправляют упомянутый по меньшей мере один видеопоток в упомянутый по меньшей мере один из множества клиентов неизмененным.
16. Машиночитаемый носитель по п.15, в котором способ дополнительно содержит этап, на котором, в ответ на определение того, что упомянутый по меньшей мере один из множества клиентов не имеет достаточной полосы пропускания, чтобы принимать все кадры, содержащие упомянутый по меньшей мере один первый видеопоток, отправляют по меньшей мере один второй видеопоток в упомянутый по меньшей мере один из множества клиентов, причем этот по меньшей мере один второй видеопоток содержит версию более низкого разрешения упомянутого по меньшей мере одного первого видеопотока.
17. Машиночитаемый носитель по п.15, в котором способ дополнительно содержит этап, на котором, в ответ на определение того, что упомянутый по меньшей мере один из множества клиентов не имеет достаточной полосы пропускания, чтобы принимать все кадры, содержащие упомянутый по меньшей мере один первый видеопоток, удаляют по меньшей мере один кадр в секунду из видеопотока до отправки упомянутого по меньшей мере одного первого видеопотока в упомянутый по меньшей мере один из множества клиентов.
18. Машиночитаемый носитель по п.12, в котором способ дополнительно содержит этапы, на которых:
определяют, для каждого из упомянутого множества клиентов, по меньшей мере один применяемый алгоритм декодирования видео;
определяют, для каждого из упомянутого множества клиентов, по меньшей мере один алгоритм кодирования видео, ассоциированный с каждым из множества клиентов; и
инструктируют по меньшей мере одному из упомянутого множества клиентов кодировать по меньшей мере один видеопоток для по меньшей мере одного алгоритма кодирования видео, ассоциированного с каждым из множества клиентов, который определяется как применяемый по меньшей мере одним из множества клиентов.
19. Система для обеспечения согласования скорости в видеоконференции, содержащая:
запоминающее устройство;
устройство сетевого соединения; и
процессор, связанный с запоминающим устройством, при этом процессор выполнен с возможностью:
регистрировать клиенты видеоконференцсвязи, содержащие первый клиент видеоконференцсвязи, второй клиент видеоконференцсвязи и третий клиент видеоконференцсвязи, функционально подключенные к системе через устройство сетевого соединения, причем выполнение с возможностью регистрировать упомянутые клиенты видеоконференцсвязи содержит выполнение с возможностью устанавливать по меньшей мере одну характеристику для каждого из упомянутых клиентов видеоконференцсвязи, причем эта по меньшей мере одна характеристика содержит по меньшей мере одно из доступной полосы пропускания, максимального разрешения кодирования и максимального разрешения декодирования;
принимать множество видеопотоков от по меньшей мере двух из упомянутых клиентов видеоконференцсвязи, причем данное множество видеопотоков содержит по меньшей мере один первый видеопоток и по меньшей мере один второй видеопоток, причем этот по меньшей мере один первый видеопоток содержит видеопоток более высокого разрешения, чем этот по меньшей мере один второй видеопоток;
определять, на основе установленной по меньшей мере одной характеристики для упомянутого по меньшей мере одного из клиентов видеоконференцсвязи, то, может или нет этот по меньшей мере один клиент видеоконференцсвязи принимать упомянутый по меньшей мере один первый видеопоток, причем выполнение с возможностью определять то, что по меньшей мере один клиент видеоконференцсвязи может принимать по меньшей мере один первый видеопоток, содержит выполнение с возможностью определять по меньшей мере одно из следующего: может или нет упомянутый по меньшей мере один клиент видеоконференцсвязи декодировать упомянутый по меньшей мере один первый видеопоток и имеет или нет упомянутый по меньшей мере один клиент видеоконференцсвязи достаточную доступную полосу пропускания для того, чтобы принимать упомянутый по меньшей мере один первый видеопоток без пропуска по меньшей мере одного В-кадра из этого по меньшей мере одного первого видеопотока; и
в ответ на определение того, что упомянутый по меньшей мере один клиент видеоконференцсвязи может принимать упомянутый по меньшей мере один первый видеопоток, отправлять упомянутый по меньшей мере один первый видеопоток в упомянутый по меньшей мере один клиент видеоконференцсвязи без декодирования этого по меньшей мере одного первого видеопотока посредством системы.
Описание изобретения к патенту
Предшествующий уровень техники
Согласование скорости при видеоконференцсвязи является процессом для повышения производительности видеоконференций. В некоторых ситуациях клиент видеоконференцсвязи, подключенный через Интернет, может иметь колеблющуюся величину полосы пропускания, в то время как другие клиенты находятся в корпоративной сети 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-декодирования.
Еще один другой вариант осуществления в соответствии с изобретением может содержать систему для предоставления согласования скорости в видеоконференции. Система может содержать запоминающее устройство и процессор, связанный с запоминающим устройством. Процессор может быть выполнен с возможностью регистрировать, по меньшей мере, один первый клиент видеоконференцсвязи и, по меньшей мере, один второй клиент видеоконференцсвязи, функционально подключенный к системе через устройство с сетевым соединением, чтобы принимать множество видеопотоков, по меньшей мере, от одного первого клиента видеоконференцсвязи, определять на основе установленной, по меньшей мере, одной характеристики, по меньшей мере, одного второго клиента видеоконференцсвязи то, может или нет, по меньшей мере, один второй клиент видеоконференцсвязи принимать, по меньшей мере, один первый видеопоток, и в ответ на определение того, что, по меньшей мере, один второй клиент видеоконференцсвязи может принимать, по меньшей мере, один первый видеопоток, отправлять, по меньшей мере, один первый видеопоток, по меньшей мере, в один второй клиент видеоконференцсвязи без декодирования, по меньшей мере, одного первого видеопотока посредством системы. Система может быть выполнена с возможностью устанавливать, по меньшей мере, одну характеристику, по меньшей мере, одного первого клиента видеоконференцсвязи и, по меньшей мере, одного второго клиента видеоконференцсвязи, при этом, по меньшей мере, одна характеристика содержит, по меньшей мере, одно из следующего: доступная полоса пропускания, максимальное разрешение кодирования и максимальное разрешение декодирования. Множество видеопотоков может содержать, по меньшей мере, один первый видеопоток и, по меньшей мере, один второй видеопоток, при этом, по меньшей мере, один первый видеопоток содержит видеопоток более высокого разрешения, чем, по меньшей мере, один второй видеопоток.
Система может быть выполнена с возможностью определять то, может или нет, по меньшей мере, один второй клиент видеоконференцсвязи декодировать, по меньшей мере, один первый видеопоток. В соответствии с вариантами осуществления изобретения система может быть выполнена с возможностью определять то, имеет или нет, по меньшей мере, один второй клиент видеоконференцсвязи достаточную доступную полосу пропускания для того, чтобы принимать, по меньшей мере, один первый видеопоток без пропуска, по меньшей мере, одного B-кадра, по меньшей мере, из одного первого видеопотока.
Фиг.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 могут включать в себя, например, модуль анализа данных и/или сервер 620 видеоконференцсвязи. Кроме того, варианты осуществления изобретения могут осуществляться на практике вместе с графической библиотекой, другими операционными системами или любой другой прикладной программой и не ограничены конкретными приложениями или системами. Эта базовая конфигурация проиллюстрирована на фиг.6 посредством компонентов с пунктирной линией 608.
Вычислительное устройство 600 может иметь дополнительные признаки или функциональность. Например, вычислительное устройство 600 также может включать в себя дополнительные устройства хранения данных (съемные и/или стационарные), такие как, например, магнитные диски, оптические диски или лента. Эти дополнительные устройства хранения проиллюстрированы на фиг.6 посредством съемного устройства 609 хранения данных и стационарного устройства 610 хранения данных. Компьютерные носители хранения могут включать в себя энергозависимые и энергонезависимые, съемные и стационарные носители, реализованные любым способом или технологией хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Системное запоминающее устройство 604, съемное устройство 609 хранения данных и стационарное устройство 610 хранения данных являются примерами компьютерных носителей хранения данных (т.е. запоминающего устройства). Компьютерные носители хранения данных могут включать в себя, но не только, RAM, ROM, электрически стираемое постоянное запоминающее устройство (EEPROM), флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другие оптические устройства хранения, магнитные кассеты, магнитную ленту, устройства хранения на магнитных дисках или другие магнитные устройства хранения, либо любой другой носитель, который может быть использован для того, чтобы хранить требуемую информацию, и к которому может осуществляться доступ посредством вычислительного устройства 600. Любые такие компьютерные носители хранения данных могут быть частью устройства 600. Вычислительное устройство 600 также может иметь устройство(а) 612 ввода, такое как клавиатура, мышь, перо, устройство звукового ввода, устройство сенсорного ввода и т.д. Устройство(а) 614 вывода, такое как дисплей, динамики, принтер и т.д., также может быть включено в состав вычислительного устройства. Вышеуказанные устройства являются примерами и могут использоваться другие устройства.
Вычислительное устройство 600 также может содержать соединение 616 связи, которое может давать возможность устройству 600 обмениваться данными с другими вычислительными устройствами 618, к примеру, по сети в распределенном вычислительном окружении, например в сети intranet или в Интернете. Соединение 616 связи является одним примером среды связи. Среды связи типично могут быть осуществлены посредством машиночитаемых инструкций, структур данных, программных модулей или других данных в модулированном сигнале данных, таком как несущая или другой транспортный механизм, и включают в себя любые среды для доставки информации. Термин "модулированный сигнал данных" может описывать сигнал, который имеет одну или более характеристик, заданных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среды связи могут включать в себя проводные среды, такие как проводная сеть или проводное соединение, и беспроводные среды, такие как акустические, радиочастотные (RF), инфракрасные и другие беспроводные среды. Термин "машиночитаемые носители" при использовании в данном документе может включать в себя как носители хранения, так и среды связи.
Как указано выше, определенное число программных модулей и файлов данных может сохраняться в системном запоминающем устройстве 604, в том числе операционная система 605. При выполнении на процессоре 602 программные модули 606 (например, сервер 620 видеоконференцсвязи) могут выполнять процессы, включающие в себя, например, один или более из этапов способа 400, как описано выше. Вышеуказанный процесс является примером, и процессор 602 может выполнять другие процессы. Другие программные модули, которые могут использоваться в соответствии с вариантами осуществления настоящего изобретения, могут включать в себя приложения для управления электронной почтой и контактами, приложения обработки текстов, приложения электронных таблиц, приложения управления базами данных, приложения управления слайд-презентациями, программы построения чертежей или автоматизированного проектирования и т.д.
В общем, в соответствии с вариантами осуществления изобретения, программные модули могут включать в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые могут выполнять конкретные задачи или которые могут реализовывать конкретные абстрактные типы данных. Кроме того, варианты осуществления изобретения могут осуществляться на практике с другими конфигурациями компьютерных систем, включающими в себя карманные устройства, многопроцессорные системы, микропроцессорные или программируемые бытовые электронные приборы, мини-компьютеры, мэйнфреймы и т.п. Варианты осуществления изобретения также могут осуществляться на практике в распределенных вычислительных окружениях, в которых задачи выполняются посредством удаленных устройств обработки, которые связаны через сеть связи. В распределенном вычислительном окружении программные модули могут размещаться как на локальных, так и на удаленных устройствах хранения данных.
Кроме того, варианты осуществления изобретения могут осуществляться на практике в электрической схеме, содержащей дискретные электронные приборы, в объединенных в одном корпусе или интегрированных микросхемах, содержащих логические вентили, в схеме с применением микропроцессора или на однокристальной схеме, содержащей электронные элементы или микропроцессоры. Варианты осуществления изобретения также могут осуществляться на практике с использованием других технологий, допускающих выполнение логических операций, таких как, например, И, ИЛИ и НЕТ, в том числе, но не только, с использованием механических, оптических, струйных и квантовых технологий. Помимо этого варианты осуществления изобретения могут осуществляться на практике в рамках компьютера общего назначения или в любых других схемах или системах.
Варианты осуществления изобретения, например, могут быть реализованы как компьютерный процесс (способ), вычислительная система или как изделие, такое как компьютерный программный продукт или машиночитаемые носители. Компьютерный программный продукт может быть компьютерным носителем хранения данных, считываемым посредством вычислительной системы, и кодировать компьютерную программу инструкций для выполнения компьютерного процесса. Компьютерный программный продукт также может быть распространяемым сигналом на несущей, считываемым посредством вычислительной системы, и кодировать компьютерную программу инструкций для выполнения компьютерного процесса. Соответственно, настоящее изобретение может быть осуществлено в аппаратных средствах и/или программном обеспечении (включающем в себя микропрограммное обеспечение, резидентное программное обеспечение, микрокод и т.д.). Другими словами, варианты осуществления настоящего изобретения могут принимать форму компьютерного программного продукта на машиноиспользуемом или машиночитаемом носителе хранения данных, имеющем машиноиспользуемый или машиночитаемый программный код, осуществляемый на носителе для использования посредством или в связи с системой выполнения инструкций. Машиноиспользуемый или машиночитаемый носитель может быть любым носителем, который может содержать, сохранять, передавать, распространять или транспортировать программу для использования посредством или в связи с системой или устройством выполнения инструкций.
Машиноиспользуемый или машиночитаемый носитель может быть, например, но не только, электронной, магнитной, оптической, электромагнитной, инфракрасной или полупроводниковой системой, устройством или средой распространения. В качестве более конкретных примеров машиночитаемых носителей (неполный список), машиночитаемый носитель может включать в себя следующее: электрическое соединение, имеющее один или более проводов, портативную компьютерную дискету, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), стираемое программируемое постоянное запоминающее устройство (EPROM или флэш-память), оптоволокно и портативный неперезаписываемый компакт-диск (CD-ROM). Отметим, что машиноиспользуемый или машиночитаемый носитель может быть даже бумажным или другим подходящим носителем, на котором напечатана программа, поскольку программа может быть электронно захвачена, например, через оптическое сканирование бумажного или другого носителя, затем скомпилирована, интерпретирована или иначе обработана соответствующим образом при необходимости, и затем сохранена в компьютерном запоминающем устройстве.
Варианты осуществления настоящего изобретения, например, описываются выше в отношении блок-схем и/или функциональных иллюстраций способов, систем и компьютерных программных продуктов согласно вариантам осуществления изобретения. Функции/действия, отмеченные на блоках, могут осуществляться не в такой последовательности, как показано на любой блок-схеме последовательности операций способа. Например, два блока, показанные друг за другом, фактически могут выполняться практически одновременно, или блоки иногда могут выполняться в обратном порядке, в зависимости от включенной функциональности/действий.
Хотя конкретные варианты осуществления изобретения описаны, другие варианты осуществления могут существовать. Кроме того, хотя варианты осуществления настоящего изобретения описаны как ассоциированные с данными, сохраненными в запоминающем устройстве и на других носителях хранения данных, данные также могут сохраняться или считываться из других типов машиночитаемых носителей, таких как внешние устройства хранения данных, к примеру жесткие диски, гибкие диски или CD-ROM, несущая из Интернета или другие формы RAM или ROM. Дополнительно, этапы раскрытых способов могут модифицироваться любым способом, в том числе посредством переупорядочения этапов и/или посредством вставки или посредством удаления этапов без отступления от изобретения.
Все права, в том числе авторские права на код, включенный в данный документ, принадлежат и являются собственностью Заявителя. Заявитель сохраняет в силе все права на код, включенный в данный документ, и выдает разрешение воспроизводить материал только в связи с воспроизведением выданного патента, но не для каких бы то ни было других целей.
Хотя подробное описание включает в себя примеры, объем изобретения определяется прилагаемой формулой изобретения. Кроме того, хотя подробное описание приведено на языке, конкретном для структурных признаков и/или технологических этапов, формула изобретения не ограничивается признаками или этапами, описанными выше. Вместо этого характерные признаки и этапы, описанные выше, раскрываются в качестве примера вариантов осуществления изобретения.
Класс H04N7/15 системы для конференц-связи