(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-16
(54)【発明の名称】制限された帯域幅条件下でのストリーム変更
(51)【国際特許分類】
H04N 21/647 20110101AFI20241008BHJP
H04L 47/12 20220101ALI20241008BHJP
【FI】
H04N21/647
H04L47/12
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024513752
(86)(22)【出願日】2022-08-23
(85)【翻訳文提出日】2024-02-29
(86)【国際出願番号】 EP2022073432
(87)【国際公開番号】W WO2023041292
(87)【国際公開日】2023-03-23
(32)【優先日】2021-09-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ワーナー、ジョン
(72)【発明者】
【氏名】ツファスマン、アーカディ
(72)【発明者】
【氏名】ムケシュ、サガリカ
【テーマコード(参考)】
5C164
5K030
【Fターム(参考)】
5C164FA06
5C164TA23S
5C164TB44S
5C164TB45P
5C164YA24
5K030GA11
5K030HA08
5K030JA11
5K030LB05
5K030LC11
5K030MB09
(57)【要約】
制限された帯域幅条件下でのストリーム変更が提供される。ローカル・ネットワーク上のルータは、ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出する。ルータは、着信ネットワーク・トラフィックを最適化アナライザに一時的にリダイレクトするためのリクエストを着信ネットワーク・トラフィックのソースに送る。変更のために1つまたは複数のストリームを識別するための分析が着信ストリーム上で実行される。変更のために着信ストリームのうちの1つまたは複数を識別したことに応じて、識別された着信ストリームごとに、識別された着信ストリームを連続的に変更し、変更されたストリームをローカル・デバイスにリダイレクトする。
【特許請求の範囲】
【請求項1】
ローカル・ネットワーク上のルータによって、前記ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、前記着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出することと、
前記帯域幅が前記第1の閾値を超えたことを検出したことに応じて、1つまたは複数のローカル・デバイスへの前記着信ネットワーク・トラフィックをインターセプトし、全体的な帯域幅を低減するために前記着信ネットワーク・トラフィックを一時的に変更し、その後、前記変更されたネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスにリダイレクトすることと、
前記変更された着信ネットワーク・トラフィックの前記帯域幅が第2の閾値を下回ったことに応じて、前記着信ネットワーク・トラフィックの前記一時的な変更を停止し、前記着信ネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスに直接ルーティングすることと
を含む、方法。
【請求項2】
前記着信ネットワーク・トラフィックが1つまたは複数のストリームを含み、前記1つまたは複数のストリームの各々がビデオまたはオーディオあるいはその両方を含み、前記1つまたは複数のストリームの各々が前記ローカル・デバイスのうちの1つまたは複数に宛てられる、請求項1に記載の方法。
【請求項3】
前記ネットワーク・トラフィックを前記変更することが、
ローカル・ルータによって、前記着信ネットワーク・トラフィックのソースIPアドレスを検出することと、
前記着信ネットワーク・トラフィックを最適化アナライザに一時的にリダイレクトするためのリクエストを前記着信ネットワーク・トラフィックのソースに送ることと、
前記1つまたは複数の着信ストリームを分析して、変更のために前記ストリームのうちの1つまたは複数を識別することと、
変更のために前記着信ストリームのうちの1つまたは複数を識別したことに応じて、
識別された着信ストリームごとに、
前記識別された着信ストリームを連続的に変更することと、
前記変更されたストリームを前記ローカル・デバイスにリダイレクトすることと
を含む、請求項1に記載の方法。
【請求項4】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームからの動きおよび音を認識するように最適化アナライザを訓練することであり、前記動きが、前記1つまたは複数のストリームのビデオ部分におけるシーンおよびオブジェクトを含み、前記音が、スピーチ、嘆息、不可聴音、および無音期間を含む、前記訓練することと、
利用可能な残りの帯域幅の量に基づいて、前記ストリームのうちの1つまたは複数に割り当てられる帯域幅を制限することであり、前記制限することが、ビデオ品質を低下させることと、オーディオのみに切り替えることと、映像をフリーズすることとを含む、前記制限することと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームが、前記最適化アナライザにリダイレクトされることを無効にされる、請求項4に記載の方法。
【請求項6】
前記1つまたは複数のストリームに適用される変更のタイプは、前記1つまたは複数のストリームが前記第1の閾値の下にとどまる間、最少の中断を与える変更のタイプに基づく、請求項1に記載の方法。
【請求項7】
予測モデルは、前記帯域幅が前記第1の閾値を下回っている間に前記帯域幅を超えることを予想し、前記予想に基づいて、前記1つまたは複数のストリームのうちの少なくとも1つに対する前記着信ネットワーク・トラフィックを前記最適化アナライザにルーティングし始める、請求項1に記載の方法。
【請求項8】
コンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を含み、前記プログラム命令が、処理ユニットによって実行可能であり、それによって、前記処理ユニットに、
ローカル・ネットワーク上のルータによって、前記ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、前記着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出することと、
前記帯域幅が前記第1の閾値を超えたことを検出したことに応じて、1つまたは複数のローカル・デバイスへの前記着信ネットワーク・トラフィックをインターセプトし、全体的な帯域幅を低減するために前記着信ネットワーク・トラフィックを一時的に変更し、その後、前記変更されたネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスにリダイレクトすることと、
前記変更された着信ネットワーク・トラフィックの前記帯域幅が第2の閾値を下回ったことに応じて、前記着信ネットワーク・トラフィックの前記一時的な変更を停止し、前記着信ネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスに直接ルーティングすることと
を含む方法を実行させる、コンピュータ・プログラム製品。
【請求項9】
前記着信ネットワーク・トラフィックが1つまたは複数のストリームを含み、前記1つまたは複数のストリームの各々がビデオまたはオーディオあるいはその両方を含み、前記1つまたは複数のストリームの各々が前記ローカル・デバイスのうちの1つまたは複数に宛てられる、請求項8に記載のコンピュータ・プログラム製品。
【請求項10】
前記ネットワーク・トラフィックを前記変更することが、
ローカル・ルータによって、前記着信ネットワーク・トラフィックのソースIPアドレスを検出することと、
前記着信ネットワーク・トラフィックを最適化アナライザに一時的にリダイレクトするためのリクエストを前記着信ネットワーク・トラフィックのソースに送ることと、
前記1つまたは複数の着信ストリームを分析して、変更のために前記ストリームのうちの1つまたは複数を識別することと、
変更のために前記着信ストリームのうちの1つまたは複数を識別したことに応じて、
識別された着信ストリームごとに、
前記識別された着信ストリームを連続的に変更することと、
前記変更されたストリームを前記ローカル・デバイスにリダイレクトすることと
を含む、請求項8に記載のコンピュータ・プログラム製品。
【請求項11】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームからの動きおよび音を認識するように最適化アナライザを訓練することであり、前記動きが、前記1つまたは複数のストリームのビデオ部分におけるシーンおよびオブジェクトを含み、前記音が、スピーチ、嘆息、不可聴音、および無音期間を含む、前記訓練することと、
利用可能な残りの帯域幅の量に基づいて、前記ストリームのうちの1つまたは複数に割り当てられる帯域幅を制限することであり、前記制限することが、ビデオ品質を低下させることと、オーディオのみに切り替えることと、映像をフリーズすることとを含む、前記制限することと
をさらに含む、請求項8に記載のコンピュータ・プログラム製品。
【請求項12】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームが、前記最適化アナライザにリダイレクトされることを無効にされる、請求項8に記載のコンピュータ・プログラム製品。
【請求項13】
前記1つまたは複数のストリームに適用される変更のタイプは、前記1つまたは複数のストリームが前記第1の閾値の下にとどまる間、最少の中断を与える変更のタイプに基づく、請求項8に記載のコンピュータ・プログラム製品。
【請求項14】
予測モデルは、前記帯域幅が前記第1の閾値を下回っている間に前記帯域幅を超えることを予想し、前記予想に基づいて、前記1つまたは複数のストリームのうちの少なくとも1つに対する前記着信ネットワーク・トラフィックを前記最適化アナライザにルーティングし始める、請求項8に記載のコンピュータ・プログラム製品。
【請求項15】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合されたコンピュータ可読メモリであり、前記コンピュータ可読メモリが、
ローカル・ネットワーク上のルータによって、前記ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、前記着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出することと、
前記帯域幅が前記第1の閾値を超えたことを検出したことに応じて、1つまたは複数のローカル・デバイスへの前記着信ネットワーク・トラフィックをインターセプトし、全体的な帯域幅を低減するために前記着信ネットワーク・トラフィックを一時的に変更し、その後、前記変更されたネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスにリダイレクトすることと、
前記変更された着信ネットワーク・トラフィックの前記帯域幅が第2の閾値を下回ったことに応じて、前記着信ネットワーク・トラフィックの前記一時的な変更を停止し、前記着信ネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスに直接ルーティングすることと
を行うための命令を含む、前記コンピュータ可読メモリと
を含むコンピュータ・システム。
【請求項16】
前記着信ネットワーク・トラフィックが1つまたは複数のストリームを含み、前記1つまたは複数のストリームの各々がビデオおよびオーディオを含む、または前記1つまたは複数のストリームの各々が前記ローカル・デバイスのうちの1つまたは複数に宛てられる、あるいはその両方である、請求項15に記載のコンピュータ・システム。
【請求項17】
前記ネットワーク・トラフィックを前記変更することが、
ローカル・ルータによって、前記着信ネットワーク・トラフィックのソースIPアドレスを検出することと、
前記着信ネットワーク・トラフィックを最適化アナライザに一時的にリダイレクトするためのリクエストを前記着信ネットワーク・トラフィックのソースに送ることと、
前記1つまたは複数の着信ストリームを分析して、変更のために前記ストリームのうちの1つまたは複数を識別することと、
変更のために前記着信ストリームのうちの1つまたは複数を識別したことに応じて、
識別された着信ストリームごとに、
前記識別された着信ストリームを連続的に変更することと、
前記変更されたストリームを前記ローカル・デバイスにリダイレクトすることと
を含む、請求項15に記載のコンピュータ・システム。
【請求項18】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームからの動きおよび音を認識するように最適化アナライザを訓練することであり、前記動きが、前記1つまたは複数のストリームのビデオ部分におけるシーンおよびオブジェクトを含み、前記音が、スピーチ、嘆息、不可聴音、および無音期間を含む、前記訓練することと、
利用可能な残りの帯域幅の量に基づいて、前記ストリームのうちの1つまたは複数に割り当てられる帯域幅を制限することであり、前記制限することが、ビデオ品質を低下させることと、オーディオのみに切り替えることと、映像をフリーズすることとを含む、前記制限することと
をさらに含む、請求項15に記載のコンピュータ・システム。
【請求項19】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームが、前記最適化アナライザにリダイレクトされることを無効にされる、請求項15に記載のコンピュータ・システム。
【請求項20】
予測モデルは、前記帯域幅が前記第1の閾値を下回っている間に前記帯域幅を超えることを予想し、前記予想に基づいて、前記1つまたは複数のストリームのうちの少なくとも1つに対する前記着信ネットワーク・トラフィックを前記最適化アナライザにルーティングし始める、請求項15に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、一般に、コンピュータ・システムに関し、より具体的には、ネットワーキング帯域幅に関する。
【背景技術】
【0002】
インターネット・サービスは、コンシューマにとってますます重要になっている。ワールド・ワイド・ウェブへの一般的なアクセスを提供するために最初に開発されたコンシューマ・インターネット・サービスは、現在、ビデオおよびオーディオ・ストリーミング・サービス、IP電話、および仮想ミーティング・サービスを含む。種々雑多な要求がインターネット・サービスの帯域幅に配置されることは一般的であり得る。例えば、ある場所にいる多数のユーザは、同時に、ビデオをストリーミングし、電話で会話し、ゲームを行い、Zoomミーティングに参加していることがある。ユーザの各々は、競合する需要の間で単一の帯域幅が分配されるので、低品質なパフォーマンスを経験することがある。
【0003】
1つのオプションは、インターネット・サービスをより大きい帯域幅を有するプランにアップグレードすることであるが、それは、アップグレード・プランの利用率または費用のいずれかのために可能でない場合がある。
【0004】
帯域幅が制限されるときにネットワーク上のすべてのユーザが影響を受けないように、着信ストリームを変更し分散させることは有利であろう。
【発明の概要】
【0005】
制限された帯域幅条件下でのストリーム変更が提供される。ローカル・ネットワーク上のルータが、ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出する。ルータは、着信ネットワーク・トラフィックを最適化アナライザに一時的にリダイレクトするためのリクエストを着信ネットワーク・トラフィックのソースに送る。変更のために1つまたは複数のストリームを識別するための分析が着信ストリーム上で実行される。変更のために着信ストリームのうちの1つまたは複数を識別したことに応じて、識別された着信ストリームごとに、識別された着信ストリームを連続的に変更し、変更されたストリームをローカル・デバイスにリダイレクトする。
【0006】
本発明の一態様によれば、ローカル・ネットワーク上のルータによって、ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出することと、帯域幅が第1の閾値を超えたことを検出したことに応じて、1つまたは複数のローカル・デバイスへの着信ネットワーク・トラフィックをインターセプトし、全体的な帯域幅を低減するために着信ネットワーク・トラフィックを一時的に変更し、その後、変更されたネットワーク・トラフィックを1つまたは複数のローカル・デバイスにリダイレクトすることと、変更された着信ネットワーク・トラフィックの帯域幅が第2の閾値を下回ったことに応じて、着信ネットワーク・トラフィックの一時的な変更を停止し、着信ネットワーク・トラフィックを1つまたは複数のローカル・デバイスに直接ルーティングすることとを含む方法が提供される。
【0007】
本発明の別の態様によれば、コンピュータ・プログラム製品が提供され、コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を含み、プログラム命令が、処理ユニットによって実行可能であり、それによって、処理ユニットに、ローカル・ネットワーク上のルータによって、ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出することと、帯域幅が第1の閾値を超えたことを検出したことに応じて、1つまたは複数のローカル・デバイスへの着信ネットワーク・トラフィックをインターセプトし、全体的な帯域幅を低減するために着信ネットワーク・トラフィックを一時的に変更し、その後、変更されたネットワーク・トラフィックを1つまたは複数のローカル・デバイスにリダイレクトすることと、変更された着信ネットワーク・トラフィックの帯域幅が第2の閾値を下回ったことに応じて、着信ネットワーク・トラフィックの一時的な変更を停止し、着信ネットワーク・トラフィックを1つまたは複数のローカル・デバイスに直接ルーティングすることとを含む方法を実行させる。
【0008】
本発明の別の態様によれば、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されたコンピュータ可読メモリであり、コンピュータ可読メモリが、ローカル・ネットワーク上のルータによって、ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出することと、帯域幅が第1の閾値を超えたことを検出したことに応じて、1つまたは複数のローカル・デバイスへの着信ネットワーク・トラフィックをインターセプトし、全体的な帯域幅を低減するために着信ネットワーク・トラフィックを一時的に変更し、その後、変更されたネットワーク・トラフィックを1つまたは複数のローカル・デバイスにリダイレクトすることと、変更された着信ネットワーク・トラフィックの帯域幅が第2の閾値を下回ったことに応じて、着信ネットワーク・トラフィックの一時的な変更を停止し、着信ネットワーク・トラフィックを1つまたは複数のローカル・デバイスに直接ルーティングすることとを行うための命令を含む、コンピュータ可読メモリとを含むコンピュータ・システムが提供される。
【0009】
さらなる特徴および利点は、本明細書で説明される技術によって実現される。他の実施形態および態様が、本明細書において詳細に説明される。よりよい理解のために、説明および図面を参照されたい。
【0010】
本発明と見なされる主題は、本明細書の最後にある特許請求の範囲において特に指摘され明確に請求される。前述および他の特徴および利点は、添付の図面と併せて行われる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0011】
【
図1】本発明の一実施形態による、制限された帯域幅条件下でのストリーム変更のための例示的なシステムの機能ブロック図である。
【
図2】帯域幅閾値に応じてルータ上のビデオ・ストリームを自動的にかつインテリジェントに変更するフローチャートである。
【
図3】
図2の方法を実行するために適用可能な例示的なコンピューティング・デバイス500を示す図である。
【発明を実施するための形態】
【0012】
本開示は、一般に、ユーザ・コンピューティング技術の分野に関し、特に、制限された帯域幅条件下でストリームを変更することに関する。
【0013】
インターネット・サービスは、コンシューマにとってますます重要になっている。ワールド・ワイド・ウェブへの一般的なアクセスを提供するために最初に開発されたコンシューマ・インターネット・サービスは、現在、ビデオおよびオーディオ・ストリーミング・サービス、IP電話、および仮想ミーティング・サービスを含む。種々雑多な要求がインターネット・サービスの帯域幅に配置されることは一般的であろう。例えば、ある場所にいる多数のユーザは、同時に、ビデオをストリーミングし、電話で会話し、ゲームを行い、Zoomミーティングに参加していることがある。ユーザの各々は、競合する需要の間で単一の帯域幅が分配されるので、低品質なパフォーマンスを経験することがある。しかしながら、パフォーマンスは、必ずしも一様に悪いとは限らず、それは、ユーザのフラストレーションを高めることがある。例えば、パフォーマンスは、アプリケーションが、接続を行い、帯域幅の大きいパーセンテージを消費する場合、予測できないほどユーザ間で変動することがある。残りの帯域幅が、残りのユーザ間で分配され、それは、パフォーマンスの低下をもたらす。第1のユーザの接続が解放されると、別の接続が帯域幅を要求するまで、パフォーマンスは、少なくとも一時的に急上昇することがある。
【0014】
本発明の実施形態は、これらの記載された欠点に対処する。デバイス間の帯域幅割り当てを切り替えることによって、およびすべてのユーザの経験が改善されるように着信コンテンツをモニタし、それによって、ユーザがストリーム内の重要なコンテンツを逃さないようにすることによって、高忠実度ビデオを提供するスマートな方法が開示される。
【0015】
1つの実施形態では、多数のユーザが同時にオンラインである場合、どのユーザがライブ・ビデオを見る必要があるかに関して、ストリーミングされるコンテンツの実時間分析に基づいて、スマートな決定が行われる。例えば、発表者が話しているが、ボードに書くこと、指し示すこと、または何かをクラスに示すことなどのアクティビティを実行していない場合、ストリームを一時的にオーディオのみに切り替え、それによって、帯域幅を節約し、その帯域幅は、他のユーザに利用可能にすることができる。
【0016】
別の例として、スライド・プレゼンテーションが共有されているが、発表者がマウスでプレゼンテーションを積極的に指し示していない場合、スライドがスクリーン上で一時的にフリーズされ、オーディオのみが共有され、それにより、帯域幅を同様に節約することができる。
【0017】
帯域幅使用の改善を達成する1つの方法は、エージェントによるものであり、エージェントは、ネットワークのルータ110にインストールされ、マルチ・デバイス帯域幅最適化モード115で実行される。カンファレンシング・アプリケーションでは、エージェントは、ストリーミング優先度モジュール130として帯域幅最適化サーバ125にインストールされ得る。エージェントは、例えばIPアドレスによって特定のユーザ・ルータを識別およびモニタするように構成される。モニタされるユーザ・ルータの各々は、例えば、帯域幅容量のパーセンテージの設定可能な閾値内にあることによって、ルータが帯域幅限界に近づいていることをエージェントに報告することができる。これに応じて、エージェントは、サーバからユーザ・ルータに、次いでデバイスにやって来るコンテンツを変更することができる。
【0018】
エージェントは、サード・パーティ・サーバ上で動作する場合、様々なソース(すなわち、様々なサービス・プロバイダ)から来るストリームをモニタするように拡張することができる。各々の構成されたソースをモニタおよび変更するための1つまたは複数のエージェントと、加入ユーザのルータへのストリームの送信を管理するための1つまたは複数のエージェントとが存在し得る。
【0019】
本発明の実施形態が、次に、図に関連してより詳細に説明される。
【0020】
図1は、本発明の一実施形態による、制限された帯域幅条件下でのストリーム変更のための例示的なシステム(システム100)の機能ブロック図である。
【0021】
システム100は、外部ストリーミング・サーバ140、帯域幅最適化サーバ125、ルータ110、および少なくとも1つのローカル・ユーザ・デバイス150を含む。ルータ110、外部ストリーミング・サーバ140、および帯域幅最適化サーバ125は、有線または無線外部ネットワーク105を介して相互接続される。帯域幅最適化サーバ125は、外部ストリーミング・サーバ140上の1つまたは複数のコンテナで動作することができる。
【0022】
ユーザ・デバイス150は、オーディオまたはビデオあるいはその両方の入力および出力を処理することができる任意のデバイスを含むことができる。ユーザ・デバイス150は、ホーム・ネットワーク145を通してルータ110に接続される。この文脈において、ホーム・ネットワークは、学校、大学、またはオフィス内のネットワークをさらに含み、そこでは、ビデオ・カンファレンシングが定期的に行われ、それゆえに、帯域幅へのより高い要求が通常である。
【0023】
ビデオ・カンファレンシング・アプリケーション155は、Zoom、Google Talk、WebEx、などを含むビデオ・カンファレンシングのための任意のプラットフォーム/アプリケーションを含む。ビデオ・カンファレンシング・アプリケーション155は、ルータ110上のデバイス・マネージャ120からのデータ・ストリーム(変更されていていてもよく、変更されていなくてもよい)を受信する。帯域幅最適化サーバ125上のストリーミング優先度モジュール130および映像/オーディオ分析モジュール135は、必要に応じて着信ストリームを変更する。これらのモジュールの動作は、
図2を参照してさらに論じられる。
【0024】
外部ネットワーク105は、Wi-Fi、Bluetooth、Ethernet(R)、ファイバ・オプティクス、または3G(および他の互換性のあるバージョン)などの、システム100の構成要素間のデータ転送を可能にする任意の通信プロトコルを含むことができる。有線または無線あるいはその両方のホーム・ネットワーク145は、Bluetooth、Wi-Fi、Ethernet(R)、または3G(および他の互換性のあるバージョン)などの、システム100の構成要素間のデータ転送を可能にする任意の通信プロトコルを含むことができる。
【0025】
1つまたは複数の外部ストリーミング・サーバ140は、例えば、企業、病院、または学校などのようなエンティティ、およびエンティティの利用者(例えば、従業員、学生、など)に代わって通信サービスをホストする。通信サービスは、Zoom、Google Talk、WebEx(R)、Skype、および他の同様の通信サービスのインスタンスを含むことができる。
【0026】
帯域幅最適化サーバ125は、ストリーミング優先度モジュール130と、映像/オーディオ分析モジュール135とを含む。帯域幅最適化サーバ125は、サード・パーティ・サービスとすることができ、サード・パーティ・サービスを通して、ユーザは、例えばサービスに加入することによって、着信ストリーミング・ビデオまたは他のエンターテインメント・サービスをルーティングすることに同意する。
【0027】
ストリーミング優先度モジュール130は、ホーム・ネットワーク145上の第1の帯域幅が設定可能な閾値を超えたことをマルチ・デバイス帯域幅最適化モード115が検出したときに有効にされる。ストリーミング優先度モジュール130は、ホーム・ネットワーク145の帯域幅が第1の閾値よりも低い第2の設定可能な閾値を下回るまで動作し続ける。この帯域幅範囲は、着信ストリームのインターセプトおよび変更なしに、ストリーミング動作のためのホーム・ネットワーク145の十分な帯域幅利用を保証する。
【0028】
ホーム・ネットワーク145への1つまたは複数のストリームは、ストリーミング優先度モジュール130にリダイレクトされ、ストリーミング優先度モジュール130は、映像/オーディオ分析モジュール135からの入力を使用して、全体的な帯域幅を低減するためにストリームを一時的に変更する方法を推測する。変更されたストリームは、出力としてルータ110に送られる。変更は、限定はしないが、オーディオのみへの切り替え、映像のビットレートの低減、または映像のフリーズ、あるいはその組合せを含む。どの変更が実行されるかは、所与のユーザに要求される帯域幅削減の量に依存し得る。それはまた、ユーザにとって何が最も邪魔にならないかに依存する。例えば、映像のフリーズは、発表者がポインタを使用していないPowerPointでは好ましいであろう。科学の教師が撮影中の実験を実行している場合、映像のフリーズは好ましくないであろう。そのシナリオでは、ビットレートの低減が好ましく、目標は、ユーザの帯域幅要件下に入るように最小量の変更を実行することである。変更を検討中の1つまたは複数のストリームと、実行すべき1つまたは複数のあり得る変更とがある可能性がある。次に、特定の変更がどれくらいの帯域幅低減を提供することができるかの予測が、多数のアクティブなストリームの各々に対して考慮されて、帯域幅限界の下に入るのに何が最もよく効くかが決定される。
【0029】
リダイレクションは、ルータ110が、ソースIPと、多数のゲートウェイを含むことができる宛先ルートと、宛先IPアドレスとを有することに基づく。多数のユーザが外部ストリーミング・サーバ140上のコンテンツを購読することができるので、接続は、特定のユーザ・デバイス150のIPアドレスによって維持される。システム100の構成要素間の接続は、既知のTCP/IPプロトコルを使用して維持される。
【0030】
例えば、帯域幅がルータ110の閾値を上回っていることをストリーミング優先度モジュール130が検出した場合、フィルタリングは、IPアドレスによって、リクエストのデータ・ソースを認識する。ルータ110は、帯域幅最適化サーバ125のIPアドレスを用いて「ルート・トゥ(route to)」フィールドを更新する。データ・パケット自体は、外部ストリーミング・サーバ140からルータ110に送り出されず、リクエストのみが送り出される。次いで、データ・パケットは、変更のための帯域幅最適化サーバ125のIPアドレスにルーティングされ、次いで、帯域幅最適化サーバ125のIPアドレスからユーザ・デバイス150にルーティングされる。ホーム・ネットワーク145上の帯域幅が第2の閾値を下回ると、140から来るデータ・リクエストに対するルータ110の「ルート・トゥ」フィールドは、データ・パケットをユーザ・デバイス150に直接送るように更新されることになる。
【0031】
ウェブ・カンファレンスでは、ストリーミング優先度モジュール130は、ビデオが一時的に必要とされないと決定されたとき、オーディオ信号のみを通過させることによってストリームを変更することができる。ストリーミング優先度モジュール130は、コンテンツ修正を実行し、その後、変更されたコンテンツをルータ110に送る。帯域幅最適化サーバ125、具体的にはメモリおよびCPUのリソース利用率を最適化するために、オリジナル・ストリームは、データベース138に格納される場合がある。この場合、ストリームは、セグメントで処理されてもよい。
【0032】
ストリーミング優先度モジュール130は、ビデオが一時的に変更されてもよいかどうかを示す符号/信号を認識するように訓練された映像/オーディオ分析モジュール135を呼び出す。オーディオ/映像分析は、IBM Watson(TM)Visual Recognition、IBM Watson(TM)Natural Language Understanding、およびIBM Watson(TM)Natural Language ClassifierなどのIBM Watson(TM)APIの組合せによって実行されてもよい。
【0033】
例えば、IBM Watson(TM)Visual Recognitionは、ディープ・ラーニング・アルゴリズムを使用して、ストリーミングされたシーン、オブジェクト、顔、および他のコンテンツにおける動きについて画像を分析する。IBM Watson(TM)Natural Language Understandingは、エンティティ、キーワード、カテゴリ、感傷、感情、関係、およびシンタクスなどのメタデータをテキストから抽出することができる。IBM Watson(TM)Natural Language Classifierは、自然言語処理(NLP)を実行するために使用され得るカスタム・テキスト分類モデルを構築して、言語を要素片にトークン化し構文解析するために使用することができる。NLPは、トークン化に加えて、構文解析、ストップ・ワード除去、品詞タグ付けを含む。NLP処理は、自然言語テキストを標準化された構造に自由に形成し、標準化された構造は、必要に応じて他の処理に入力することができる。しかしながら、本発明の実施は、IBM APIに限定されない。他の候補のAPIは、Google Cloud Natural Language、Google CloudVision、Amazon Rekognition、およびMicrosoft Text AnalyticsのAPIを含む。
【0034】
APIによって、映像/オーディオ分析モジュール135は、ストリームから動きおよび音を認識するように訓練され得る。いくつかの例は、1人または複数の人々がエンターテインメント・ビデオにおけるように互いに話すこと、人が、オンライン・クラスまたはミーティングにおけるように情報をグループに提示すること、1人または複数の人々がジェスチャ、マウスの移動、レーザ・ポインタ、などにおけるようにオブジェクトと対話すること、1人または複数の人々がオンライン・ミーティングにおいて共同作業するときのように会話をやりとりすること、および1人または複数の人々が書込み、プレゼンテーションのスライドの変更、タスクを実行するステップの表示におけるように環境と対話することを含む。
【0035】
オーディオ/映像分析は、IBM Watson(TM)APIの組合せによって実行されてもよい。例えば、IBM Watson(TM)Visual Recognitionは、ディープ・ラーニング・アルゴリズムを使用して、シーン、オブジェクト、顔、および他のコンテンツの画像を分析する。IBM Watson(TM)Speech to Textは、スピーチ分析などのユース・ケースのためのスピーチ書き起こしを可能にする。スピーチは、テキストに変換され、タグ付けおよび分類を行うことができる言語パターンについて分析される。無音が、さらに、嘆息および不可聴音と同様に言語パターンの要因として考慮される。IBM Watson(TM)Natural Language Understandingは、エンティティ、キーワード、カテゴリ、感傷、感情、関係、およびシンタクスなどのメタデータをテキストから抽出することができる。IBM Watson(TM)Natural Language Classifierは、自然言語処理(NLP)を実行するために使用され得るカスタム・テキスト分類モデルを構築して、言語を要素片にトークン化し構文解析するために使用することができる。NLPは、トークン化に加えて、構文解析、ストップ・ワード除去、品詞タグ付けを含む。NLP処理は、自然言語テキストを標準化された構造に自由に形成し、標準化された構造は、必要に応じて他の処理に入力することができる。
【0036】
IBM Watson(TM)Natural Language Understandingのオーディオ解析出力をIBM Watson(TM)Natural Language Classifierに入力して、カスタム・テキスト分類モデルを構築し、自然言語処理(NLP)を実行し、それによって、言語を要素片にトークン化し構文解析することができる。NLP出力は、ストリーミング優先度モジュール130によるさらなる処理のために、6つのカテゴリ、すなわち、概念、関係、エンティティ、カテゴリ、キーワード、および意味役割に標準化することができる。単語/情報の近接性、意味構造、および文法を分析することができる。
【0037】
ルータ110は、ホーム・ネットワーク145と外部ネットワーク105との間の接続ハブとして機能する。ルータ110は、マルチ・デバイス帯域幅最適化モード115と、デバイス・マネージャ120とを含む。この文脈において、「モード」は、ルータ110で利用可能ないくつかの動作モードのうちの1つを指す。マルチ・デバイス帯域幅最適化モード115は、動作モードのいずれかの中で使用され得るソフトウェア・モジュールとして設けられてもよい。ルータ110は、ホーム・ネットワーク145および外部ネットワーク105上の正しいデバイスにデータをルーティングするデバイス・マネージャ120を含む。
【0038】
閾値は、ルータ110のデバイス・プロパティ内で構成される、ユーザのホーム・ネットワーク145の帯域幅のデフォルト・パーセンテージとして設定することができる。閾値がサービス・プロバイダからのユーザのサービス・プランに基づく場合、ルータ110は、サービス・プロバイダから帯域幅情報を抽出することができる可能性がある。ルータ110が帯域幅を抽出することができない場合、ユーザは、機能を有効にする前にプラン帯域幅情報を手動で入力することができる。閾値は、モードのインストールの中で提供されるか、またはルータに事前にプログラムされていてもよい。ルータ110は、帯域幅が別の方法で提供されない場合、ネットワークが限界に達したことを検出することによって帯域幅を決定することができる。デフォルト閾値限界は、設定可能であり、例えば、第1の閾値に対して80%および第2の閾値に対して50%とすることができる。
【0039】
ホーム・ネットワーク145の管理ユーザはマルチ・デバイス帯域幅最適化モード115を有効することができ、それにより、デバイス・マネージャ120の管理下にある1つまたは複数のユーザ・デバイス150は着信帯域幅をモニタできるようになる。デバイス・マネージャ120は、外部ストリーミング・サーバ140または帯域幅最適化サーバ125からの着信データ・ストリームを宛先ユーザ・デバイス150にルーティングする。
【0040】
設定可能な閾値が超えられたことをユーザ・デバイス150が検出すると、ルータ110は、外部サーバ140がビデオ・ストリームを帯域幅最適化サーバ125に向けるように宛先ルーティングを更新することができる。マルチ・デバイス帯域幅最適化モード115はまた、ストリーミング優先度モジュール130の変更されたビデオ・ストリーム出力を受信する。いくつかの実施形態では、ユーザは、例えば、機密のデータの送信および変更を保護するために、1つまたは複数のストリームが帯域幅最適化サーバ125にリダイレクトされるのを無効にすることができる。帯域幅最適化サーバ125が外部ストリーミング・サーバ140からのストリームを分析のためにインターセプトしインテリジェントに変更することを通知し許可することによって、ルータ110の帯域幅は低減される。
【0041】
図2は、ルータ110の帯域幅が閾値を超えたときビデオ・ストリームを自動的にインテリジェントに変更するために実行される動作の例示的なフローチャート200である。
【0042】
方法200は、帯域幅が第1の閾値を超えている場合、ルータ110のマルチ・デバイス帯域幅最適化モード115が着信トラフィックを連続的にモニタすることから始まる。第1の閾値は、ルータ110またはサービス・プロバイダの帯域幅限界に設定することができる。第1の閾値は、ルータ110またはサービス・プロバイダの帯域幅限界よりも低く、例えば、80%または90%に設定されてもよい。いくつかの実施形態では、予測モデルが、着信トラフィックの帯域幅の変化を履歴に基づいて予想するために使用されてもよい。ブロック210への「はい」の分岐は、着信トラフィックの帯域幅が第1の閾値を上回らない場合でさえ選ばれることがある。予測モデルの一例は、数人のユーザが毎週月曜日の9AM~12PMにビデオ・ストリームにアクセスし、その時間帯に帯域幅が上昇する可能性が高いことを示す履歴を含むことがある。
【0043】
しかしながら、帯域幅が第1の閾値を下回った(ブロック205の「いいえ」分岐)場合、この方法は、ループ・バックし、ネットワークのトラフィックをモニタし続ける。
【0044】
帯域幅が第1の閾値を上回った(ブロック205の「はい」分岐)場合、ブロック210において、ルータ110のマルチ・デバイス帯域幅最適化モード115は、外部サーバ140から生じた着信データ・ストリームを、デバイス・マネージャ120に直接行くのではなく帯域幅最適化サーバ125を通過するようにリダイレクトする。いくつかの実施形態では、ユーザは、例えば、機密のデータを保護するために、1つまたは複数のストリームが帯域幅最適化サーバ125にリダイレクトされることを無能にする機能を有することができる。
【0045】
ブロック215において、ルータ110のマルチ・デバイス帯域幅最適化モード115は、リダイレクトされた帯域幅の変化を検出し続ける。帯域幅の変化が50%などのユーザのルータ110に固有の設定可能な第2の閾値を下回ったことは、着信トラフィックがもはや問題ではない可能性があることを示すことができる。いくつかの実施形態では、マルチ・デバイス帯域幅最適化モード115は、着信データ・ストリームの変動性を考慮するために、着信トラフィックが第2の閾値を下回る設定可能な継続期間(例えば、30分)の間待機することができる。
【0046】
リダイレクトされた帯域幅が第2の閾値を下回った(ブロック215の「はい」分岐)場合、マルチ・デバイス帯域幅最適化モード115は、開始までループ・バックし、着信トラフィックは、ルータ110に向けられ、もはや帯域幅最適化サーバ125にリダイレクトされないことになる。
【0047】
ブロック215を続けると、リダイレクトされた帯域幅が第2の閾値以上になった(ブロック215の「いいえ」分岐)場合、ストリーミング優先度モジュール130がブロック220において引き継ぎ、ビデオ/オーディオ分析モジュール135は、着信ストリームのビデオおよびオーディオを分析するためにいくつかのIBM Watson(TM)APIの組合せを呼び出すことができる。例えば、IBM Watson(TM)Speech to TextおよびIBM Watson(TM)Natural Language Understandingは、着信ストリームのオーディオを分析することができ、IBM Watson(TM)Visual Recognitionは、着信ストリームの映像部分を分析することができる。ビデオ/オーディオ分析は、スピーキング(例えば、スピーチをテキストに変換し、テキストにNLPを実行する)、手、レーザ・ポインタ、ポインティング・スティック、またはマウス・ポインタなどを用いた指し示し、そうでなければジェスチャ、発表者または出席者が、ビデオ・カンファレンス・アプリケーション155に表示された情報に注意を集中するように、他の出席者に求める音声、環境内のオブジェクトとの発表者または出席者の対話(例えば、マーカ・ボード、黒板、または同様の表示面への書込み、実験の実行、など)スクリーン上で共有されるものとの発表者または出席者の対話(例えば、PowerPoint、Muralの積極的な更新、メモの取得、など)などの符号/信号を認識するように訓練される。
【0048】
この分析は、上述の例の各々がニューロンの個々の経路として認識されるニューラル・ネットワークとして実施することができる。これらの例のうちのいくつかを識別するのに、多数の層が必要とされることがある。例えば、教師がマーカ・ボードまたは同様の書込みおよび表示ボードを指し示していることを認識する前に、初期の層は、人の存在、マーカ・ボード、ポインティング機構、人が指し示している方向を認識することができる。ニューラル・ネットワークは、好ましくは、異なるタイプの変更を表す多数の出力(0と1との間の値)を有する。例えば、ビデオは除去されてもよく、ビデオはフリーズされてもよく、オーディオは除去されてもよい。同じ変更をもたらし、その変更に対する出力スコアを増加させる異なるアクションをアクティベートすることができる。それらの出力が閾値を上回る場合、1つまたは複数のことが実行され、ストリームは225において変更される。
【0049】
ブロック225において、ストリーミング優先度モジュール130は、1つまたは複数のビデオ・ストリームが一時的に変更されてもよいかどうかを決定する。例えば、発表者または出席者が話しているが、なにも指し示していない、何も(例えば、スライド、テキストブック画像、などを)示していない、またはボードに書き込んでいないことは、オーディオのみに切り替えることを可能にし、またはユーザがビデオを明確に見る必要はないので、ビデオ品質が一時的に品質を落とされてもよい。同様に、発表者または出席者は、スライドを共有しているが、何も積極的にハイライトせず、スクリーン上では何も変化していない。このストリームは、スクリーン上の現在のスライドを一時的に停止/フリーズし、オーディオをストリーミングし続けることができ、その結果、ユーザは依然として話についていくことができ、スライドが変わると、新しいスライドは、ユーザのディスプレイ上で停止/フリーズすることができる。ビデオ・ストリームを変更することができないという指示、または通常のビデオストリーミングが再び始まってもよいという指示は、発表者または出席者が、マーカ・ボード、黒板、または同様の表示面に書き込むことに取りかかること、または共有されているスクリーンに表示された項目を積極的に指し示すこと、または多数の出席者がPowerPointまたはMuralなどのファイル上で共同作業している能動的作業セッションを含む。いくつかの実施形態では、ユーザは、ビデオ・ストリームが変更されないように、ビデオ・カンファレンシング・アプリケーション155またはルータ110のマルチ・デバイス帯域幅最適化モード115内に、ビデオ・ストリームに優先順位を付けるためのオプションを有することができる。その場合、最大閾値が超えられた場合でも、ビデオ・ストリームは、帯域幅最適化サーバ125をバイパスする。ユーザがビデオを変更しないオプションを選択した場合、ルータ110は、そのストリームの宛先経路を更新し、それによって、帯域幅最適化サーバ125をバイパスすることができる。この優先順位付けは、着信ストリーム(例えば、定期的なビデオ・カンファレンス・ミーティング、通常の訓練ビデオ)のタイプおよび頻度、ならびに特定のユーザへの特定のストリームの重要度(例えば、定期的にスケジュールされたミーティングの通常の出席者は優先のストリームと考えられ得る)をシステム100が学習する認識訓練ステップとして使用することができる。
【0050】
1つまたは複数のビデオ・ストリームを変更することにより、制限された帯域幅下でのネットワークのすべてのメンバ(例えば、世帯)は、重要な詳細を見逃すことなく、ミーティングまたはクラスあるいはその両方に同時に出席することができるようになる。例えば、各親および子どもの各々は、1つまたは複数のストリームが変更された別個のアクティブなビデオ・カンファレンシング・アプリケーション・セッションを有することができる。変更されるストリームは、ブロック220および225において行われた分析および決定に依存して連続的に変化することができる。
【0051】
ビデオ・ストリームのうちの1つまたは複数を一時的に変更することができる(ブロック225の「はい」分岐)場合、ブロック230において、ストリーミング優先度モジュール130は、ストリームを変更し、帯域幅を制限し、変更されたストリームをルータ110に中継することができる。ストリームを変更する方法の選択は、ユーザのために残っている利用可能な帯域幅の量に依存することができる(例えば、より低いビデオ品質対オーディオのみ)。ストリームが変更される優先順位は、ユーザの帯域幅限界内に収まるように、オリジナルのストリームからの帯域幅変化量が最も少ないストリームに与えることができる。
【0052】
ビデオ・ストリームのうちの1つまたは複数を一時的に変更することができない(ブロック225の「いいえ」分岐)場合、ブロック235において、ストリーミング優先度モジュール130は、優先順位に基づいてストリームを変更することができる。例えば、ユーザは、学校に通っている人が授業中に優先権を常に有するようにネットワークを設定することができる。代替として、マルチ・デバイス帯域幅最適化モード115は、制限された帯域幅状態が検出されたとき、ネットワーク・プロバイダによって行われるアクションをデフォルトにすることができる。
【0053】
1つまたは複数の実施形態において、帯域幅最適化サーバ125は、ビデオが変更され、バッファリングされ、今では、エンド・ユーザに提供され得る場合、ビデオ・ストリームの短い部分(例えば、1~2秒)を格納するための専用の一時バッファを含むことができる。この格納されたビデオは、エンド・ユーザにプッシュされ、ストリームが実時間ビデオに追いつくまで、わずかに速い速度(例えば、1.5倍の速度)で再生することができる。このようにして、制限された帯域幅がストリームの変更を引き起こし、その結果、ビデオの一部が実時間で送られなかったとしても、ユーザは、ストリームのどれも見逃さないことになる。
【0054】
ブロック240において、ストリーミング優先度モジュール130は、変更されたビデオ・ストリームまたは変更されていないビデオ・ストリームあるいはその両方をルータ110にルーティングし、ルータ110は、そのストリームを正しいユーザ・デバイス150に宛て、そして、ブロック210に進むことができる。
【0055】
図3は、
図2のアルゴリズムを実行するために適用可能な例示的なコンピューティング・デバイス500を示す。コンピューティング・デバイス500は、内部構成要素800および外部構成要素900のそれぞれのセットを含むことができ、それらは、一緒に、ソフトウェア・アプリケーションのための環境を提供することができる。内部構成要素800のセットの各々は、1つまたは複数のプロセッサ820と、1つまたは複数のコンピュータ可読RAM822と、1つまたは複数のバス826上の1つまたは複数のコンピュータ可読ROM824と、
図2のアルゴリズムを実行する1つまたは複数のオペレーティング・システム828、ビデオ・カンファレンシング・アプリケーション155、ストリーミング優先度モジュール130、映像/オーディオ分析モジュール135と、1つまたは複数のコンピュータ可読有形ストレージ・デバイス830とを含む。1つまたは複数のオペレーティング・システム828は、それぞれのRAM822(一般にキャッシュメモリを含む)のうちの1つまたは複数を介してそれぞれのプロセッサ820のうちの1つまたは複数によって実行するために、それぞれのコンピュータ可読有形ストレージ・デバイス830のうちの1つまたは複数に格納される。
図3に示された実施形態では、コンピュータ可読有形ストレージ・デバイス830の各々は、内部ハード・ドライブの磁気ディスク・ストレージ・デバイスである。代替として、コンピュータ可読有形ストレージ・デバイス830の各々は、ROM824、EPROM、フラッシュ・メモリ、またはコンピュータ・プログラムおよびデジタル情報を格納することができる任意の他のコンピュータ可読有形ストレージ・デバイスなどの半導体ストレージ・デバイスである。
【0056】
内部構成要素800の各セットは、CD-ROM、DVD、SSD、USBメモリ・スティック、および磁気ディスクなどの1つまたは複数のコンピュータ可読有形ストレージ・デバイス936から読み出しそれに書き込むためのR/Wドライブまたはインターフェース832をさらに含む。
図3において、有形ストレージ・デバイスは、映像およびオーディオ・ストリームが格納されるデータベース138のためのストレージを含む。
【0057】
内部構成要素800の各セットは、ネットワーク・アダプタ(もしくはスイッチ・ポート・カード)またはインターフェース836、例えば、TCP/IPアダプタ・カード、無線WI-FIインターフェース・カード、または3Gもしくは4G無線インターフェース・カード、または他の有線もしくは無線通信リンクなどをさらに含むことができる。コンピューティング・デバイス500に関連するオペレーティング・システム828は、ネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、または他のワイド・エリア・ネットワーク)およびそれぞれのネットワーク・アダプタまたはインターフェース836を介して、外部コンピュータ(例えば、サーバ)からコンピューティング・デバイス500にダウンロードすることができる。コンピューティング・デバイス500に関連するネットワーク・アダプタ(もしくはスイッチ・ポート・アダプタ)またはインターフェース836およびオペレーティング・システム828から、それぞれのハード・ドライブ830およびネットワーク・アダプタ836にロードされる。
【0058】
外部構成要素900は、タッチ・スクリーン920およびポインティング・デバイス930をさらに含むことができる。デバイス・ドライバ840、R/Wドライブまたはインターフェース832、およびネットワーク・アダプタまたはインターフェース836は、ハードウェアおよびソフトウェア(ストレージ・デバイス830またはROM824あるいはその両方に格納された)を含む。
【0059】
本発明の様々な実施形態は、システム・バスを通してメモリ要素に直接または間接的に結合された少なくとも1つのプロセッサを含む、プログラム・コードを格納または実行あるいはその両方を行うのに適するデータ処理システムで実施することができる。メモリ要素は、例えば、プログラム・コードの実際の実行中に利用されるローカル・メモリと、バルク・ストレージと、実行中にコードがバルク・ストレージから取り出されなければならない回数を低減するために、少なくとも一部のプログラム・コードの一時的なストレージを提供するキャッシュ・メモリとを含む。
【0060】
入力/出力またはI/Oデバイス(限定はしないが、キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他のメモリ媒体、などを含む)は、直接、または介在するI/Oコントローラを通してシステムに結合することができる。ネットワーク・アダプタをさらにシステムに結合して、データ処理システムが、介在するプライベート・ネットワークまたはパブリック・ネットワークを通して他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合されるようになることを可能にすることができる。モデム、ケーブル・モデム、およびEthernet(R)カードは、利用可能なタイプのネットワーク・アダプタのほんの一部にすぎない。
【0061】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1つのコンピュータ可読ストレージ媒体(または複数の媒体)を含み得る。
【0062】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形のデバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のものの任意の適切な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的にコード化されたデバイス、および前述のものの任意の適切な組合せを含む。本明細書で使用されるコンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号などの一過性信号それ自体であると解釈されるべきではない。
【0063】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0064】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはSmalltalk、C++などのようなオブジェクト指向プログラミング言語および「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、全面的にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータでおよび部分的にリモート・コンピュータで、または全面的にリモート・コンピュータもしくはサーバで実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてもよく、または接続が(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによってコンピュータ可読プログラム命令を実行することができる。
【0065】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートまたはブロック図あるいはその両方を参照して本明細書に記載される。フローチャートまたはブロック図あるいはその両方の各ブロック、およびフローチャートまたはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実現され得ることが理解されよう。
【0066】
このようなコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、プログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。このようなコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含む製品を構成すべく、コンピュータ可読ストレージ媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに、特定の方式で機能するように指示することができるものであってもよい。
【0067】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、一連の動作ステップがコンピュータ、他のプログラマブル装置、または他のデバイスで実行されて、コンピュータ実施プロセスを作り出すものであってもよい。
【0068】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関しては、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替実施態様では、ブロックに記された機能は、図に記された順序から外れて行われてもよい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されてもよく、またはブロックは、時には、関連する機能に応じて逆の順序で実行されてもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するかあるいは専用ハードウェア命令とコンピュータ命令の組合せを実行する専用ハードウェア・ベース・システムで実施され得ることにも留意されたい。
【0069】
好ましい実施形態が本明細書において詳細に図示され説明されたが、本開示の範囲から逸脱することなく、様々な変更、追加、置換などを行うことができ、それゆえに、これらは、以下の特許請求の範囲において定義される本開示の範囲内にあると考えられることが当業者には明らかである。
【手続補正書】
【提出日】2024-07-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ローカル・ネットワーク上のルータによって、前記ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、前記着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出することと、
前記帯域幅が前記第1の閾値を超えたことを検出したことに応じて、1つまたは複数のローカル・デバイスへの前記着信ネットワーク・トラフィックをインターセプトし、全体的な帯域幅を低減するために前記着信ネットワーク・トラフィックを一時的に変更し、その後、前記変更されたネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスにリダイレクトすることと、
前記変更された着信ネットワーク・トラフィックの前記帯域幅が第2の閾値を下回ったことに応じて、前記着信ネットワーク・トラフィックの前記一時的な変更を停止し、前記着信ネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスに直接ルーティングすることと
を含む、方法。
【請求項2】
前記着信ネットワーク・トラフィックが1つまたは複数のストリームを含み、前記1つまたは複数のストリームの各々がビデオまたはオーディオあるいはその両方を含み、前記1つまたは複数のストリームの各々が前記ローカル・デバイスのうちの1つまたは複数に宛てられる、請求項1に記載の方法。
【請求項3】
前記ネットワーク・トラフィックを前記変更することが、
ローカル・ルータによって、前記着信ネットワーク・トラフィックのソースIPアドレスを検出することと、
前記着信ネットワーク・トラフィックを最適化アナライザに一時的にリダイレクトするためのリクエストを前記着信ネットワーク・トラフィックのソースに送ることと、
前記1つまたは複数の着信ストリームを分析して、変更のために前記ストリームのうちの1つまたは複数を識別することと、
変更のために前記着信ストリームのうちの1つまたは複数を識別したことに応じて、
識別された着信ストリームごとに、
前記識別された着信ストリームを連続的に変更することと、
前記変更されたストリームを前記ローカル・デバイスにリダイレクトすることと
を含む、請求項1に記載の方法。
【請求項4】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームからの動きおよび音を認識するように最適化アナライザを訓練することであり、前記動きが、前記1つまたは複数のストリームのビデオ部分におけるシーンおよびオブジェクトを含み、前記音が、スピーチ、嘆息、不可聴音、および無音期間を含む、前記訓練することと、
利用可能な残りの帯域幅の量に基づいて、前記ストリームのうちの1つまたは複数に割り当てられる帯域幅を制限することであり、前記制限することが、ビデオ品質を低下させることと、オーディオのみに切り替えることと、映像をフリーズすることとを含む、前記制限することと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームが、前記最適化アナライザにリダイレクトされることを無効にされる、請求項4に記載の方法。
【請求項6】
前記1つまたは複数のストリームに適用される変更のタイプは、前記1つまたは複数のストリームが前記第1の閾値の下にとどまる間、最少の中断を与える変更のタイプに基づく、請求項1に記載の方法。
【請求項7】
予測モデルは、前記帯域幅が前記第1の閾値を下回っている間に前記帯域幅を超えることを予想し、前記予想に基づいて、前記1つまたは複数のストリームのうちの少なくとも1つに対する前記着信ネットワーク・トラフィックを最適化アナライザにルーティングし始める、請求項1に記載の方法。
【請求項8】
コンピュータ・プログラムであって、請求項1ないし7のいずれか1項に記載の方法をコンピュータに実行させるための、コンピュータ・プログラム。
【請求項9】
コンピュータ・プログラムを記録したコンピュータ可読ストレージ媒体あって、前記コンピュータ・プログラムは、請求項1ないし7のいずれか1項に記載の方法の各ステップをコンピュータに実行させるための、前記コンピュータ・プログラムである、前記コンピュータ可読ストレージ媒体。
【請求項10】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合されたコンピュータ可読メモリであり、前記コンピュータ可読メモリが、
ローカル・ネットワーク上のルータによって、前記ローカル・ネットワークの外部のソースからの着信ネットワーク・トラフィックを連続的にモニタして、前記着信ネットワーク・トラフィックの帯域幅が第1の閾値を超えたことを検出することと、
前記帯域幅が前記第1の閾値を超えたことを検出したことに応じて、1つまたは複数のローカル・デバイスへの前記着信ネットワーク・トラフィックをインターセプトし、全体的な帯域幅を低減するために前記着信ネットワーク・トラフィックを一時的に変更し、その後、前記変更されたネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスにリダイレクトすることと、
前記変更された着信ネットワーク・トラフィックの前記帯域幅が第2の閾値を下回ったことに応じて、前記着信ネットワーク・トラフィックの前記一時的な変更を停止し、前記着信ネットワーク・トラフィックを前記1つまたは複数のローカル・デバイスに直接ルーティングすることと
を行うための命令を含む、前記コンピュータ可読メモリと
を含むコンピュータ・システム。
【請求項11】
前記着信ネットワーク・トラフィックが1つまたは複数のストリームを含み、前記1つまたは複数のストリームの各々がビデオおよびオーディオを含む、または前記1つまたは複数のストリームの各々が前記ローカル・デバイスのうちの1つまたは複数に宛てられる、あるいはその両方である、請求項10に記載のコンピュータ・システム。
【請求項12】
前記ネットワーク・トラフィックを前記変更することが、
ローカル・ルータによって、前記着信ネットワーク・トラフィックのソースIPアドレスを検出することと、
前記着信ネットワーク・トラフィックを最適化アナライザに一時的にリダイレクトするためのリクエストを前記着信ネットワーク・トラフィックのソースに送ることと、
前記1つまたは複数の着信ストリームを分析して、変更のために前記ストリームのうちの1つまたは複数を識別することと、
変更のために前記着信ストリームのうちの1つまたは複数を識別したことに応じて、
識別された着信ストリームごとに、
前記識別された着信ストリームを連続的に変更することと、
前記変更されたストリームを前記ローカル・デバイスにリダイレクトすることと
を含む、請求項10に記載のコンピュータ・システム。
【請求項13】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームからの動きおよび音を認識するように最適化アナライザを訓練することであり、前記動きが、前記1つまたは複数のストリームのビデオ部分におけるシーンおよびオブジェクトを含み、前記音が、スピーチ、嘆息、不可聴音、および無音期間を含む、前記訓練することと、
利用可能な残りの帯域幅の量に基づいて、前記ストリームのうちの1つまたは複数に割り当てられる帯域幅を制限することであり、前記制限することが、ビデオ品質を低下させることと、オーディオのみに切り替えることと、映像をフリーズすることとを含む、前記制限することと
をさらに含む、請求項10に記載のコンピュータ・システム。
【請求項14】
前記着信ネットワーク・トラフィックの1つまたは複数のストリームが、最適化アナライザにリダイレクトされることを無効にされる、請求項10に記載のコンピュータ・システム。
【請求項15】
予測モデルは、前記帯域幅が前記第1の閾値を下回っている間に前記帯域幅を超えることを予想し、前記予想に基づいて、前記1つまたは複数のストリームのうちの少なくとも1つに対する前記着信ネットワーク・トラフィックを最適化アナライザにルーティングし始める、請求項10に記載のコンピュータ・システム。
【国際調査報告】