(57)【要約】  本明細書では、通信ネットワーク内の様々なトラフィックパターンを処理するためにコンピュータ処理リソースが効果的に利用されるように、通信ネットワーク内のメディアを適応的にコード変換するためのシステムおよび方法が説明されている。コンピューティングデバイスは、コンテンツをコード変換するリクエストを受信し、そしてコンピューティングデバイスに関連付けられた多くのＣＰＵコアと現在使用中のトークン量に基づいて第１のトークン量を決定する。コンピューティングデバイスは、コンテンツをコード変換する要求を受信し、コンピューティングデバイスに関連するいくつかのＣＰＵコアと現在使用されているトークンの量とに基づいて第１のトークンの量を決定する。コンピューティングデバイスは、コンテンツのコード変換に関連する第２のトークン量を決定し、そして第１のトークン量が第２のトークン量よりも少ない場合、コンピューティングデバイスは、コンテンツに対するコード変換をバイパスするか、またはコンテンツのコード変換に関連するトークンの数を減らすためにコード変換パラメータを調整する。
2019536324.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク内の様々なトラフィックパターンを処理するためにコンピュータ処理リソースが効果的に利用されるように、通信ネットワーク内のメディアを適応的にコード変換するコンピュータ化された方法であって、前記方法は、
コンピューティングデバイスによってコンテンツプロバイダからエンドユーザデバイスへの配信のためにコンテンツをコード変換する要求を受信するステップと、
コンピューティングデバイスに関連するＣＰＵコアの数に関連するプールされたトークンの量と、
前記コンピューティングデバイスによって処理されている他のコード変換リクエストの数と関連する現在使用中のトークンの量と
に基づいて第１のトークン量を決定するステップと、
前記コンテンツのサイズ、前記コンテンツの種類、前記コンテンツの解像度、および前記コンテンツのフレームレートのうちの少なくとも１つに基づいて前記コンテンツをコード変換することに関連する第２のトークン量を決定するステップと、
前記第１のトークン量が前記第２のトークン量のよりも少ない場合に、
前記コンテンツに対するコード変換をバイパスするか、
または前記コンテンツのコード変換に関連するトークンの数を低減するようにコード変換パラメータを調整するステップであって、前記低減されたトークンの数は前記第１のトークン量よりも少ないステップと、
を含む方法。
【請求項２】
前記コンピューティングデバイスによって、前記コンピューティングデバイスに関連するＣＰＵ使用率のレベルと、利用可能なチャネル帯域幅の量のうちの少なくとも１つに基づいて前記プールされたトークン量を調整するステップをさらに含む、請求項１に記載のコンピュータ化された方法。
【請求項３】
前記現在使用中のトークン量は、ゼロトークンから前記プールされたトークン量までの範囲である、請求項１に記載のコンピュータ化された方法。
【請求項４】
前記第１のトークン量を決定するステップは、前記プールされたトークン量から現在使用中のトークン量を減算するステップをさらに含む、請求項１に記載のコンピュータ化された方法。
【請求項５】
前記第１のトークン量が前記第２のトークン量以上であるときに前記リクエストされたコンテンツをコード変換するステップをさらに含む、請求項１に記載のコンピュータ化された方法。
【請求項６】
前記コンテンツの種類は、画像、オーディオ、テキスト、およびビデオのうちの少なくとも１つを含む、請求項１に記載のコンピュータ化された方法。
【請求項７】
前記コンテンツをコード変換するようにプロビジョニングされた仮想マシンの数に基づいて、前記コンピューティングデバイスによって前記ＣＰＵコアの数を決定するステップをさらに含む、請求項１に記載のコンピュータ化された方法。
【請求項８】
前記コード変換パラメータを調整するステップは、前記コンテンツに適用されるコード変換の量を減らすステップを含む、請求項１に記載のコンピュータ化された方法。
【請求項９】
通信ネットワーク内の様々なトラフィックパターンを処理するためにコンピュータ処理リソースが効果的に利用されるように、通信ネットワーク内のメディアを適応的にコード変換するコンピューティングシステムであって、前記コンピューティングシステムは、
プロセッサと、
前記プロセッサに結合され、前記プロセッサによって実行されたときに、コンテンツプロバイダからエンドユーザデバイスへの配信のためにコンテンツをコード変換する要求を受信し、
コンピューティングデバイスに関連するＣＰＵコアの数に関連するプールされたトークンの量と、
前記コンピューティングデバイスによって処理されている他のコード変換リクエストの数と関連する現在使用中のトークンの量とに基づいて第１のトークン量を決定し、
前記コンテンツのサイズ、前記コンテンツの種類、前記コンテンツの解像度、および前記コンテンツのフレームレートのうちの少なくとも１つに基づいて前記コンテンツをコード変換することに関連する第２のトークン量を決定し、
前記第１のトークン量が前記第２のトークン量よりも少ない場合に、
前記コンテンツに対するコード変換をバイパスするか、または
前記コンテンツのコード変換に関連するトークンの数を低減するようにコード変換パラメータを調整し、前記低減されたトークンの数は前記第１のトークン量よりも少なくなるように前記プロセッサに実行させる命令を含む
メモリと
を含むコンピューティングシステム。
【請求項１０】
前記コンピューティングデバイスに関連するＣＰＵ使用率のレベルと、利用可能なチャネル帯域幅の量のうちの少なくとも１つに基づいて前記プールされたトークン量を前記プロセッサにさらに調整させる、請求項９に記載のコンピューティングシステム。
【請求項１１】
前記現在使用中のトークン量は、ゼロトークンから前記プールされたトークン量までの範囲である、請求項９に記載のコンピューティングシステム。
【請求項１２】
前記第１のトークン量を決定するために、前記プールされたトークン量から現在使用中のトークン量を前記プロセッサにさらに減算させる、請求項９に記載のコンピューティングシステム。
【請求項１３】
前記第１のトークン量が前記第２のトークン量以上であるときに前記リクエストされたコンテンツを前記プロセッサにさらにコード変換させる、請求項９に記載のコンピューティングシステム。
【請求項１４】
前記コンテンツの種類は、画像、オーディオ、テキスト、およびビデオのうちの少なくとも１つを含む、請求項９に記載のコンピューティングシステム。
【請求項１５】
前記コンテンツをコード変換するようにプロビジョニングされた仮想マシンの数に基づいて前記ＣＰＵコアの数を前記プロセッサにさらに決定させる、請求項９に記載のコンピューティングシステム。
【請求項１６】
前記コード変換パラメータを調整するために、前記コンテンツに適用されるコード変換の量を前記プロセッサにさらに決定させる、請求項９に記載のコンピューティングシステム。
【請求項１７】
コンテンツプロバイダからエンドユーザデバイスへの配信のためにコンテンツをコード変換する要求を受信し、
コンピューティングデバイスに関連するＣＰＵコアの数に関連するプールされたトークンの量と、
前記コンピューティングデバイスによって処理されている他のコード変換リクエストの数と関連する現在使用中のトークンの量と
に基づいて第１のトークン量を決定し、
前記コンテンツのサイズ、前記コンテンツの種類、前記コンテンツの解像度、および前記コンテンツのフレームレートのうちの少なくとも１つに基づいて前記コンテンツをコード変換することに関連する第２のトークン量を決定し、
前記第１のトークン量が前記第２のトークン量のよりも少ない場合に、
前記コンテンツに対するコード変換をバイパスするか、または
前記コンテンツのコード変換に関連するトークンの数を低減するようにコード変換パラメータを調整し、前記低減されたトークンの数は前記第１のトークン量よりも少なくなるように装置に実行させるように動作可能な実行可能命令を有する非一時的コンピュータ可読媒体。
【請求項１８】
前記コンピューティングデバイスに関連するＣＰＵ使用率のレベルと、利用可能なチャネル帯域幅の量のうちの少なくとも１つに基づいて前記プールされたトークン量を前記装置にさらに調整させる、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記現在使用中のトークン量は、ゼロトークンから前記プールされたトークン量までの範囲である、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記第１の量のトークンを決定するために、前記プールされた量のトークンから現在使用中の量のトークンを前記装置にさらに減算させる、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項２１】
前記第１の量のトークンを決定するために、前記プールされた量のトークンから現在使用中の量のトークンを前記装置にさらに減算させる、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項２２】
前記第１の量のトークンが前記第２の量のトークン以上であるときに、前記リクエストされたコンテンツを前記装置にさらにコード変換させる、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項２３】
前記コンテンツの種類は、画像、オーディオ、テキスト、およびビデオのうちの少なくとも１つを含む、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項２４】
前記コンテンツをコード変換するようにプロビジョニングされた仮想マシンの数に基づいて前記ＣＰＵコアの数を前記装置にさらに決定させる、請求項１７に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１６年１０月２１日に出願された米国仮特許出願第６２／４１０，９２９号の優先権を主張するものであり、これは参照により本明細書に組み込まれる。
【０００２】
本発明の実施形態は、概して、モバイルネットワークにおけるコンテンツ配信に関する。
【背景技術】
【０００３】
トラフィックパターンが急速に変化するモバイルネットワークでは、従来のハードウェアソリューションでは、最悪の場合のトラフィックパターンを効果的に処理できないことがしばしばある。最悪の場合に必要とされるハードウェアが非常に大きい場合、それはほとんどの時間効果的に使用されない多数のサーバをオペレータは購入するという結果になる。サーバの数が少ない場合、最適化可能な重いコンテンツ（例えば、画像およびビデオ）が突然急増すると、最適化ソリューションは（例えば、ＣＰＵおよびメモリに関して）過負荷になる可能性がある。
【発明の概要】
【０００４】
本明細書では、通信ネットワーク内の様々なトラフィックパターンを処理するためにコンピュータ処理リソースが効果的に利用されるように、通信ネットワーク内のメディアを適応的にコード変換するためのシステムおよび方法が説明される。いくつかの実施形態では、コンピューティングデバイスは、コンテンツプロバイダからエンドユーザデバイスへの配信のためにコンテンツをコード変換するリクエストを受信する。いくつかの実施形態では、コンピューティングデバイスは、コンピューティングデバイスに関連付けられた多くのＣＰＵコアに関連付けられたプールされたトークン量、およびコンピューティングデバイスによって処理されている多くの他のコード変換リクエストに関連する現在使用中のトークン量に基づいて第１のトークン量を決定する。いくつかの実施形態では、コンピューティングデバイスは、コンテンツのサイズ、コンテンツの種類、コンテンツの解像度、およびコンテンツのフレームレートのうちの少なくとも１つに基づいて、コンテンツのコード変換に関連する第２のトークン量を決定する。いくつかの実施形態では、第１のトークン量が第２のトークン量よりも少ない場合、コンピューティングデバイスは、コンテンツに対するコード変換をバイパスするか、またはコンテンツのコード変換に関連するトークンの数を減らすためにコード変換パラメータを調整し、減らされたトークン数は、第１のトークン量よりも少ない。
【０００５】
いくつかの実施形態では、コンピューティングデバイスは、コンピューティングデバイスに関連するＣＰＵ使用率のレベルおよび利用可能なチャネル帯域幅の量のうちの少なくとも１つに基づいて、プールされたトークン量を調整する。いくつかの実施形態では、現在使用中のトークン量は、ゼロトークンからプールされたトークン量までの範囲である。いくつかの実施形態では、第１のトークン量を決定することは、さらに、プールされたトークン量から現在使用中のトークン量を減算することを含む。いくつかの実施形態では、コンピューティングデバイスは、第１のトークン量が第２のトークン量以上であるときにリクエストされたコンテンツをコード変換する。いくつかの実施形態では、コンテンツの種類は、画像、オーディオ、テキスト、およびビデオのうちの少なくとも１つを含む。いくつかの実施形態では、コンピューティングデバイスは、コンテンツをコード変換するためにプロビジョニングされた仮想マシンの数に基づいてＣＰＵコアの数を決定する。いくつかの実施形態では、コード変換パラメータを調整することは、コンテンツに適用されるコード変換の量を減らすことを含む。
【０００６】
これらおよびその他の開示された主題の機能は、以下の図面、詳細な説明、および特許請求の範囲を検討した後にさらに十分に理解されるであろう。本明細書で使用されている表現および用語は説明を目的としており、限定と見なされるべきではないことを理解されたい。
【０００７】
開示された主題の様々な目的、構成、および利点は、同じ符号が同じ要素を識別する以下の図面と関連して考慮されるとき、開示された主題の以下の詳細な説明を参照してより十分に理解され得る。
【図面の簡単な説明】
【０００８】
【図１】本開示のいくつかの実施形態による係るネットワーク化システム１００を示すシステム図である。
【図２】本開示のいくつかの実施形態に係る、クラスタを介して配信されているコンテンツを示すシステム図である。
【図３】本開示のいくつかの実施形態に係る、コンテンツトークンを示す図である。
【図４】本開示のいくつかの実施形態に係る、トークンプールを調整するためのプロセスを示すフローチャートである。
【図５】本開示のいくつかの実施形態に係る、適応型コンテンツ最適化技術を示すフローチャートである。
【発明を実施するための形態】
【０００９】
本明細書では、仮想マシン（ＶＭ）にわたるトークンの数を拡大および縮小することができるコンテンツ最適化のための仮想化環境を提供するためのシステムおよび方法を説明する。コード変換ジョブの最適化パラメータは、利用可能なリソースに基づいて決定することができる。いくつかの実施形態では、本明細書で説明されている適応型最適化技術は、ＨＴＴＰプロキシで実施される。最適化に関して本明細書で説明されている動的決定は、リソースの有効利用および最適な帯域幅節約を可能にする。
【００１０】
図１は、本開示のいくつかの実施形態に係るネットワーク化システム１００を示すシステム図である。システム１００は、ユーザ機器（ＵＥ）１０２、発展型ノードＢ（ｅＮｏｄｅＢ）１０４、モビリティ管理エンティティ（ＭＭＥ）１０６、サービングゲートウェイ（ＳＧＷ）モジュール１０８、ポリシーおよび課金ルール機能（ＰＣＲＦ）１１０、パケットデータネットワークゲートウェイ（ＰＧＷ）１１２、パブリックデータ（Ｇｉ）ネットワーク１１６、ポリシーおよび課金執行機能（ＰＣＥＦ）１２２、マルチメディアサーバ１３０、ＨＴＴＰプロキシ１４０、オプティマイザ１４２、および仮想化モジュール１５０を含む。
【００１１】
ＵＥ１０２は、ｅＮｏｄｅＢ１０４を介してネットワーク化システム１００に接続する。ＵＥ１０２は、モバイルデータネットワークに接続するように構成されたコンピューティングデバイス（例えば、携帯電話、タブレット、ラップトップ）を含む。ｅＮｏｄｅＢ１０４はセルサイトの無線部分である。単一のｅＮｏｄｅＢ１０４は、いくつかの無線送信機、受信機、制御部、および電源を含むことができる。ｅＮｏｄｅＢ１０４は、ＭＭＥ１０６およびＳＧＷ１０８にバックホールすることができる。バックホールは、パケットまたは通信信号を比較的長距離にわたって別の場所に転送して処理するプロセスである。ＳＧＷ１０８は、ｅＮｏｄｅＢ間ハンドオーバ中にユーザプレーンのモビリティアンカーとしても機能しながら、ユーザデータパケットをルーティングし転送する。ＭＭＥ１０６は、ネットワーク化システム１００内の制御ノードである。ＭＭＥ１０６は、ＬＴＥ無線ネットワークに接続するＵＥ１０２のためのモビリティ機能およびセキュリティ機能をも含む、ＬＴＥ関連の制御プレーンのシグナリングを処理する。ＭＭＥ１０６はまた、トラッキング領域の管理およびページング手順のサポートを含む、アイドルモードにあるＵＥを処理する。
【００１２】
ＵＥ１０２がネットワークに接続すると、データセッション（例えば、４Ｇセッション）を作成し、ＵＥ１０２にデータ接続性を提供するために、複数の制御メッセージがネットワーク要素間で交換される。上記で説明したように、ｅＮｏｄｅＢ１０４は、ＭＭＥ１０６およびＳＧＷ１０８にバックホールすることができる。ＳＧＷ１０８は、ユーザパケットをＰＧＷ１１２にルーティングし転送する。ＰＧＷ１１２は、ポリシー執行ポイント（ＰＥＰ）として機能することができる。ＰＧＷ１１２はＰＣＲＦ１１０と通信し、ＰＣＲＦ１１０は加入者に特有のポリシー情報をダウンロードすることができる。ＰＣＲＦは、ポリシー決定ポイント（ＰＤＰ）として機能する。
【００１３】
ＰＧＷ１１２はＰＣＥＦ１２２を含む。ＰＣＥＦ１２２は、ＰＣＲＦ１１０から受信したポリシー決定を執行し、ポリシー執行機能ならびに課金機能を提供する。
【００１４】
ＰＧＷ１１２はまた、Ｇｉネットワーク１１６を介して外部パケットデータネットワークへの接続をＵＥ１０２に提供する。以下により詳細に説明されるように、ＵＥはマルチメディアサーバ１３０からのビデオをリクエストし受信することができる。
【００１５】
ＰＧＷ１１２とネットワーク１１６との間に位置するのは、ＨＴＴＰプロキシ１４０を含むことができる。ＨＴＴＰプロキシ１４０は、クライアントからのＨＴＴＰリクエストをネットワーク１１６にルーティングする。ＨＴＴＰプロキシ１４０は、オプティマイザ１４２を含むことができる。オプティマイザ１４２は、サイズ、タイプ、およびレートなどのマルチメディアの特性に基づいて帯域幅をマルチメディアに割り当てることによってマルチメディア（例えば、ビデオ、画像、オーディオ、テキスト）を最適化する。
【００１６】
仮想化モジュール１５０は、ＰＧＷ１１２、ＰＣＥＦ１２２、ＨＴＴＰプロキシ１４０、およびオプティマイザ１４２の仮想化表現を指す。ＰＧＷ１１２、ＰＣＥＦ１２２、ＨＴＴＰプロキシ１４０、およびオプティマイザ１４２の機能は、仮想マシン上またはクラウド内に実装することができる。いくつかの実施形態では、仮想化モジュール１５０は、ＰＧＷ１１２、ＰＣＥＦ１２２、ＨＴＴＰプロキシ１４０、およびオプティマイザ１４２のサブセットを含むことができる。以下により詳細に説明されるように、仮想化モジュール１５０は、仮想マシン（ＶＭ）クラスタとして、ＰＧＷ１１２、ＰＣＥＦ１２２、ＨＴＴＰプロキシ１４０、およびオプティマイザ１４２を配置するために使用することができる。
【００１７】
図２は、本開示のいくつかの実施形態に係る、クラスタを介して配信されているコンテンツを示すシステム図である。図２は、ＵＥ１０２、マルチメディアサーバ１３０、クラスタ２０２、仮想マシン（ＶＭ）２０４、コア２０６、およびコンテンツ２１０を示す。
【００１８】
クラスタ２０２は、仮想マシン（ＶＭ）の集合を指す。クラスタ２０２は、通常１つの配置に関連付けられている。配置とは、クラスタをホストするコンピュータとプロセッサの物理的な設定を指す。配置は通常特定のネットワークに関連付けられ、地理的領域に関連付けることができる。いくつかの実施形態では、クラスタ２０２は特定の地理的領域に役立つ。ハードウェアアーキテクチャの特定の例が説明されているが、本明細書で説明されている技術は任意の特定のハードウェアアーキテクチャから独立している。
【００１９】
いくつかの実施形態では、仮想マシン２０４はコンテナも含むことができる。コンテナは、単一のホスト上で複数の隔離されたシステムを実行するための仮想化方法である（例えば、ＤｏｃｋｅｒまたはＬｉｎｕｘコンテナ）。
【００２０】
上述のように、クラスタ２０２は、複数の仮想マシン２０４を含むことができる。各仮想マシンは、通常１つのサーバに関連付けられている。仮想マシンは、サーバ上の複数のプロセッサにまたがることができるか、または複数の仮想マシンを単一のプロセッサに関連付けることもできる。いくつかの実施形態では、仮想マシンとプロセッサとの間の対応は１対１である。仮想マシン２０４は、図１に関して説明した、ＰＧＷ１１２、ＰＣＥＦ１２２、ＨＴＴＰプロキシ１４０、およびオプティマイザ１４２を仮想化する。ＰＧＷ１１２、ＰＣＥＦ１２２、ＨＴＴＰプロキシ１４０、およびオプティマイザ１４２のそれぞれは、別々の仮想マシン上で実行することができるか、またはモジュールの組み合わせは、単一の仮想マシン上で実行することができる。例えば、ＨＴＴＰプロキシ１４０およびオプティマイザ１４２は、１つの仮想マシン上で実行することができる。クラスタは、ＰＧＷ１１２、ＰＣＥＦ１２２、ＨＴＴＰプロキシ１４０、およびオプティマイザ１４２のそれぞれの複数のインスタンスを含むことができる。以下により詳細に説明するように、仮想マシン２０４は、他のＶＭを管理するための管理エンジンも含むことができる。
【００２１】
各仮想マシン２０４はまた、多数のプロセッサコア２０６を利用する。一般的に、中央処理装置（ＣＰＵ）は、多数のプロセッサコアを含む。仮想マシンは、仮想マシンが関連付けられている１つのＣＰＵまたは多数のＣＰＵの部分に基づいて、多数のプロセッサコアに関連付けられている。例えば、仮想マシンが単一のＣＰＵにマッピングされていて、そのＣＰＵに８つのコアが含まれている場合、仮想マシンは８つのコアを使用する。
【００２２】
コンテンツ２１０は、画像（例えば、ｊｐｇ、ｇｉｆ、ｐｎｇ）、ビデオ（例えば、ｍｐ４、ｆｌｖ、ｗｅｂｍ）、オーディオ（例えば、ｍｐｅｇ、ｗａｖ、ｍｐ３、ａａｃ）、またはテキスト（例えば、ｈｔｍｌ、ｊａｖａｓｃｒｉｐｔ、ｃｓｓ）とすることができる。コンテンツは、サイズ、解像度、または品質に関連付けることができる。以下により詳細に説明されるように、コンテンツのサイズ、解像度、または品質は、トークンの数と関連付けることができる。
【００２３】
いくつかの実施形態では、ＶＭ２０４のうちの１つは、以下でさらに詳細に説明されるように、管理エンジンである。
【００２４】
図３は、本開示のいくつかの実施形態に係る、コンテンツトークンプールを示す図である。図３は、ＨＴＴＰプロキシ１４０、コンテンツ２１０、コンテンツトークンプール３０２、仮想マシンコア（ｖコア）３１０、および利用可能なトークンの割合３１４を示す。
【００２５】
いくつかの実施形態では、ＨＴＴＰプロキシ１４０は、コンテンツトークンプール３０２を含む。コンテンツトークン３０２は、マルチメディアコンテンツ２１０を処理するために利用可能な仮想マシンリソースの量を表すのに使用することができる。仮想マシンリソースの量は、仮想マシン３１０によって利用されるＣＰＵリソースまたはＣＰＵコアの量に関連する。例えば、各コアに１０個のトークンが割り当てられ、ＨＴＴＰプロキシ１４０を実行する仮想マシンが８個のコアにマッピングされると仮定すると、ＨＴＴＰプロキシ１４０に割り当てられるトークンの数は８０個のトークンになる。
【００２６】
いくつかの実施形態では、ＨＴＴＰプロキシ１４０に割り当てられたコンテンツトークンの数は、通常と見なされ定常状態動作に許容されると見なされるＣＰＵ使用率の割合にさらに依存することができる。例えば、７０％のＣＰＵ使用率のレベルは通常の量、８０％のＣＰＵ使用率のレベルは中程度の量、９０％のＣＰＵ使用率のレベルは多い量、１００％のＣＰＵ使用率のレベルは危機的な量と見なすことができる。いくつかの実施形態では、通常のＣＰＵ使用量は、より高いＣＰＵ使用率の時折のピークまたはスパイクを処理することができ、システムに過負荷を掛けないであろうＣＰＵ使用量またはロードに関連付けられる。中程度のＣＰＵ使用率は、通常のＣＰＵ動作を保証するためにＣＰＵの動作とパフォーマンスを綿密に監視する必要があるＣＰＵ使用量と関連付けられる。多いＣＰＵ使用率は、システムの動作とパフォーマンスに一時的な影響を与える可能性がある。危機的なＣＰＵ使用率とは、システムの動作とパフォーマンスに影響を与えるＣＰＵ使用率を指す。
【００２７】
システム起動時には、各ＶＭはＣＰＵ使用量が低いアイドル状態（例えば、１０％）で起動する。各ＶＭが新しいコンテンツを含むあらゆる種類の処理とすることができる「作業」を引き受け始めると、その作業にＣＰＵサイクルが必要になる。定期的な監視では、ＣＰＵ使用率が評価され、アクションが実行される（例えば、トークンプールのサイズを増減する）。アクティビティ（または作業）のバーストが発生した場合、ＣＰＵ使用量は、例えば８５％に達する可能性がある。バースト中に、トークンプールのサイズは縮小される。バースト状態が終了すると、ＣＰＵ使用率は、例えば（上記の通常の状態に対応することができる）７０％に戻り、トークンプールのサイズを増やすことができる。バースト状態の例で上記したように、プール内のトークン数を減らすことで、「作業負荷」容量が効果的に「調整」され、ＣＰＵ負荷が許容レベルに戻る。
【００２８】
上述のように、ＣＰＵ使用率の閾値は、ＨＴＴＰプロキシ１４０に利用可能なトークン３１４の割合に変換することができる。例えば、前の例では、８個のコアに関連付けられているＨＴＴＰプロキシ１４０に基づいて８０個のトークンがＨＴＴＰプロキシ１４０に割り当てられると仮定すると、ＨＴＴＰプロキシ１４０に割り当てられるトークンの数は、多いＣＰＵ負荷に対して６０％または４８個にまで減らすことができ、中程度のＣＰＵ負荷に対して７０％または５６個のトークンにまで減らすことができる。一般的に、トークンの割合が高いと、多いＣＰＵ負荷よりも中程度のＣＰＵ負荷に関連付けられ、トークンの割合が高いと、危機的なＣＰＵ負荷よりも多いＣＰＵ負荷に関連付けられる。
【００２９】
上述のように、マルチメディアコンテンツ２１０は、マルチメディアサイズ、解像度、または品質などの１つ以上のパラメータと関連付けることができる。コンテンツのサイズ、解像度、または品質のそれぞれは、トークン数に関連付けることができる。例えば、ビデオクリップには、イメージファイルまたはオーディオファイルよりも多くのトークンを割り当てることができる。大きいビデオには小さいビデオよりも多くのトークンを割り当てることができ、高い解像度のビデオには低い解像度のビデオよりも多くのトークンを割り当てることができる。
【００３０】
いくつかの実施形態では、ＨＴＴＰプロキシ１４０は、そのトークンプール内に利用可能な数のトークンを有するので、ＨＴＴＰプロキシ１４０は、特定の数および種類のコンテンツ２１０を処理することができる。例えば、ＨＴＴＰプロキシ１４０が、コアの数およびＣＰＵ使用量を考慮して利用可能な６０個のトークンを有し、高品質ビデオが２５個のトークンに関連付けられると仮定する。いくつかの実施形態では、トークンは、管理ＶＭ上で実行されている管理プロセス／コンポーネントによって各プロセスに割り当てられる。高品質ビデオに対するリクエストを受信するだけの場合、ＨＴＴＰプロキシ１４０は２つのビデオしか処理することができない（すなわち、２５トークン＋２５トークン＝５０トークン分のビデオに相当する）。本明細書で言及される処理は、マルチメディアの最適化（例えば、適応型ビットレート技術を使用した、圧縮、レート変換、コード変換）も指すことができる。いくつかの実施形態では、最適化はオプティマイザ１４２によって実行される。コード変換は最適化の一形態であり得るが、本明細書ではコード変換および最適化は互換的に使用される。本明細書で使用されるとき、コード変換はまた、圧縮、レート変換、および他のビットレート低減技術を指すことができる。
【００３１】
図３に示すようなＨＴＴＰプロキシ１４０は、クラスタ内の多数のＨＴＴＰプロキシのうちの１つとすることができる。いくつかの実施形態では、（図３には示されていない）管理エンジンが、ＨＴＴＰプロキシのすべてのインスタンスを監視する。管理エンジンは、クラスタ内のすべてのＶＭを管理し、ＨＴＴＰプロキシも管理できる仮想マシンとすることができる。クラスタ内のすべてのＨＴＴＰプロキシがキャパシティにある（つまり、クラスタ内の各ＨＴＴＰプロキシがコンテンツの種類に応じて最大量のトークンを使用している）と仮定すると、管理エンジンは、１）１つまたは複数のＨＴＴＰプロキシに、ＣＰＵ使用率情報またはＣＰＵ過負荷情報（例えば、通常、中程度、多い、危機的）を１つ以上のプロキシに送信することができ、それに応答して、ＨＴＴＰプロキシは、より少ないトークンを使用する（例えば、より少ない圧縮を提供する）コンテンツに対してより少ない最適化を提供できる、２）ＣＰＵ使用率情報またはＣＰＵ過負荷情報（例えば、通常、中程度、多い、危機的）を１つ以上のＨＴＴＰプロキシに送信することができ、それに応答して、１つ以上のＨＴＴＰプロキシは最適化をスキップする。いくつかの実施形態では、（ＰＣＥＦも仮想化されている場合は、仮想マシン上に（例えば、ＰＣＥＦ  ＶＭ上に）あり得る）負荷分散エンジンは、後続の動作を処理するために最小負荷仮想マシンが選択されるように後続の動作をスケジューリングする。
【００３２】
図４は、本開示のいくつかの実施形態に係る、トークンプールサイズを調整するためのプロセスを示すフローチャートである。
【００３３】
ステップ４０２を参照すると、遠距離通信ネットワークにおいてマルチメディアコンテンツを最適化するための仮想マシンをプロビジョニングするリクエストが受信される。上述のように、リクエストは、図１に関して上述したように、仮想化モジュール１５０内の各要素に対して仮想マシンをプロビジョニングすることに関連付けることができる。リクエストは、ネットワーク事業者（例えば、ＡＴ＆Ｔ、Ｖｅｒｉｚｏｎ、Ｔ−Ｍｏｂｉｌｅ）から発信することができる。
【００３４】
ステップ４０４を参照すると、各仮想マシンに対してコア数が決定される。上述したように、仮想マシンは通常１つ以上のＣＰＵに割り当てられ、その各々は、さらにＣＰＵコアの数と関連付けることができる。いくつかの実施形態では、各ＶＭには、ＶＭの種類（例えば、プロキシＶＭ、ＰＣＥＦ  ＶＭ、管理ＶＭ）に基づいて特定の数のコアが割り当てられる。
【００３５】
ステップ４０６を参照すると、各仮想マシンに対する初期トークン数は、その仮想マシンに割り当てられたコアの数に基づいて決定される。上述のように、ＨＴＴＰプロキシ１４０を実行している仮想マシンが８つのコアに関連付けられ、各コアに１０個のトークンが割り当てられると仮定すると、ＨＴＴＰプロキシ１４０を実行している仮想マシンに関連付けられたトークンの数は８０トークンである。
【００３６】
ステップ４０８を参照すると、ＣＰＵ使用率がＣＰＵ使用率レベルを決定するために監視される。上述のように、ＣＰＵ使用率レベルは、通常、中程度、多い、または危機的とすることができる。いくつかの実施形態では、ＣＰＵ使用率は、プロセスがＶＭ内で行わなければならない仕事量によって影響を受ける。一般的に、処理が多いほど、使用されるＣＰＵサイクルが多くなる。その結果、より多くの最適化作業（例えば、コード変換、画像最適化）はより多くのＣＰＵサイクルを要し、全体的なＣＰＵパーセンテージを増加させる。
【００３７】
ステップ４１０を参照すると、トークンプールは、ＣＰＵ使用率監視に基づいて連続的に調整することができる。前述のように、監視されるＣＰＵ使用率レベルは、トークンプールのサイズの調整に変換できる。いくつかの実施形態では、トークンプールは、利用可能なチャネル帯域幅の量に基づいて調整することもできる。チャネル帯域幅は、異なる時点で変わる可能性がある。いくつかの実施形態では、トークンプールは、すべてのコード変換されたビデオまたは画像がより少ないトークンを消費し、すべてのバイパスされたビデオまたは画像がより大量のトークンを消費するように利用可能なチャネル帯域幅の量を表すことができ、トークンプールのチャネル帯域幅とサイズの利用可能な量は時間とともに変化することができる。利用可能なチャネル帯域幅とトークンを関連付けることの利点は、チャネル帯域幅が制限されているときに、より多くのコード変換を発生させることができることである。
【００３８】
図５は、本開示のいくつかの実施形態に係る、適応型コンテンツ最適化技術を示すフローチャートである。
【００３９】
ステップ５０２を参照すると、コンテンツプロバイダからエンドユーザデバイスへの配信のためにコンテンツが受信される。いくつかの実施形態において、コンテンツは、画像、オーディオ、ビデオ、およびｈｔｍｌ／ｊａｖａｓｃｒｉｐｔ／ｃｓｓを含む。各コンテンツタイプは、コンテンツを最適化する（例えば、圧縮する、コード変換する）ための技術と関連付けることができる。最適化技術は、ｈｔｍｌ／ｊａｖａｓｃｒｉｐｔ／ｃｓｓミニフィケーション、オーディオおよびビデオコード変換、および画像コード変換を含むことができる。
【００４０】
ステップ５０４を参照すると、コンテンツの最適化に関連するオプティマイザを実行している最小負荷のＶＭが決定される。いくつかの実施形態では、負荷が最も少ないＶＭは、利用可能なＣＰＵリソースが最も多いＶＭである。
【００４１】
ステップ５０６を参照すると、コンテンツを処理するのに必要とされるトークンの数が決定される。上述のように、コンテンツに割り当てられるトークンの数は、コンテンツサイズ、コンテンツ品質、およびコンテンツタイプなどの様々なコンテンツパラメータに依存し得る。一般的に、大きいコンテンツには小さいコンテンツよりも多くのトークンが割り当てられ、高いコンテンツ品質には低いコンテンツ品質よりも多くのトークンが割り当てられ、ビデオにはオーディオや画像よりも多くのトークンが割り当てられる。
【００４２】
ステップ５０８を参照すると、利用可能なトークンの数が決定される。利用可能なトークンの数を決定するためのプロセスは、図４に関して上述されている。いくつかの実施形態では、利用可能な初期トークンの数は、リクエストが処理されていないときにプロビジョニングされた仮想マシンに割り当てられたトークンの数と関連付けることができる。いくつかの実施形態では、利用可能なトークンの数は、プロビジョニングされた仮想マシンに割り当てられたトークンの数から他のプロセスまたはリクエストによって使用されているトークンの数を引いたものに関連付けることができる。例えば、プロビジョニングされた仮想マシンに１００個のトークンが割り当てられている場合、利用可能なトークン数は（プロセスが実行されていないと仮定して）１００個のトークンである。６０個のトークンを必要とする１つ以上のリクエストが実行されている場合、利用可能なトークンの数は４０個のトークンである。図４でより詳細に説明されたように、初期トークンの数もＣＰＵ使用率に基づいて変えることができる。
【００４３】
ステップ５１０を参照すると、必要とされるトークンの数および利用可能なトークンの数に基づいて、バイパス、符号化パラメータの調整、またはスケジュールのコード変換のアクションが行われる。利用可能なトークンが十分にある場合、コンテンツは通常どおり処理される。通常の処理は、コンテンツに通常関連付けられている最大量の圧縮またはコード変換を（例えば、そのタイプ、サイズ、および解像度に基づいて）適用することを指す。利用可能なトークンが十分にない場合、アクションにはバイパスまたは処理パラメータの調整が含まれる可能性がある。バイパスと処理パラメータの調整は、コンテンツの処理に必要なＣＰＵリソースの量を減らすことに関連するアクションである。バイパスとは、コンテンツの処理をスキップすることである。処理パラメータを調整することは、適用される圧縮またはコード変換の量を減らすことを含み得る。いくつかの実施形態では、コンテンツを処理するのに必要とされるトークンの数が利用可能なトークンの数より少なくなるようにパラメータが調整される。
【００４４】
上述のように、コンテンツには、コンテンツのサイズ（例えば、コンテンツに関連するバイト数）、コンテンツの種類（例えば、画像、ビデオ）、および解像度（例えば、ビデオ解像度）に基づいてトークンを割り当てることができる。以下の表１は、コンテンツタイプ、サブタイプ、サイズ、および／または解像度に基づいて割り当てることができる多数のトークンのうちの一例を示す。
【表１】
2019536324.tif 000003
表１に示すように、画像はその解像度に基づいて固定数のトークンを割り当てることができる。例えば、より大きなコンテンツは、より小さなコンテンツよりも多くのトークン（例えば、大／中／小のｊｐｅｇに対してそれぞれ５／３／１トークン）を割り当てられる。ビデオでは、解像度とフレームレートを組み合わせた、必要なピクセル処理レートに基づいてトークンの数が割り当てられる。例えば、より高いコンテンツ品質はより低いコンテンツ品質よりも多くのトークン（例えば、ＵＨＤ（２１６０ｐ）／ＨＤ（１０８０ｐ）／ＨＤ（７２０ｐ）ｍｐ４に対してそれぞれ１００／５０／２５トークン）を割り当てられ、ビデオはオーディオまたは画像よりも多くのトークンを割り当てられる（例えば、ビデオは画像として少なくとも４〜５のトークン数を割り当てられる）。
【００４５】
また上述のように、利用可能なトークンの初期数、および所与のサイズおよび解像度の所与の各コンテンツタイプを処理するのに必要なトークン数に関して決定が行われる。以下の表２は、ＣＰＵ使用率のどの目標レベルを通常として指定されるべきか、および利用可能なトークンの数によって処理できるｍｐ４ビデオとおよび大きなｊｐｅｇの数に応じて最初にトークンプールに割り当てられたトークンの数をどのように変えることができるかの一例を示す。
【表２】
2019536324.tif 000004
例えば、６０％のＣＰＵ使用率目標では、１０８個のトークンが使用可能である。表１に示すように、ＨＤ（１０８０ｐ）でのｍｐ４ビデオには５０個のトークンが必要である。そのため、ＨＤ（１０８０ｐ）では２つのｍｐ４ビデオのみが、６０％のＣＰＵ使用率目標で処理できる。それとは対照的に、大きなｊｐｅｇは５個のトークンしか必要としない。そのため、２１個のｊｐｅｇを６０％のＣＰＵ使用率目標で処理できる。
【００４６】
本開示のいくつかの実施形態は、モバイルネットワーク内の変化するトラフィックパターンを処理するためにコンピュータ処理リソースが効果的に利用されるように、仮想化ネットワーク要素を使用してモバイルネットワーク内のメディアを適応的にコード変換するシステムおよびコンピュータ化方法に関する。いくつかの実施形態では、システムおよびコンピュータ化された方法は、コンピューティングデバイスによって、モバイルネットワーク内でモバイルコード変換操作を仮想化するように仮想マシンに依頼するリクエストを受け取ることと、コンピューティングデバイスによって、仮想マシンに利用可能な中央処理装置（ＣＰＵ）リソースの量、および仮想マシンの各々に関連する機能に基づいて、多数のコンピューティングコアを仮想マシンの各々に割り当てることと、コンピューティングデバイスによって、仮想マシンの各々に関連付けられ、仮想マシンの各々に割り当てられたＣＰＵリソース、およびＣＰＵリソースの各々に関連付けられたＣＰＵ使用率のレベルに基づく第１のトークン量を決定することと、コンピューティングデバイスによって、コンテンツプロバイダからエンドユーザデバイスへの配信のためにコンテンツをコード変換する要求リクエストを受信することと、コンピューティングデバイスによって、コンテンツのコード変換に関連する第２のトークン量を決定することと、第２のトークン量が第１のトークン量を超えたときに、コンピューティングデバイスによって、仮想マシンに命令を送信して、コンテンツのためのコード変換をバイパスするか、またはコンテンツに適用されるコード変換の量を減らすようにコード変換パラメータを調整することとを含む。
【００４７】
本明細書に記載の主題は、本明細書に開示されている構造手段およびその構造上の均等物を含む、デジタル電子回路、あるいはコンピュータソフトウェア、ファームウェア、またはハードウェア、あるいはそれらの組み合わせに実装することができる。本明細書に記載の主題は、情報キャリア内に（例えば、機械可読記憶装置内に）明白に具現化された、またはデータ処理装置（例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータ）によって実行するためのまたはデータ処理装置の動作を制御するための伝搬された信号内に具現化された１つ以上のコンピュータプログラムなどの１つ以上のコンピュータプログラム製品として実装することができる。（プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる）コンピュータプログラムは、コンパイル言語またはインタープリター言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、あるいは、モジュール、コンポーネント、サブルーチン、またはコンピューティング環境での使用に適した他のユニットとしてのものを含む任意の形式で配置できる。コンピュータプログラムは、必ずしもファイルに対応しない。プログラムは、他のプログラムまたはデータを保持するファイルの一部、問題のプログラム専用の単一ファイル、または複数の協調ファイル（例えば、１つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル）に格納することができる。コンピュータプログラムは、１つのサイトの、あるいは複数のサイトにわたって分散されて通信ネットワークによって相互接続された、１つのコンピュータまたは複数のコンピュータで実行されるように配置することができる。
【００４８】
本明細書に記載の主題の方法ステップを含む本明細書に記載のプロセスおよび論理フローは、入力データを操作して出力を生成することによって本明細書に記載の主題の機能を実行するための１つ以上のコンピュータプログラムを実行する１つ以上のプログラミング可能なプロセッサによって実行できる。プロセスおよび論理フローはまた、特定の目的の論理回路（例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路））によって実行することができ、本明細書に記載されている主題の装置は、特定の目的の論理回路として実装することができる。
【００４９】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および特殊用途の両方のマイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の１つ以上のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリ、ランダムアクセスメモリ、またはその両方から命令およびデータを受け取る。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを格納するための１つ以上のメモリデバイスである。一般的に、コンピュータはまた、データを格納するための１つ以上の大容量記憶装置（例えば、磁気ディスク、光磁気ディスク、または光ディスク）からのデータ、またはそれらへのデータ、またはその両方のデータを含むか、またはそれらからデータを受信するか、またはそれらにデータを転送するか、またはその両方をするように動作可能に結合される。コンピュータプログラム命令およびデータを具現化するのに適した情報キャリアは、例として、半導体メモリデバイス（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイス）、磁気ディスク（例えば、内蔵ハードディスクまたはリムーバブルディスク）、光磁気ディスク、光ディスク（例えば、ＣＤおよびＤＶＤディスク）を含むあらゆる形態の不揮発性メモリを含む。プロセッサおよびメモリは、特殊目的論理回路によって補完されるか、またはその中に組み込まれることが可能である。
【００５０】
ユーザとの対話を提供するために、本明細書に記載の主題は、ユーザに情報を表示するためのディスプレイデバイス（例えば、ＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）モニタ）と、キーボードおよびポインティングデバイス（例えば、マウスまたはトラックボール）であって、これによってユーザはコンピュータに入力を提供することができるキーボードおよびポインティングデバイスとを有するコンピュータ上で実施することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック（例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック）とすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。
【００５１】
本明細書に記載の主題は、バックエンドコンポーネント（例えば、データサーバ）、ミドルウェアコンポーネント（例えば、アプリケーションサーバ）、またはフロントエンドコンポーネント（例えば、ユーザが本明細書に記載の主題の実施形態と対話することができるグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータ）、あるいはそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、およびフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステム内で実施することができる。システムの構成要素は、デジタルデータ通信（例えば、通信ネットワーク）の任意の形態または媒体によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク（「ＬＡＮ」）およびワイドエリアネットワーク（「ＷＡＮ」）（例えば、インターネット）が含まれる。
【００５２】
開示された主題は、その適用において、構成の詳細に、および以下の説明に記載されるかまたは図面に示される構成要素の配置に限定されないことを理解されたい。開示された主題は、他の実施形態が可能であり、そして様々な方法で実施および実行されることが可能である。また、本明細書で使用されている表現および用語は説明を目的としており、限定と見なすべきではないことを理解されたい。
【００５３】
したがって、当業者は、本開示の基礎となる概念が、開示された主題のいくつかの目的を実行するための他の構造、方法、およびシステムの設計の基礎として容易に利用され得ることを理解するだろう。したがって、特許請求の範囲は、開示された主題の趣旨および範囲から逸脱しない限り、そのような均等な構成を含むと見なされることが重要である。
【００５４】
開示された主題は前述の例示的な実施形態において説明され図示されたが、本開示は単に例としてなされたものであり、開示された主題の実施態様の細部における多くの変更が、以下の特許請求の範囲によってのみ限定される開示された主題の趣旨および範囲から逸脱すること無くなされ得ることが理解される。
【図１】
2019536324.tif 000005
【図２】
2019536324.tif 000006
【図３】
2019536324.tif 000007
【図４】
2019536324.tif 000008
【図５】
2019536324.tif 000009
【手続補正書】
【提出日】令和1年6月18日(2019.6.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信ネットワーク内の様々なトラフィックパターンを処理するためにコンピュータ処理リソースが効果的に利用されるように、通信ネットワーク内のメディアを適応的にコード変換するコンピュータ化された方法であって、前記方法は、
コンピューティングデバイスによってコンテンツプロバイダからエンドユーザデバイスへの配信のためにコンテンツをコード変換する要求を受信するステップと、
前記コンテンツをコード変換するようにプロビジョニングされた、コンテナの数と仮想マシンの数のうちの少なくとも一つに基づいて、前記コンピューティングデバイスによって、当該コンピューティングデバイスに関連するＣＰＵコアの数を決定するステップと、
前記コンピューティングデバイスに関連するＣＰＵコアの数に関連するプールされたトークンの量と、
前記コンピューティングデバイスによって処理されている他のコード変換リクエストの数と関連する現在使用中のトークンの量と
に基づいて第１のトークン量を決定するステップと、
前記コンテンツのサイズ、前記コンテンツの種類、前記コンテンツの解像度、および前記コンテンツのフレームレートのうちの少なくとも１つに基づいて前記コンテンツをコード変換することに関連する第２のトークン量を決定するステップと、
前記第１のトークン量が前記第２のトークン量のよりも少ない場合に、
前記コンテンツに対するコード変換をバイパスするか、
または前記コンテンツのコード変換に関連するトークンの数を低減するようにコード変換パラメータを調整するステップであって、前記低減されたトークンの数は前記第１のトークン量よりも少ないステップと、
を含む方法。
【請求項２】
前記コンピューティングデバイスによって、前記コンピューティングデバイスに関連するＣＰＵ使用率のレベルと、利用可能なチャネル帯域幅の量のうちの少なくとも１つに基づいて前記プールされたトークン量を調整するステップをさらに含む、請求項１に記載のコンピュータ化された方法。
【請求項３】
前記現在使用中のトークン量は、ゼロトークンから前記プールされたトークン量までの範囲である、請求項１に記載のコンピュータ化された方法。
【請求項４】
前記第１のトークン量を決定するステップは、前記プールされたトークン量から現在使用中のトークン量を減算するステップをさらに含む、請求項１に記載のコンピュータ化された方法。
【請求項５】
前記第１のトークン量が前記第２のトークン量以上であるときに前記リクエストされたコンテンツをコード変換するステップをさらに含む、請求項１に記載のコンピュータ化された方法。
【請求項６】
前記コンテンツの種類は、画像、オーディオ、テキスト、およびビデオのうちの少なくとも１つを含む、請求項１に記載のコンピュータ化された方法。
【請求項７】
前記コード変換パラメータを調整するステップは、前記コンテンツに適用されるコード変換の量を減らすステップを含む、請求項１に記載のコンピュータ化された方法。
【請求項８】
通信ネットワーク内の様々なトラフィックパターンを処理するためにコンピュータ処理リソースが効果的に利用されるように、通信ネットワーク内のメディアを適応的にコード変換するコンピューティングシステムであって、前記コンピューティングシステムは、
プロセッサと、
前記プロセッサに結合され、前記プロセッサによって実行されたときに、コンテンツプロバイダからエンドユーザデバイスへの配信のためにコンテンツをコード変換する要求を受信し、
前記コンテンツをコード変換するようにプロビジョニングされた、コンテナの数と仮想マシンの数のうちの少なくとも一つに基づいて、前記コンピューティングシステムに関連するＣＰＵコアの数を決定し、
コンピューティングシステムに関連するＣＰＵコアの数に関連するプールされたトークンの量と、
前記コンピューティングシステムによって処理されている他のコード変換リクエストの数と関連する現在使用中のトークンの量とに基づいて第１のトークン量を決定し、
前記コンテンツのサイズ、前記コンテンツの種類、前記コンテンツの解像度、および前記コンテンツのフレームレートのうちの少なくとも１つに基づいて前記コンテンツをコード変換することに関連する第２のトークン量を決定し、
前記第１のトークン量が前記第２のトークン量よりも少ない場合に、
前記コンテンツに対するコード変換をバイパスするか、または
前記コンテンツのコード変換に関連するトークンの数を低減するようにコード変換パラメータを調整し、前記低減されたトークンの数は前記第１のトークン量よりも少なくなるように前記プロセッサに実行させる命令を含む
メモリと
を含むコンピューティングシステム。
【請求項９】
前記コンピューティングシステムに関連するＣＰＵ使用率のレベルと、利用可能なチャネル帯域幅の量のうちの少なくとも１つに基づいて前記プールされたトークン量を前記プロセッサにさらに調整させる、請求項８に記載のコンピューティングシステム。
【請求項１０】
前記現在使用中のトークン量は、ゼロトークンから前記プールされたトークン量までの範囲である、請求項８に記載のコンピューティングシステム。
【請求項１１】
前記第１のトークン量を決定するために、前記プールされたトークン量から現在使用中のトークン量を前記プロセッサにさらに減算させる、請求項８に記載のコンピューティングシステム。
【請求項１２】
前記第１のトークン量が前記第２のトークン量以上であるときに前記リクエストされたコンテンツを前記プロセッサにさらにコード変換させる、請求項８に記載のコンピューティングシステム。
【請求項１３】
前記コンテンツの種類は、画像、オーディオ、テキスト、およびビデオのうちの少なくとも１つを含む、請求項８に記載のコンピューティングシステム。
【請求項１４】
前記コード変換パラメータを調整するために、前記コンテンツに適用されるコード変換の量を前記プロセッサにさらに決定させる、請求項８に記載のコンピューティングシステム。
【請求項１５】
コンテンツプロバイダからエンドユーザデバイスへの配信のためにコンテンツをコード変換する要求を受信し、
前記コンテンツをコード変換するようにプロビジョニングされた、コンテナの数と仮想マシンの数のうちの少なくとも一つに基づいて、コンピューティンデバイスに関連するＣＰＵコアの数を決定し、
前記コンピューティングデバイスに関連するＣＰＵコアの数に関連するプールされたトークンの量と、
前記コンピューティングデバイスによって処理されている他のコード変換リクエストの数と関連する現在使用中のトークンの量と
に基づいて第１のトークン量を決定し、
前記コンテンツのサイズ、前記コンテンツの種類、前記コンテンツの解像度、および前記コンテンツのフレームレートのうちの少なくとも１つに基づいて前記コンテンツをコード変換することに関連する第２のトークン量を決定し、
前記第１のトークン量が前記第２のトークン量のよりも少ない場合に、
前記コンテンツに対するコード変換をバイパスするか、または
低減されたトークンの数が、前記第１のトークン量よりも少なくなる場合に、前記コンテンツのコード変換に関連するトークンの数を低減するようにコード変換パラメータを調整するように装置に実行させるように動作可能な実行可能命令を有する非一時的コンピュータ可読媒体。
【請求項１６】
前記コンピューティングデバイスに関連するＣＰＵ使用率のレベルと、利用可能なチャネル帯域幅の量のうちの少なくとも１つに基づいて前記プールされたトークン量を前記装置にさらに調整させる、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記現在使用中のトークン量は、ゼロトークンから前記プールされたトークン量までの範囲である、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記第１の量のトークンを決定するために、前記プールされた量のトークンから現在使用中の量のトークンを前記装置にさらに減算させる、請求項１５に記載の非一時的コンピュータ可読媒体。
【国際調査報告】
2019536324.tif 000010