IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-512476敵対的生成ネットワークによる帯域幅消費の削減
<>
  • 特表-敵対的生成ネットワークによる帯域幅消費の削減 図1
  • 特表-敵対的生成ネットワークによる帯域幅消費の削減 図2
  • 特表-敵対的生成ネットワークによる帯域幅消費の削減 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】敵対的生成ネットワークによる帯域幅消費の削減
(51)【国際特許分類】
   H04N 21/462 20110101AFI20240312BHJP
   H04N 21/4402 20110101ALI20240312BHJP
【FI】
H04N21/462
H04N21/4402
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023557030
(86)(22)【出願日】2022-02-28
(85)【翻訳文提出日】2023-09-15
(86)【国際出願番号】 CN2022078150
(87)【国際公開番号】W WO2022206244
(87)【国際公開日】2022-10-06
(31)【優先権主張番号】17/216,237
(32)【優先日】2021-03-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】シヴァスワミー、ヘマント クマール
(72)【発明者】
【氏名】ヴィアス、アンヴィータ
(72)【発明者】
【氏名】エカムバラム、ヴィジャイ
(72)【発明者】
【氏名】ラクシット、サルバジット ケイ.
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164PA33
5C164UB02P
5C164UB41S
5C164UC21P
5C164YA21
5C164YA24
(57)【要約】
コンピュータ実施方法は、メディア・ファイルの所望の解像度品質を決定することと、コンピューティング・デバイスの利用可能なリソースを決定することと、コンピューティング・デバイスの決定された利用可能なリソースに基づいて、複数の敵対的生成ネットワーク(GAN)プラグインのうちの1つを選択することと、選択されたGANプラグインに対応するメディア・ファイルの第2の解像度品質を推定することを含む。第2の解像度品質は、所望の解像度品質よりも低い。方法はさらに、サーバと通信して、メディア・ファイルを推定された第2の解像度品質で受信することと、選択されたGANプラグインを使用することによって、受信されたメディア・ファイルを第2の解像度品質から所望の解像度品質に変換することと、変換されたメディア・ファイルを所望の解像度品質で出力することとを含む。
【特許請求の範囲】
【請求項1】
コンピュータ実施方法であって、
メディア・ファイルの所望の解像度品質を決定することと、
コンピューティング・デバイスの利用可能なリソースを決定することと、
前記コンピューティング・デバイスの前記決定された利用可能なリソースに基づいて、複数の敵対的生成ネットワーク(GAN)プラグインのうちの1つを選択することと、
前記選択されたGANプラグインに対応する前記メディア・ファイルの第2の解像度品質を推定することであって、前記第2の解像度品質が前記所望の解像度品質よりも低い、前記推定することと、
サーバと通信して、前記メディア・ファイルを前記推定された第2の解像度品質で受信することと、
前記選択されたGANプラグインを使用することによって、前記受信されたメディア・ファイルを前記第2の解像度品質から前記所望の解像度品質に変換することと、
前記変換されたメディア・ファイルを前記所望の解像度品質で出力することと
を含む、コンピュータ実施方法。
【請求項2】
前記第2の解像度品質が、前記選択されたGANプラグインに関連付けられた最小解像度品質である、請求項1に記載の方法。
【請求項3】
前記複数のGANプラグインが5つのGANプラグインを含み、前記複数のGANプラグインのそれぞれが、前記複数のGANプラグイン内の他のGANプラグインとはそれぞれ異なるサイズを有する、請求項1に記載の方法。
【請求項4】
前記複数のGANプラグインが、前記コンピューティング・デバイスにロードされる前に事前訓練されているインターネット・ブラウザ・プラグインである、請求項1に記載の方法。
【請求項5】
コンピューティング・デバイスの利用可能なリソースを決定することが、履歴データに基づいて前記コンピューティング・デバイスの将来利用可能なリソースを予測することを含み、
前記複数のGANプラグインのうちの1つを選択することが、前記予測された将来利用可能なリソースに基づいて前記複数のGANプラグインのうちの1つを選択することを含む、
請求項1に記載の方法。
【請求項6】
前記コンピューティング・デバイスの将来利用可能なリソースを予測することが、
第1の期間における前記コンピューティング・デバイスの第1の将来利用可能なリソースを予測することと、
前記第1の期間が完了する前に、第2の期間における前記コンピューティング・デバイスの第2の将来利用可能なリソースを予測することと
を含み、前記複数のGANプラグインのうちの1つを選択することが、
前記予測された第1の将来利用可能なリソースに基づいて、前記第1の期間中に使用する第1のGANプラグインを選択することと、
前記予測された第2の将来利用可能なリソースに基づいて、前記第2の期間中に使用する第2のGANプラグインを選択することと
を含む、請求項5に記載の方法。
【請求項7】
前記第1のGANプラグインが前記第2のGANプラグインとは異なる、請求項6に記載の方法。
【請求項8】
前記サーバから前記メディア・ファイルを受信しながら前記コンピューティング・デバイスの利用可能なリソースを監視して、前記コンピューティング・デバイスの利用可能なリソースの変化を検出することと、
前記コンピューティング・デバイスの利用可能なリソースの前記変化を検出したことに応答して、前記コンピューティング・デバイスの利用可能なリソースの前記検出された変化に基づいて、前記複数のGANプラグインから第2のGANプラグインを選択することと、
前記選択された第2のGANプラグインに対応する前記メディア・ファイルの第3の解像度品質を推定することであって、前記第3の解像度品質が前記所望の解像度品質より低く、前記第2の解像度品質とは異なる、前記推定することと、
前記サーバと通信して、前記メディア・ファイルを前記推定された第3の解像度品質で受信することと、
前記選択された第2のGANプラグインを使用することによって、前記受信されたメディア・ファイルを前記第3の解像度品質から前記所望の解像度品質に変換することと
をさらに含む、請求項1に記載の方法。
【請求項9】
コンピューティング・デバイスであって
サーバに通信可能に結合されたインターフェースと、
前記インターフェースに通信可能に結合されたプロセッサであって、前記プロセッサが、
メディア・ファイルの所望の解像度品質を決定することと、
前記コンピューティング・デバイスの利用可能なリソースを決定することと、
前記コンピューティング・デバイスの前記決定された利用可能なリソースに基づいて、複数の敵対的生成ネットワーク(GAN)プラグインのうちの1つを選択することと、
前記選択されたGANプラグインに対応する前記メディア・ファイルの第2の解像度品質を推定することであって、前記第2の解像度品質が前記所望の解像度品質よりも低い、前記推定することと、
前記インターフェースを介して前記サーバと通信して、前記メディア・ファイルを前記推定された第2の解像度品質で要求することと、
前記選択されたGANプラグインを使用することによって、前記サーバから前記第2の解像度品質で受信された前記メディア・ファイルを前記所望の解像度品質に変換することと、
前記変換されたメディア・ファイルを前記所望の解像度品質で出力することと
を行うように構成される、コンピューティング・デバイス。
【請求項10】
前記第2の解像度品質が、前記選択されたGANプラグインに関連付けられた最小解像度品質である、請求項9に記載のコンピューティング・デバイス。
【請求項11】
前記プロセッサが、履歴データに基づいて前記コンピューティング・デバイスの将来利用可能なリソースを予測するように構成され、
前記プロセッサが、前記予測された将来利用可能なリソースに基づいて、前記複数のGANプラグインのうちの1つを選択するように構成される、請求項9に記載のコンピューティング・デバイス。
【請求項12】
前記プロセッサが、
第1の期間における前記コンピューティング・デバイスの第1の将来利用可能なリソースを予測することと、
前記第1の期間が完了する前に、第2の期間における前記コンピューティング・デバイスの第2の将来利用可能なリソースを予測することと、
前記予測された第1の将来利用可能なリソースに基づいて、前記第1の期間中に使用する第1のGANプラグインを選択することと、
前記予測された第2の将来利用可能なリソースに基づいて、前記第2の期間中に使用する第2のGANプラグインを選択することと
を行うように構成される、請求項9に記載のコンピューティング・デバイス。
【請求項13】
前記第1のGANプラグインが前記第2のGANプラグインとは異なる、請求項12に記載のコンピューティング・デバイス。
【請求項14】
前記プロセッサが、
前記サーバから前記メディア・ファイルを受信しながら前記コンピューティング・デバイスの利用可能なリソースを監視して、前記コンピューティング・デバイスの利用可能なリソースの変化を検出することと、
前記コンピューティング・デバイスの利用可能なリソースの前記変化を検出したことに応答して、前記コンピューティング・デバイスの利用可能なリソースの前記検出された変化に基づいて、前記複数のGANプラグインから第2のGANプラグインを選択することと、
前記選択された第2のGANプラグインに対応する前記メディア・ファイルの第3の解像度品質を推定することであって、前記第3の解像度品質が前記所望の解像度品質より低く、前記第2の解像度品質とは異なる、前記推定することと、
前記サーバと通信して、前記メディア・ファイルを前記推定された第3の解像度品質で要求することと、
前記選択された第2のGANプラグインを使用することによって、前記サーバから前記第3の解像度品質で受信された前記メディア・ファイルを前記所望の解像度品質に変換することと
を行うようにさらに構成される、請求項9に記載のコンピューティング・デバイス。
【請求項15】
コンピュータ可読プログラムが記憶されたコンピュータ可読記憶媒体を備えるコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムが、プロセッサによって実行されたとき、前記プロセッサに、
メディア・ファイルの所望の解像度品質を決定することと、
コンピューティング・デバイスの利用可能なリソースを決定することと、
前記コンピューティング・デバイスの前記決定された利用可能なリソースに基づいて、複数の敵対的生成ネットワーク(GAN)プラグインのうちの1つを選択することと、
前記選択されたGANプラグインに対応する前記メディア・ファイルの第2の解像度品質を推定することであって、前記第2の解像度品質が前記所望の解像度品質よりも低い、前記推定することと、
サーバと通信して、前記メディア・ファイルを前記推定された第2の解像度品質で要求することと、
前記選択されたGANプラグインを使用することによって、前記サーバから前記第2の解像度品質で受信された前記メディア・ファイルを前記所望の解像度品質に変換することと、
前記変換されたメディア・ファイルを前記所望の解像度品質で出力することと
を実行させる、コンピュータ・プログラム製品。
【請求項16】
前記第2の解像度品質が、前記選択されたGANプラグインに関連付けられた最小解像度品質である、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
前記コンピュータ可読プログラムが、前記プロセッサに、
履歴データに基づいて、前記コンピューティング・デバイスの将来利用可能なリソースを予測することと、
前記予測された将来利用可能なリソースに基づいて、前記複数のGANプラグインのうちの1つを選択することと
を実行させるようにさらに構成される、請求項15に記載のコンピュータ・プログラム製品。
【請求項18】
前記プロセッサが、
第1の期間における前記コンピューティング・デバイスの第1の将来利用可能なリソースを予測することと、
前記第1の期間が完了する前に、第2の期間における前記コンピューティング・デバイスの第2の将来利用可能なリソースを予測することと、
前記予測された第1の将来利用可能なリソースに基づいて、前記第1の期間中に使用する第1のGANプラグインを選択することと、
前記予測された第2の将来利用可能なリソースに基づいて、前記第2の期間中に使用する第2のGANプラグインを選択することと
を行うように構成される、請求項15に記載のコンピュータ・プログラム製品。
【請求項19】
前記第1のGANプラグインが前記第2のGANプラグインとは異なる、請求項18に記載のコンピュータ・プログラム製品。
【請求項20】
前記コンピュータ可読プログラムが、前記プロセッサに、
前記サーバから前記メディア・ファイルを受信しながら前記コンピューティング・デバイスの利用可能なリソースを監視して、前記コンピューティング・デバイスの利用可能なリソースの変化を検出することと、
前記コンピューティング・デバイスの利用可能なリソースの前記変化を検出したことに応答して、前記コンピューティング・デバイスの利用可能なリソースの前記検出された変化に基づいて、前記複数のGANプラグインから第2のGANプラグインを選択することと、
前記選択された第2のGANプラグインに対応する前記メディア・ファイルの第3の解像度品質を推定することであって、前記第3の解像度品質が前記所望の解像度品質より低く、前記第2の解像度品質とは異なる、前記推定することと、
前記サーバと通信して、前記メディア・ファイルを前記推定された第3の解像度品質で受信することと、
前記選択された第2のGANプラグインを使用することによって、前記受信されたメディア・ファイルを前記第3の解像度品質から前記所望の解像度品質に変換することと
を実行させるようにさらに構成される、請求項15に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
多くの場合、ユーザは、ユーザのデバイス上で実行されているブラウザまたは他のアプリケーションを使用して、映像などのメディア・コンテンツをストリーミングする。場合によっては、ストリーミングされたメディア・コンテンツのファイル・サイズに対応するのに帯域幅が不十分であることが原因で、ストリーミングされたメディア・コンテンツが一時停止または遅延することがある。例えば、ユーザは、ストリーミングされた映像を、標準精細(SD:Standard Definition)品質よりもファイル・サイズが大きい高精細(HD:High Definition)品質で視聴することを望む場合がある。利用可能な帯域幅によっては、HD品質の映像においてバッファリング遅延などの問題が発生する可能性があり、その結果、ストリーミングされた映像を消費する際のユーザの満足度が低下する。
【発明の概要】
【0002】
本開示の態様は、コンピュータ実施方法、コンピュータ・プログラム製品、およびシステムを含んでもよい。方法の一例は、メディア・ファイルの所望の解像度品質を決定することと、コンピューティング・デバイスの利用可能なリソースを決定することと、コンピューティング・デバイスの決定された利用可能なリソースに基づいて、複数の敵対的生成ネットワーク(GAN:Generative Adversarial Network)プラグインのうちの1つを選択することと、選択されたGANプラグインに対応するメディア・ファイルの第2の解像度品質を推定することとを含む。第2の解像度品質は、所望の解像度品質よりも低い。方法はさらに、サーバと通信して、メディア・ファイルを推定された第2の解像度品質で受信することと、選択されたGANプラグインを使用することによって、受信されたメディア・ファイルを第2の解像度品質から所望の解像度品質に変換することと、変換されたメディア・ファイルを所望の解像度品質で出力することとを含む。
【0003】
図面は例示的な実施形態を示しているにすぎず、したがって範囲を限定するものとはみなされないという理解の下に、例示的な実施形態について添付の図面を用いてさらに具体的かつ詳細に説明する。
【図面の簡単な説明】
【0004】
図1】例示的なシステムの一実施形態のブロック図である。
図2】例示的なクライアント・デバイスの一実施形態のブロック図である。
図3】敵対的生成ネットワーク(GAN)を介して帯域幅消費を削減する例示的な方法の一実施形態を示す流れ図である。
【発明を実施するための形態】
【0005】
一般的な慣例により、説明される様々な特徴は一定の縮尺で描かれておらず、例示的な実施形態に関連する特定の特徴を強調するように描かれている。
【0006】
以下の詳細な説明では、本明細書の一部を形成する添付の図面を参照しており、図面には特定の例示的な実施形態が例として示されている。しかしながら、他の実施形態が利用されてもよいこと、および論理的、機械的、および電気的変更が加えられてもよいことを理解されたい。さらに、図面および明細書に提示された方法は、個々のステップが実行される順序を限定するものと解釈されるべきではない。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【0007】
本明細書で使用される「いくつかの(a number of)」は、項目に関して使用される場合、1つまたは複数の項目を意味する。例えば、「いくつかの異なるタイプのネットワーク」は、1つまたは複数の異なるタイプのネットワークである。
【0008】
さらに、「少なくとも1つ」、「1つまたは複数」、および「~または…あるいはその両方(and/or)」という句は、作用において連言と選言との両方であるオープンエンドの表現である。例えば、「A、B、およびCのうちの少なくとも1つ」、「A、B、またはCのうちの少なくとも1つ」、「A、B、およびCのうちの1つまたは複数」、「A、B、またはCのうちの1つまたは複数」、および「A、B、またはCあるいはその組合せ」という表現はそれぞれ、Aのみ、Bのみ、Cのみ、AとBの両方、AとCの両方、BとCの両方、または、AとBとCのすべてを意味する。つまり、「~のうちの少なくとも1つ」、「~のうちの1つまたは複数」、および「~または…あるいはその両方(and/or)」は、リストから任意の組合せの項目および任意の数の項目が使用されてもよいが、リスト内のすべての項目が必要なわけではないことを意味する。項目は、特定の物体、物、またはカテゴリであってもよい。さらに、リストされた項目の組合せにおける各項目の量または数は、同じである必要はない。例えば、いくつかの例示的な例において、「A、B、およびCのうちの少なくとも1つ」は、例えば、限定はされないが、項目Aが2個、項目Bが1個、および項目Cが10個であるか、もしくは項目Aが0個、項目Bが4個、および項目Cが7個であるか、または他の好適な組合せであってもよい。
【0009】
さらに、「ある/1つの(a)」または「ある/1つの(an)」エンティティという用語は、そのエンティティのうちの1つまたは複数を指す。したがって、「ある/1つの(a)」(または「ある/1つの(an)」)、「1つまたは複数の」、および「少なくとも1つの」という用語は、本明細書において同義で使用される場合がある。「備える」、「含む」、および「有する」という用語は同義で使用される場合があることにも留意されたい。
【0010】
さらに、本明細書で使用される「自動的」という用語およびその変形は、プロセスまたは動作が実行されるときに人間の重要な入力なしで行われる任意のプロセスまたは動作を指す。しかしながら、プロセスまたは動作の実行に人間の重要な入力または重要でない入力が使用されるとしても、その入力がプロセスまたは動作の実行前に受信された場合、プロセスまたは動作は自動的である可能性がある。人間の入力がプロセスまたは動作の実行方法に影響を与える場合、その入力は重要であるとみなされる。プロセスまたは動作の実行に同意する人間の入力は「重要」とはみなされない。
【0011】
上述したように、ネットワーク帯域幅の制限により、ストリーミングされたメディア・コンテンツを所望のメディア品質(例えば、HD、フルHD、クアッドHD、ウルトラHDなど)で再生する際にそのような所望のメディア品質が利用可能な帯域幅よりも多くの帯域幅を必要とする場合、遅延バッファリングなどの問題が生じる可能性がある。本明細書に記載の実施形態は、選択可能な敵対的生成ネットワーク(GAN)プラグインの使用を通じてこの問題に対処し、ストリーミングされたメディア・コンテンツによって消費されるネットワーク帯域幅量を削減すると同時に、ユーザが望むメディア品質でメディア・コンテンツを提供する。
【0012】
図1は、例示的なシステム100の一実施形態のブロック図である。システム100は、ネットワーク108を介してサーバ110に通信可能に結合されたクライアント・デバイス102を含む。ネットワーク108は、任意の数の任意の好適な物理通信トポロジまたは論理通信トポロジあるいはその両方を使用して実装され得る。ネットワーク108は、1つもしくは複数のプライベート・コンピューティング・ネットワークまたはパブリック・コンピューティング・ネットワークを含んでもよい。例えば、ネットワーク108はプライベート・ネットワークを含んでもよい。代替としてまたは追加として、ネットワーク108は、インターネットなどのパブリック・ネットワークを含んでもよい。したがって、ネットワーク108は、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはインターネットなどのグローバル・ネットワークあるいはその組合せなどのパケットベースのネットワークの一部を形成してもよい。ネットワーク108は、1つもしくは複数のサーバ、ネットワーク、またはデータベースを含むことができ、1つまたは複数の通信プロトコルを使用して、サーバ110とクライアント・デバイス102との間でデータを転送することができる。
【0013】
さらに、ネットワーク108は、図1では単一のエンティティとして示されているが、他の例では、パブリック・ネットワークまたはプライベート・ネットワークあるいはその組合せなどの複数のネットワークを含んでもよい。通信ネットワーク108は、様々なタイプの物理通信チャネルまたは「リンク」を含むことができる。リンクは、有線、無線、光、または任意の他の好適なメディアあるいはその組合せとすることができる。加えて、通信ネットワーク108は、ルータ、スイッチ、基地局、ブリッジ、またはデータの通信を容易にするために有用であり得る任意の他の機器など、ルーティング、スイッチング、および他の機能を実行するための様々なネットワーク・ハードウェアおよびネットワーク・ソフトウェアを含むことができる。
【0014】
サーバ110は、メディア・ファイル112を記憶し、メディア・ファイル112は、メディア・ファイル112を求めるクライアント・デバイス102からの要求に応答するなどしてネットワーク108を介してクライアント・デバイス102に提供され得る。説明を簡単にするために図1には単一のクライアント・デバイス102、単一のサーバ110、および単一のメディア・ファイル112が描写されているが、他の実施形態では、2つ以上のクライアント・デバイス102、2つ以上のサーバ110、または2つ以上のメディア・ファイル112あるいはその組合せを使用することができることを理解されたい。例えば、いくつかの実施形態では、同じメディア・ファイル112のコピーを複数のサーバ110にわたって記憶することができる。さらに、いくつかの実施形態では、単一のメディア・ファイル112を複数のサーバ110にわたって分散することができる。さらに、複数の異なるメディア・ファイルを同じサーバ110上にまたは複数のサーバ110にわたってあるいはその両方で記憶することができる。加えて、いくつかの実施形態では、複数のクライアント・デバイス102が、同じもしくは異なるサーバ110から同じメディア・ファイル112または異なるメディア・ファイル112を要求することができる。
【0015】
クライアント・デバイス102は、複数のGANプラグイン104と、リソース・モニタ106とを含む。GANは、教師なし機械学習を使用して低品質の画像/映像を高品質の画像/映像に変換することができるニューラル・ネットワークの一種である。具体的には、GANアーキテクチャは、生成器モデルおよび識別器モデルを含む。生成器モデルは、サンプル・ドメインの新しい実現可能な例、例えば、画像の新しい画素を生成するために使用される。識別器モデルは、どの画素が実際の画素または元の画素であるか、およびどの画素が偽の画素または生成された画素であるかを判定するために使用される。識別器モデルが生成された画素と実際のまたは元の画素とを区別できないような程度に到達することを目指して、2つのモデルを一緒に訓練することができる。しかしながら、所与のGANモデルは、あらゆる場合において、識別器が生成された画素と元の画素とを区別できないような程度に到達する必要があるわけではない。
【0016】
生成器モデルおよび識別器モデルは、畳み込みニューラル・ネットワーク(CNN:Convolutional Neural Network)を使用して実装され得る。畳み込みニューラル・ネットワーク(CNN)は、視覚画像の分析に成功裏に適用されている深層順伝播型人工ニューラル・ネットワークのクラスである。畳み込みニューラル・ネットワークは、学習可能な重みおよびバイアスを有する人工的な構造またはニューロンのような構造で構成される。各ニューロンはいくつかの入力を受け取り、ドット積を実行する。畳み込みニューラル・ネットワーク・アーキテクチャは、典型的には、入力(例えば、単一ベクトル)を受け取るように動作する層のスタックを備え、その入力を一連の隠れ層を通じて変換する。各隠れ層は一組のニューロンで構成されており、各ニューロンは学習可能な重みおよびバイアスを有し、各ニューロンは前の層内のすべてのニューロンに全結合されることが可能であり、単一層内のニューロンは、共有結合なしで独立して機能することができる。最後の層は全結合された出力層であり、分類設定において出力層はクラス・スコアを表し、クラス・スコアは、任意の実数値、または(例えば、回帰における)実数値ターゲットとすることができる。しかしながら、本明細書で説明される実施形態は、GANを実装するためのCNNの使用に限定されないことを理解されたい。
【0017】
GANネットワークの正確度は、GANのアーキテクチャ、例えば使用されているGANのネットワーク・サイズまたはレイヤ数などに依存する。サイズが大きいGANは、ネットワーク・サイズが小さいGANよりも多くのクライアント・デバイス102の処理リソースを必要とする。複数のGANプラグイン104は、様々なサイズのGANを含む。その結果、GANプラグイン104のそれぞれは、メモリ、CPUなどの処理リソースについて異なる要件を有する。さらに、各GANプラグイン104は異なるネットワーク・サイズを有するので、各GANプラグイン104は異なるサイズの入力を変換することが可能である。例えば、いくつかの実施形態では、最も高いリソース要件を有する最も大きいGANプラグインは、144画素(144p)の映像を1080pの映像に変換することができ、一方、最も低いリソース要件を有する最も小さいGANプラグインは、720pの映像を1080pの映像に変換することしかできない。したがって、必要な入力のサイズまたは解像度品質は、GANプラグイン・ネットワークのサイズに反比例する(すなわち、GANプラグインが小さいほど、所望の解像度への変換に必要な画素または映像品質は大きくなる)。
【0018】
いくつかの実施形態では、クライアント・デバイス102がGANプラグインを選択する対象となる5つのGANプラグインが存在する。いくつかのそのような実施形態では、第1の最も小さいGANプラグインは、720pの映像を1080pに変換するように構成される。第2のまたは次のGANプラグインは、480pの映像を1080pに変換するように構成される。第3のGANプラグインは、360pの映像を1080pに変換するように構成される。第4のGANプラグインは、244pの映像を1080pに変換するように構成される。第5のまたは最も大きいGANプラグインは、144pの映像を1080pに変換するように構成される。上記で使用された映像品質/サイズは目的のためにのみ提供されており、他の実施形態では他の入力映像サイズおよび出力映像サイズも使用できることを理解されたい。さらに、他の実施形態では、5つを超えるまたは5つ未満の様々なサイズのGANプラグインを使用できることを理解されたい。
【0019】
クライアント・デバイス102は、リソース・モニタ106をさらに含む。リソース・モニタ106は、クライアント・デバイス102の処理能力を監視するように構成される。すなわち、リソース・モニタ106は、実行されているプロセスおよびアプリケーション、ならびに利用されているリソース(例えば、CPU、メモリ、バス帯域幅など)の量を追跡する。リソース・モニタ106は、使用されているリソース量およびクライアント・デバイス102の総リソース容量に基づいて、GANプラグイン104のうちの1つによって使用可能なリソース量を決定することができる。したがって、クライアント・デバイス102は、使用可能なリソース量とGANプラグイン104のそれぞれによって必要とされるそれぞれのリソース量とを比較することによって、GANプラグイン104のうち、サーバ110から受信されたメディア・コンテンツを処理するための1つのGANプラグインを選択する。
【0020】
GANプラグイン104のうちの1つを選択した後、クライアント・デバイス102は、選択されたGANプラグイン104が映像を所望の解像度品質に変換するために必要とされる最小映像解像度を推定する。上述したように、各GANプラグイン104は、所望の出力解像度品質に変換するための入力として必要とされる最小映像解像度品質を有する。したがって、クライアント・デバイス102は、選択されたGANプラグイン104および所望の出力品質に基づいて、必要とされる最小入力解像度品質を推定することができる。クライアント・デバイス102は、サーバ110と通信して、クライアント・デバイス102によって決定された最小入力解像度で映像ファイルを送信するようサーバ110に命令する。映像ファイルは、要求された最小入力解像度で受信され、選択されたGANプラグイン104は、ユーザによる再生/視聴のために、受信した映像ファイルを処理して所望の解像度品質に変換する。
【0021】
選択されたGANプラグイン104を使用する変換は、映像が受信されているときにリアルタイムで行うことができることを理解されたい。例えば、いくつかの実施形態では、映像ファイルがサーバ110からストリーミングされている間に、ユーザは映像ファイルを消費または視聴している。しかしながら、他のいくつかの実施形態では、ユーザが映像ファイルを視聴する前に、映像ファイルをサーバ110から完全にダウンロードまたは受信することができる。例えば、ユーザは、映像ファイルを視聴したい時間を指定してもよい。いずれの状況においても、本明細書に記載の実施形態では、映像ファイルをユーザが視聴する出力解像度品質よりも低い解像度品質で送信することができるので、映像ファイルをサーバ110からクライアント・デバイス102に送信するために必要な帯域幅量が削減される。したがって、解像度品質が低くなるとファイルが小さくなるので、映像ファイルを送信するために使用される帯域幅量が削減される。
【0022】
さらに、いくつかの実施形態では、クライアント・デバイス102の利用可能なリソースは、サーバ110から映像ファイルを受信するプロセス全体を通じて同じでも静的でもない。例えば、クライアント・デバイス102は、メディア・ファイル112が最初にサーバ110から要求されたときと比較して、他のアプリケーションまたはバックグラウンド・プロセスに対してより多くのリソースを使用することを開始してもよく、これにより、GANプラグイン104に利用可能なリソース量は減少する。代替として、クライアント・デバイス102は、メディア・ファイル112が最初にサーバ110から要求されたときと比較して、他のプロセスまたはアプリケーションに対してより少ないリソースを使用することを開始してもよく、これにより、GANプラグイン104に利用可能なリソースの量は増加する。したがって、いくつかの実施形態では、リソース・モニタ106は、他のプロセス/アプリケーションによって利用されるリソース量が変化したときに、GANプラグイン104によって使用可能なリソース量を更新する。次いで、クライアント・デバイス102は、変更された利用可能なリソースに基づいて異なるGANプラグイン104を選択することができ、サーバ110と通信して、クライアント・デバイス102に送信されているメディア・ファイル112の対応する解像度を変更する。
【0023】
さらに、いくつかの実施形態では、リソース・モニタ106は、リソース使用量データの履歴を維持し、リソース使用量データは、限定されないが、どのプロセス/アプリケーションが実行されているか、各プロセス/アプリケーションが実行された平均時間または最長/最短時間あるいはその両方、各プロセス/アプリケーションによって利用される各処理リソースの平均量、最大量、または最小量あるいはその組合せなどの様々な因子を含むことができる。このようにして、クライアント・デバイス102は、所与の期間における利用可能なリソース量を予測することができる。例えば、いくつかの実装形態では、クライアント・デバイス102は、メディア・ファイル112がどの程度大きいか、または映像がどの程度長いかを認識しない。しかしながら、クライアント・デバイス102は、履歴データを利用して、限定されないが45秒という期間などの所与の期間における利用可能なリソースを予測することができる。例えば、期間は、秒、分などで測定され得る。
【0024】
したがって、メディア・ファイル112を受信するための合計時間を複数の連続する期間に分割することができる。合計時間を分割する期間は、同じ長さにすることも、異なるサイズの期間にすることもできる。各期間について、クライアント・デバイス102は、その期間における利用可能なリソースを予測し、予測された利用可能なリソースに基づいてGANプラグインを選択し、サーバ110と通信して、各期間中にメディア・ファイル112の対応する解像度品質が送信されるようにその期間のメディア・ファイル112の解像度品質を調整することができる。このようにして、クライアント・デバイス102は、メディア・ファイル112を受信するプロセス中に、受信されているメディア・ファイル112の入力解像度品質を調整するとともに、利用可能なリソースの変化に適応するために使用されているGANプラグイン104を調整しながら、ユーザに比較的一貫した出力解像度品質を提供することができる。例えば、バックグラウンド・プロセスは、リソース使用量に関する情報を経時的に絶えず収集する。第1の期間後に利用可能なリソースが多くなるか、または多くなると予測される場合、クライアント・デバイス102は、次の連続する期間について、より大きいGANプラグイン104にアップグレードすることができる。同様に、第1の期間後に利用可能なリソースが少なくなるか、または少なくなると予測される場合、クライアント・デバイス102は、次の連続する期間について、より小さいGANプラグイン104にダウングレードすることができる。
【0025】
いくつかの実施形態では、各GANプラグイン104は、事前訓練され、訓練後にクライアント・デバイス102にロードされ得る。加えて、GANプラグイン104は、インターネット・ブラウザ・アプリケーション用のプラグインとして、または、サーバ110からメディア・ファイル112をストリーミングすることまたは他の方法で受信することあるいはその両方が可能な他のアプリケーションまたはソフトウェアプログラム用のプラグインとして実装され得る。さらに、図1には、説明を簡単にするためにGANプラグイン104およびリソース・モニタ106が別個のエンティティとして記載されていることを理解されたい。しかしながら、GANプラグイン104、クライアント・デバイス102、およびリソース・モニタ106に関して上述した機能は、図1の例で上述した方法以外の方法で、単一のエンティティによって実行されることまたは複数のエンティティ間で分割されること、あるいはその両方が可能であることを理解されたい。例えば、いくつかの実施形態では、利用可能なリソースを監視および予測する機能を、所与の期間中に実行される選択されたGANプラグイン104の一部によって実行することができる。
【0026】
図2は、GANプラグイン104とリソース・モニタ106とを含むクライアント・デバイス102の機能を実施するように構成されたコンピューティング・デバイス200の一実施形態のブロック図である。図2に示すコンピューティング・デバイス200の構成要素は、1つまたは複数のプロセッサ202、メモリ204、ストレージ・インターフェース216、入力/出力(「I/O」)デバイス・インターフェース212、およびネットワーク・インターフェース218を含み、これらはすべて、メモリ・バス206、I/Oバス208、バス・インターフェース・ユニット(「IF」)209、およびI/Oバス・インターフェース・ユニット210を介した構成要素間通信のために、直接的または間接的に通信可能に結合される。
【0027】
図2に示す実施形態では、コンピューティング・デバイス200は、1つまたは複数の汎用プログラマブル中央処理ユニット(CPU)202Aおよび202Bを含み、これらは本明細書においてプロセッサ202と総称される。いくつかの実施形態では、コンピューティング・デバイス200は複数のプロセッサを含む。しかしながら、他の実施形態では、コンピューティング・デバイス200は単一のCPUシステムである。各プロセッサ202は、メモリ204に記憶された命令を実行する。また、実施形態は中央処理ユニット・チップに関して説明されているが、本明細書で説明される実施形態は、CPUチップに加えてまたはCPUチップの代わりに、デジタル信号プロセッサ(DSP)またはグラフィック処理ユニット(GPU)・チップあるいはその両方を利用するコンピュータ・システムにも適用可能であることを理解されたい。したがって、本明細書におけるプロセッサまたは処理ユニットへの言及は、CPUチップ、GPUチップ、またはDSPあるいはその組合せを指す可能性がある。
【0028】
いくつかの実施形態では、メモリ204は、データおよびプログラムを記憶または符号化するための、ランダム・アクセス半導体メモリ、記憶デバイス、または記憶媒体(揮発性または不揮発性のいずれか)を含む。例えば、メモリ204は、命令211、リソース・データ213、および複数のGANプラグイン215を記憶する。命令211は、プロセッサ202などのプロセッサによって実行されたとき、監視すること、リソース・データ213を収集すること、リソース使用量を予測すること、GANプラグイン215のうちの1つを選択すること、および選択されたGANプラグイン215を実行して受信された入力メディア・ファイルの映像品質を変換することに関して本明細書で説明されている機能および算出をプロセッサ202に実行させる。
【0029】
いくつかの実施形態では、メモリ204は、コンピューティング・デバイス200の仮想メモリ全体を表し、ネットワークを介してコンピューティング・デバイス200に結合された他のコンピュータ・デバイスの仮想メモリも含んでもよい。いくつかの実施形態では、メモリ204は単一のモノリシックなエンティティであるが、他の実施形態では、メモリ204はキャッシュおよび他のメモリ・デバイスの階層を含む。例えば、メモリ204は、複数レベルのキャッシュに存在することができ、これらのキャッシュは、あるキャッシュが命令を保持し別のキャッシュが非命令データを保持するように、プロセッサによって使用される機能ごとにさらに分割されてもよい。メモリ204は、例えば、様々ないわゆる不均一メモリ・アクセス(NUMA:non-uniform memory access)・コンピュータ・アーキテクチャにおいて知られているように、さらに分散されて異なる処理ユニットまたは処理ユニットのセットに関連付けられてもよい。したがって、図2に示す例では説明のために、命令240、リソース・データ213、およびGANプラグイン215が同じメモリ204に記憶されているが、他の実施形態では異なる方法で実装され得ることを理解されたい。例えば、命令240、リソース・データ213、またはGANプラグイン215あるいはその組合せは、複数の物理媒体にわたって分散され得る。
【0030】
図2に示す実施形態におけるコンピューティング・デバイス200は、プロセッサ202と、メモリ204と、表示システム224と、I/Oバス・インターフェース・ユニット210との間の通信を処理するためのバス・インターフェース・ユニット209も含む。I/Oバス・インターフェース・ユニット210は、様々なI/Oユニットとの間でデータを転送するためのI/Oバス208と結合される。具体的には、I/Oバス・インターフェース・ユニット210は、I/Oプロセッサ(IOP)またはI/Oアダプタ(IOA)としても知られる複数のI/Oインターフェース・ユニット212、216、および218と、I/Oバス208を介して通信することができる。表示システム224は、表示コントローラ、表示メモリ、またはその両方を含む。表示コントローラは、映像、静止画像、音声、またはそれらの組合せを表示デバイス226に提供することができる。表示メモリは、映像データをバッファリングするための専用メモリであってもよい。表示システム224は表示デバイス226と結合される。いくつかの実施形態では、表示デバイス226は、音声をレンダリングするための1つまたは複数のスピーカも含む。代替として、音声をレンダリングするための1つまたは複数のスピーカは、I/Oインターフェース・ユニットと結合されてもよい。代替の実施形態では、表示システム224によって提供される1つまたは複数の機能は、プロセッサ202も含む集積回路に搭載される。加えて、いくつかの実施形態では、バス・インターフェース・ユニット209によって提供される機能のうちの1つまたは複数は、プロセッサ202も含む集積回路に搭載される。
【0031】
I/Oインターフェース・ユニットは、様々なストレージおよびI/Oデバイスとの通信をサポートする。例えば、I/Oデバイス・インターフェース・ユニット212は、1つまたは複数のユーザI/Oデバイス220の連結をサポートし、1つまたは複数のユーザI/Oデバイス220は、ユーザ出力デバイスおよびユーザ入力デバイス(キーボード、マウス、キーパッド、タッチパッド、トラックボール、ボタン、ライト・ペン、または他のポインティング・デバイスなど)を含んでもよい。ユーザは、入力データおよびコマンドをユーザI/Oデバイス220に提供するために、ユーザ・インターフェースを使用してユーザ入力デバイスを操作することができる。さらに、ユーザは、ユーザ出力デバイスを介して出力データを受信することができる。例えば、ユーザ・インターフェースは、表示デバイス上に表示される、またはスピーカを介して再生されるなど、ユーザI/Oデバイス220を介して提示されてもよい。
【0032】
ストレージ・インターフェース216は、フラッシュ・メモリなどの1つまたは複数のストレージ・デバイス228の連結をサポートする。メモリ204のコンテンツまたはその任意の部分は、ストレージ・デバイス228に記憶され、必要に応じてストレージ・デバイス228から取得されてもよい。ネットワーク・インターフェース218は、コンピューティング・デバイス200から他のデジタル・デバイスおよびコンピュータ・デバイスへの1つまたは複数の通信経路を提供する。例えば、いくつかの実施形態では、コンピューティング・デバイス200は、メディア・ファイルを要求および受信するために、ネットワーク・インターフェース218を介してサーバ110などのサーバと通信することができる。さらに、コンピューティング・デバイス200は、メディア・ファイルの所望の解像度品質を示すために、ネットワーク・インターフェース218を介してサーバと通信することができる。
【0033】
図2に示すコンピューティング・デバイス200は、プロセッサ202と、メモリ204と、バス・インターフェース・ユニット209と、表示システム224と、I/Oバス・インターフェース・ユニット210との間の直接通信経路を提供する特定のバス構造を例示しているが、代替の実施形態では、コンピューティング・デバイス200は、異なるバスまたは通信経路を含み、これらは、階層型構成、スター型構成、もしくはウェブ型構成のポイント・ツー・ポイント・リンク、複数の階層バス、並列経路および冗長経路、または任意の他の適切なタイプの構成など、様々な形式のいずれかで配置されてもよい。さらに、I/Oバス・インターフェース・ユニット210およびI/Oバス208は単一の個別のユニットとして示されているが、他の実施形態では、コンピューティング・デバイス200は、複数のI/Oバス・インターフェース・ユニット210または複数のI/Oバス208あるいはその両方を含むことができる。様々なI/Oデバイスまで延びる様々な通信経路からI/Oバス208を分離する複数のI/Oインターフェース・ユニットが示されているが、他の実施形態では、I/Oデバイスの一部またはすべてが、1つまたは複数のシステムI/Oバスに直接接続される。
【0034】
上述したように、いくつかの実施形態では、図2に示す構成要素およびデータのうちの1つまたは複数は、本明細書に記載の機能を実施するために、プロセッサ202上で実行される命令もしくはステートメント、またはプロセッサ202上で実行される命令もしくはステートメントによって解釈される命令もしくはステートメントを含む。他の実施形態では、図2に示す構成要素のうちの1つまたは複数は、プロセッサベースのシステムの代わりにまたはプロセッサベースのシステムに加えて、半導体デバイス、チップ、論理ゲート、回路、回路カード、または他の物理ハードウェア・デバイスあるいはその組合せを介してハードウェアに実装される。加えて、他の実施形態では、図2に示す構成要素のうちのいくつかを省略すること、または他の構成要素を含めること、あるいはその両方が可能である。
【0035】
図3は、敵対的生成ネットワーク(GAN)を介して帯域幅消費を削減する例示的な方法300の一実施形態を示す流れ図である。方法300は、上述したコンピューティング・デバイス200などのコンピューティング・デバイスによって実施され得る。例示的な方法300におけるアクションの順序は説明のために提供されたものであり、他の実施形態では方法を異なる順序で実行できることを理解されたい。同様に、他の実施形態ではいくつかのアクションを省略できること、または追加のアクションを含めることができることを理解されたい。
【0036】
302において、複数のGANプラグインが作成および訓練される。本明細書で述べたように、複数のGANプラグインのそれぞれは、異なるネットワーク・サイズを利用することができ、選択された出力解像度を達成するための最小入力解像度について異なる要件を有することができる。さらに、各GANプラグインは、他のGANプラグインとは異なる、メモリ、CPUなどのリソースを処理するための要件を有することができる。いくつかの実施形態では、それぞれが異なるネットワーク・サイズを有する5つのGANプラグインが作成される。各GANプラグインは、コンピューティング・デバイスにロードする前に事前訓練され得る。さらに、いくつかの実施形態では、GANプラグインはインターネット・ブラウザ・プラグインとすることができる。他の実施形態では、GANプラグインは、スタンドアロン・アプリケーション、またはサーバからメディア・ファイルを取得することが可能な他のプログラムに組み込まれたプラグイン、あるいはその両方とすることができる。
【0037】
304において、メディア・ファイル(例えば、画像または映像ファイル)の所望の解像度品質が決定される。例えば、ユーザは、サーバから取得するメディア・ファイルを選択することができる。このようなサーバは、ビデオ共有ウェブサイト、ソーシャル・メディア・プラットフォーム、ファイル転送プロトコル(FTP)サーバ、またはローカル・エリア・ネットワークまたはインターネットなどのワイド・エリア・ネットワークを介してアクセスされる他のリモート・ロケーションを含むことができるが、これらに限定されない。いくつかの実施形態では、ユーザの選択を検出したことに応答して、メディア・ファイルの所望の解像度品質を選択するための質問への入力をユーザに促すことができる。他の実施形態では、ユーザは、メディア・ファイルの所望のデフォルト解像度品質を先験的に入力することができる。さらに他の実施形態では、システムは、ユーザの応答から学習して、履歴データに基づいて、どの解像度の品質をユーザに提供すべきかを自動的に決定することができる。解像度品質は、1080p、720pなどの従来の表記法を使用して示すことができる。
【0038】
306において、ユーザのコンピューティング・デバイスの利用可能なリソースが決定される。上述したように、利用可能なリソースには、CPU、メモリ、バス帯域幅などが含まれ得るが、これらに限定されない。本明細書で使用される利用可能なリソースは、別のプロセスまたはアプリケーションによって利用も予約もされておらず、したがって受信したメディア・ファイルを処理および変換するためにGANプラグインによって使用可能なリソースを指す。いくつかの実施形態では、現在利用可能なリソースが決定される。他の実施形態では、現在利用可能なリソースに加えて、上述したように将来利用可能なリソースが予測される。例えば、上述したように、ユーザのコンピューティング・デバイス上のリソース使用量を長期にわたって監視して、履歴データの記録を蓄積することができる。いくつかの実施形態では、履歴データに基づいて、将来利用可能なリソースを決定することができる。加えて、いくつかの実施形態では、将来利用可能なリソースを予測することは、第1の期間における将来利用可能なリソースを予測することを含み、第1の期間の完了前に、第2の期間における第2の将来利用可能なリソースが予測される。例えば、上述したように、メディア・ファイルのファイル・サイズは不明であり、したがってメディア・ファイルをダウンロードまたは受信するための時間は、より短い期間、例えば45秒に分割される。最初の45秒間における将来利用可能なリソースを予測することができ、次いで、次の45秒間における将来利用可能なリソースを予測することができ、メディア・ファイルが完全に受信されるまで以下同様である。
【0039】
308において、コンピューティング・デバイスの決定された利用可能なリソースに基づいて、複数の敵対的生成ネットワーク(GAN)プラグインのうちの1つが選択される。上述したように、各GANプラグインは異なるサイズを有することができる。したがって、各GANプラグインは、GANのサイズに基づいて異なる処理要件またはリソース要件を有することができる。いくつかの実施形態では、メディア・ファイル全体を処理するために同じGANプラグインが使用される。しかしながら、他の実施形態では、複数のGANプラグインを使用することができる。例えば、メディア・ファイルをダウンロードまたは受信するための時間がより小さい連続する期間に分割される実施形態では、コンピューティング・デバイスは、それぞれの期間における現在利用可能なリソースまたは予測された利用可能なリソースあるいはその両方に基づいて、連続する期間ごとにGANプラグインを選択することができる。例えば、第1の期間および第2の期間に関する上記の例では、予測された第1の将来利用可能なリソースに基づいて、第1の期間中に使用するための第1のGANプラグインを選択することができ、予測された第2の将来利用可能なリソースに基づいて、第2の期間中に使用するための第2のGANプラグインを選択することができる。予測された第1の将来利用可能なリソースと予測された第2の将来利用可能なリソースとが同様または同じである場合、同じGANプラグインを選択することができる(すなわち、第1のGANプラグインと第2のGANプラグインは同じである)。しかしながら、予測された第1の将来利用可能なリソースと予測された第2の将来利用可能なリソースとが異なる場合、異なるGANプラグインを選択することができる(すなわち、第1のGANプラグインは第2のGANプラグインとは異なる)。
【0040】
310において、選択されたGANプラグインに基づいて、メディア・ファイルの第2の解像度品質が推定される。上述したように、各GANプラグインは、メディア・ファイルを所望の解像度品質に変換するために必要とされる最小解像度品質を有する。例えば、小さいGANプラグインの最小入力解像度品質は、大きいGANプラグインよりも高い必要がある。上述したように、メディア・ファイルを受信するための帯域幅使用量が削減されるように、第2の解像度品質は所望の解像度品質よりも低い。
【0041】
312において、コンピューティング・デバイスは、推定された第2の解像度品質でメディア・ファイルを受信するためにサーバと通信する。例えば、コンピューティング・デバイスは、サーバとコンタクトを取り、メディア・ファイルを第2の解像度品質で送信するよう要求することができる。さらに、上述したように、いくつかの実施形態では、メディア・ファイルを受信する際に、異なるサイズを有する異なるGANプラグインを異なる時点で使用することができる。新しいGANプラグインが選択されると、コンピューティング・デバイスは、サーバと通信して、新しいGANプラグインに対応する新しい解像度品質(例えば、第3の解像度品質)でメディア・ファイルを要求することができる。このようにして、コンピューティング・デバイスの利用可能なリソースが多くなった場合、より大きいGANプラグインを選択することができ、所望の解像度品質または第2の解像度品質よりも低い解像度品質でメディア・ファイルを受信することができる。対照的に、コンピューティング・デバイスの利用可能なリソースが少なくなった場合、大きいGANプラグインよりも必要とされるリソースが相対的に少ない、より小さいGANプラグインを選択することができる。したがって、第3の解像度品質は、第2の解像度品質よりも高いが、それでもなお所望の解像度品質よりは低い可能性があり、その結果、所望の解像度品質でメディア・ファイルを受信する場合と比較して帯域幅使用量がさらに削減される。
【0042】
さらに、いくつかの実施形態では、選択されたGANプラグインに必要とされる最小解像度品質ではない解像度品質でメディア・ファイルを要求できることを理解されたい。例えば、選択されたGANプラグインの最小解像度品質が240pである場合、いくつかの実施形態では、コンピューティング・デバイスは、360pまたは480pなどの、最小の240pよりも高いが所望の解像度品質よりも低い第2の解像度品質を推定することができる。
【0043】
314において、受信されたメディア・ファイルは、選択されたGANプラグインを使用して第2の解像度品質から所望の解像度品質に変換される。上述したように、利用可能なリソースの変化に基づいて複数の異なるサイズのGANプラグインが連続的に選択される実施形態では、受信されたメディア・ファイルのそれぞれの部分は、対応するGANプラグインを使用して変換される。メディア・ファイルは、所望の解像度品質に変換され、316において所望の解像度品質で出力される。例えば、変換されたメディア・ファイルをコンピューティング・デバイスの表示画面に表示することができる。さらに、いくつかの実施形態では、306~314で実行されるアクションは、316においてメディア・ファイルが出力されるのと実質的に同時にリアルタイムで実行できることを理解されたい。すなわち、メディア・ファイルの一部が出力/表示されている間、コンピューティング・デバイスが、リソースの可用性を監視し、リソースの可用性の変化を検出したことに応答して、選択されたGANを必要に応じて調整しながら、後続の別の部分が受信および変換される。他の実施形態では、ユーザは、メディア・ファイルを同時に再生することなく、メディア・ファイルを視聴するための予定時間を指定するかまたはメディア・ファイルをダウンロードすることができる。このような実施形態では、メディア・ファイルが出力される前に変換を行うことができる。
【0044】
したがって、本明細書に記載の実施形態は、メディア・ファイルを取得する際の帯域幅使用量の削減を可能にする。この帯域幅使用量の削減によりバッファリング遅延などの問題が軽減されるので、メディア・ファイルを視聴する際のユーザの満足度を向上させることができる。さらに、帯域幅使用量の削減は、帯域幅使用量が従量制である実施形態などにおいて他の利点をもたらすことができる。しかしながら、帯域幅が削減され、取得されたメディア・ファイルの解像度品質が低下したにもかかわらず、メディア・ファイルの出力解像度品質は依然としてユーザの所望の解像度品質のままである。
【0045】
本発明は、任意の可能な技術的詳細の統合レベルでのシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含んでもよい。
【0046】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の好適な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造体などの機械的に符号化されたデバイス、および上記の任意の好適な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、または電線を介して送信される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0047】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含んでもよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【0048】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がリモート・コンピュータ上もしくはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して接続されてもよい。いくつかの実施形態では、本発明の態様を実行するために、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行してもよい。
【0049】
本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本発明の態様について説明している。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せがコンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0050】
コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/作用を実施するための手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/作用の態様を実施する命令を含む製造品を含むように、コンピュータ可読媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示できるものであってもよい。
【0051】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/作用を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0052】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、ならびに動作を示す。これに関して、流れ図またはブロック図における各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことがある。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、関与する機能性に応じて、実質的に同時に実行されてもよく、またはそれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定された機能または作用を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【0053】
本明細書には特定の実施形態が図示および説明されているが、示された特定の実施形態の代わりに、同じ目的を達成すると判断された任意の構成を使用できることが当業者には理解されよう。したがって、本発明は特許請求の範囲およびその均等物によってのみ限定されることが明らかに意図されている。
図1
図2
図3
【手続補正書】
【提出日】2023-10-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータの情報処理による方法であって、
メディア・ファイルの所望の解像度品質を決定することと、
コンピューティング・デバイスの利用可能なリソースを決定することと、
前記コンピューティング・デバイスの前記決定された利用可能なリソースに基づいて、複数の敵対的生成ネットワーク(GAN)プラグインのうちの1つを選択することと、
前記選択されたGANプラグインに対応する前記メディア・ファイルの第2の解像度品質を推定することであって、前記第2の解像度品質が前記所望の解像度品質よりも低い、前記推定することと、
サーバと通信して、前記メディア・ファイルを前記推定された第2の解像度品質で受信することと、
前記選択されたGANプラグインを使用することによって、前記受信されたメディア・ファイルを前記第2の解像度品質から前記所望の解像度品質に変換することと、
前記変換されたメディア・ファイルを前記所望の解像度品質で出力することと
を含む、方法
【請求項2】
前記第2の解像度品質が、前記選択されたGANプラグインに関連付けられた最小解像度品質である、請求項1に記載の方法。
【請求項3】
前記複数のGANプラグインが5つのGANプラグインを含み、前記複数のGANプラグインのそれぞれが、前記複数のGANプラグイン内の他のGANプラグインとはそれぞれ異なるサイズを有する、請求項1または2に記載の方法。
【請求項4】
前記複数のGANプラグインが、前記コンピューティング・デバイスにロードされる前に事前訓練されているインターネット・ブラウザ・プラグインである、請求項1~3のいずれか1項に記載の方法。
【請求項5】
コンピューティング・デバイスの利用可能なリソースを決定することが、履歴データに基づいて前記コンピューティング・デバイスの将来利用可能なリソースを予測することを含み、
前記複数のGANプラグインのうちの1つを選択することが、前記予測された将来利用可能なリソースに基づいて前記複数のGANプラグインのうちの1つを選択することを含む、
請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記コンピューティング・デバイスの将来利用可能なリソースを予測することが、
第1の期間における前記コンピューティング・デバイスの第1の将来利用可能なリソースを予測することと、
前記第1の期間が完了する前に、第2の期間における前記コンピューティング・デバイスの第2の将来利用可能なリソースを予測することと
を含み、前記複数のGANプラグインのうちの1つを選択することが、
前記予測された第1の将来利用可能なリソースに基づいて、前記第1の期間中に使用する第1のGANプラグインを選択することと、
前記予測された第2の将来利用可能なリソースに基づいて、前記第2の期間中に使用する第2のGANプラグインを選択することと
を含む、請求項5に記載の方法。
【請求項7】
前記第1のGANプラグインが前記第2のGANプラグインとは異なる、請求項6に記載の方法。
【請求項8】
前記サーバから前記メディア・ファイルを受信しながら前記コンピューティング・デバイスの利用可能なリソースを監視して、前記コンピューティング・デバイスの利用可能なリソースの変化を検出することと、
前記コンピューティング・デバイスの利用可能なリソースの前記変化を検出したことに応答して、前記コンピューティング・デバイスの利用可能なリソースの前記検出された変化に基づいて、前記複数のGANプラグインから第2のGANプラグインを選択することと、
前記選択された第2のGANプラグインに対応する前記メディア・ファイルの第3の解像度品質を推定することであって、前記第3の解像度品質が前記所望の解像度品質より低く、前記第2の解像度品質とは異なる、前記推定することと、
前記サーバと通信して、前記メディア・ファイルを前記推定された第3の解像度品質で受信することと、
前記選択された第2のGANプラグインを使用することによって、前記受信されたメディア・ファイルを前記第3の解像度品質から前記所望の解像度品質に変換することと
をさらに含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
コンピューティング・デバイスであって
サーバに通信可能に結合されたインターフェースと、
前記インターフェースに通信可能に結合されたプロセッサであって、前記プロセッサが、
メディア・ファイルの所望の解像度品質を決定することと、
前記コンピューティング・デバイスの利用可能なリソースを決定することと、
前記コンピューティング・デバイスの前記決定された利用可能なリソースに基づいて、複数の敵対的生成ネットワーク(GAN)プラグインのうちの1つを選択することと、
前記選択されたGANプラグインに対応する前記メディア・ファイルの第2の解像度品質を推定することであって、前記第2の解像度品質が前記所望の解像度品質よりも低い、前記推定することと、
前記インターフェースを介して前記サーバと通信して、前記メディア・ファイルを前記推定された第2の解像度品質で要求することと、
前記選択されたGANプラグインを使用することによって、前記サーバから前記第2の解像度品質で受信された前記メディア・ファイルを前記所望の解像度品質に変換することと、
前記変換されたメディア・ファイルを前記所望の解像度品質で出力することと
を行うように構成される、コンピューティング・デバイス。
【請求項10】
コンピュータが実行可能なコンピュータ・プログラムであって、コンピュータに、請求項1~8のいずれか1項に記載の方法を実行させるためのコンピュータ・プログラム。
【請求項11】
請求項10に記載されたコンピュータ・プログラムを格納するコンピュータ可読な記録媒体。
【国際調査報告】