(57)【要約】  本開示の例は、新しいおよび／またはオフロードされた処理機能を備える外部モジュールを実装するためのシステムおよび方法について説明する。態様において、外部モジュールは、情報機器デバイスに選択的かつ通信可能に結合されるように構成されてもよい。外部モジュールは、情報機器デバイスによって受信されたコンテンツおよび動作を処理するためのハードウェア、ソフトウェア、データ、および／または命令を用いて構成されるか、またはそれらを受け取ってもよい。動作が情報機器デバイスによって受け取られると、情報機器デバイスは、動作を情報機器デバイスによって実行されるべきコマンドおよび外部モジュールによって実行されるべきコマンドに構文解析してもよい。情報機器デバイスは、外部モジュールによって実行されるべきコマンドを外部モジュールに送信してもよい。外部モジュールは、次いで、受信したコマンドを処理および／または実行し、結果として生じるコンテンツを表示デバイスにレンダリングしてもよい。
2021501528.tif 000002
【特許請求の範囲】
【請求項１】
第1の機能を備え、コンテンツを受信するように動作する機器デバイスであって、前記コンテンツが前記第1の機能に関連するコマンドのセットと第2の機能に関連するコマンドのセットとに関連付けられており、前記機器デバイスが前記第1の機能に関連する前記コマンドのセットを実行するようにさらに動作可能である、機器デバイスと、
前記第2の機能を備え、前記機器デバイスから前記コンテンツと前記第2の機能に関連する前記コマンドのセットとを受信するように動作する外部デバイスであって、前記外部デバイスが前記機器デバイスおよび表示デバイスに選択的に接続可能であり、前記外部デバイスが前記コンテンツを修正するために前記第2の機能に関連する前記コマンドのセットを実行し、前記修正されたコンテンツを前記表示デバイスに送信するようにさらに動作可能である、外部デバイスと
を備えるシステム。
【請求項２】
前記機器デバイスがセットトップボックスであり、前記外部デバイスがドングルデバイスである、請求項1に記載のシステム。
【請求項３】
前記第1の機能がユーザインターフェースを基にしていないイベントに対応し、前記第2の機能がユーザインターフェースを基にしたイベントに対応する、請求項2に記載のシステム。
【請求項４】
前記第2の機能が前記機器デバイスによってサポートされていない機能を表す、請求項2に記載のシステム。
【請求項５】
前記第2の機能が、HDMI(登録商標)インターフェースおよびHDCPインターフェースのうちの少なくとも1つを使用して、前記修正されたコンテンツを出力することを可能にする、請求項2に記載のシステム。
【請求項６】
前記機器デバイスが、前記コンテンツに関連付けられたコマンドセットを受信し、前記コマンドセットを、前記第1の機能に関連する前記コマンドのセットと前記第2の機能に関連する前記コマンドのセットとに分離する、請求項1に記載のシステム。
【請求項７】
前記外部デバイスが、前記修正されたコンテンツを複数のデバイスに出力するようにさらに動作可能である、請求項1に記載のシステム。
【請求項８】
前記外部デバイスが、ワイヤレス通信、処理リソース、および記憶リソースのうちの少なくとも1つへのアクセスを前記機器デバイスに提供する、請求項1に記載のシステム。
【請求項９】
前記外部デバイスが前記機器デバイスに接続されている場合、以前に前記機器デバイスとペアにされていないリモートコントロールが前記外部デバイスと対話するために使用され得る、請求項1に記載のシステム。
【請求項１０】
前記外部デバイスが前記機器デバイスに接続されている場合、以前に前記機器デバイスとペアにされているリモートコントロールが前記外部デバイスと対話するために使用され得る、請求項1に記載のシステム。
【請求項１１】
前記第2の機能に関連する前記コマンドのセットを実行することが、前記コンテンツを解凍すること、前記コンテンツに透かしを入れること、前記コンテンツをトランススクランブリングすること、および前記コンテンツをトランスコーディングすることのうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項１２】
前記機器デバイスが以前に前記第2の機能を備え、前記外部デバイスを前記機器デバイスに接続したときに、前記第2の機能が前記機器デバイスから前記外部デバイスに転送された、請求項1に記載のシステム。
【請求項１３】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに結合されたメモリと
を備えるドングルデバイスであって、前記メモリは、前記少なくとも1つのプロセッサによって実行されると、
前記ドングルデバイスに接続されたセットトップボックスデバイスからコンテンツを受信するステップと、
前記コンテンツに対応するユーザインターフェースを基にしたイベントのセットを受信するステップであって、前記ユーザインターフェースを基にしたイベントのセットが前記セットトップボックスに存在しない機能に対応する、ステップと、
修正されたコンテンツを生成するために前記ユーザインターフェースを基にしたイベントのセットを実行するステップと、
前記ドングルデバイスに接続された第1の表示デバイスに前記修正されたコンテンツを出力するステップと
を含む方法を実行するコンピュータ実行可能命令を含む、ドングルデバイス。
【請求項１４】
前記ドングルデバイスが、4Kコンテンツを復号するための1つまたは複数のコーデックをさらに備える、請求項13に記載のドングルデバイス。
【請求項１５】
前記ドングルデバイスが、前記セットトップボックスがワイヤレス通信を送信することを可能にするワイヤレス構成要素をさらに備える、請求項13に記載のドングルデバイス。
【請求項１６】
前記コンテンツが、前記セットトップボックスによって復調およびデスクランブルされており、前記ユーザインターフェースを基にしたイベントのセットを実行するステップが、前記復調およびデスクランブルされたコンテンツを復号するステップを含む、請求項13に記載のドングルデバイス。
【請求項１７】
前記方法が、
前記第1の表示デバイスが前記ドングルデバイスに接続され、第2の表示デバイスが前記ドングルデバイスに接続されていることを識別するステップと、
前記修正されたコンテンツを前記第1の表示デバイスおよび前記第2の表示デバイスに出力するステップと
をさらに含む、請求項13に記載のドングルデバイス。
【請求項１８】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに結合されたメモリと
を備えるセットトップボックスであって、前記メモリは、前記少なくとも1つのプロセッサによって実行されると、
コンテンツプロバイダからコンテンツを受信するステップと、
ユーザインターフェースを基にしたイベントを含むコマンドの第1のセットと、ユーザインターフェースを基にしていないイベントを含むコマンドの第2のセットとを作成するステップと、
前記セットトップボックスによって前記コマンドの第1のセットを実行するステップと、
前記セットトップボックスに接続されたドングルデバイスに前記コマンドの第2のセットを送信するステップと
を含む方法を実行するコンピュータ実行可能命令を含む、セットトップボックス。
【請求項１９】
前記コマンドの第1のセットが前記セットトップボックスにおいて有効にされた機能に対応し、前記コマンドの第2のセットが前記ドングルデバイスにおいて有効にされた機能に対応する、請求項18に記載のセットトップボックス。
【請求項２０】
前記セットトップボックスが前記ドングルデバイスに接続されると、前記コマンドの第2のセットに関連するイベントを処理するために前記セットトップボックスによって以前に割り当てられたコンピューティングリソースが解放される、請求項18に記載のセットトップボックス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、PCT国際特許出願として2018年8月23日に出願されており、2017年12月15日に出願した米国特許出願第15/843,219号の優先権を主張するものであり、この出願は、2017年10月27日に出願した米国仮特許出願第62/578,097号の優先権を主張するものであり、これらの開示は、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【０００２】
様々な情報機器は、外部信号を受信し、外部信号をコンテンツに変換し、コンテンツを1つまたは複数の表示デバイス上に表示させるように動作可能である。一般に、情報機器デバイスは、効果的に変更、アップグレード、または保守することができないハードウェアおよび／またはソフトウェア構成を実装する。結果として、そのような情報機器デバイスは、しばしば単に交換される。そのような交換は、情報機器デバイスの供給者およびユーザにとって費用効果的ではなく、情報機器デバイスユーザのユーザ体験を大幅に低下させる。
【０００３】
本明細書で開示される態様がなされたのは、これらおよび他の一般的な考慮事項に関してである。また、比較的特定の問題について論じられている場合があるが、例は、本開示の背景または他の箇所において確認される特定の問題を解決することに限定されるべきではないことが理解されるべきである。
【発明の概要】
【課題を解決するための手段】
【０００４】
この概要は、詳細な説明の項目において以下でさらに説明される概念の選択を簡略化された形式において紹介するために提供される。この概要は、特許請求された内容の主要な特徴または本質的な特徴を特定することを意図しておらず、特許請求された内容の範囲を決定する際の助けとして使用されることも意図していない。
【０００５】
本開示の例は、新しいおよび／またはオフロードされた処理機能を備える外部モジュールを実装するためのシステムおよび方法について説明する。態様において、外部モジュールは、情報機器デバイスに選択的かつ通信可能に結合されるように構成されてもよい。外部モジュールは、情報機器デバイスによって受信されたコンテンツおよび動作を処理するためのハードウェア、ソフトウェア、データ、および／または命令を用いて構成されるか、またはそれらを受け取ってもよい。動作が情報機器デバイスによって受け取られると、情報機器デバイスは、動作を情報機器デバイスによって実行されるべきコマンドおよび外部モジュールによって実行されるべきコマンドに構文解析してもよい。情報機器デバイスは、外部モジュールによって実行されるべきコマンドを外部モジュールに送信してもよい。外部モジュールは、次いで、受信したコマンドを処理および／または実行し、結果として生じるコンテンツを表示デバイスにレンダリングしてもよい。
【０００６】
この概要は、詳細な説明において以下でさらに説明される概念の選択を簡略化された形式において紹介するために提供される。この概要は、特許請求された内容の主要な特徴または本質的な特徴を特定することを意図しておらず、特許請求された内容の範囲を限定するために使用されることも意図していない。例の追加の態様、特徴、および／または利点は、以下の説明において一部が示され、一部は、説明から明らかとなり、または本開示の実施によって知られ得る。
【０００７】
非限定的かつ非網羅的な例について、以下の図面を参照して説明する。
【図面の簡単な説明】
【０００８】
【図１】本明細書で説明されるような新しいおよび／またはオフロードされた処理機能を備える外部モジュールを実装するための例示的なシステムの概要を示す図である。
【図２】本明細書で説明されるような新しいおよび／またはオフロードされた処理機能を備える例示的な入力処理ユニットを示す図である。
【図３】本明細書で説明されるような外部モジュールを使用して新しいおよび／またはオフロードされた処理機能を実行する例示的な方法を示す図である。
【図４】本明細書で説明するように、ドングルデバイスを使用してオフロードされた機能を処理する例示的な方法を示す図である。
【図５】本明細書で説明するように、コマンドをセグメント化し、ドングルデバイスにオフロードする例示的な方法を示す図である。
【図６】本実施形態のうちの1つまたは複数が実施され得る適切な動作環境400の一例を示す図である。
【発明を実施するための形態】
【０００９】
本開示の様々な態様について、本明細書の一部を形成し、特定の例示的な態様を示す添付図面を参照して、以下により十分に説明する。しかしながら、本開示の異なる態様は、多くの異なる形態において実装されてもよく、本明細書に記載された態様に限定されると解釈されるべきではなく、むしろ、これらの態様は、本開示が徹底的かつ完全であり、態様の範囲を当業者に完全に伝えるように提供される。態様は、方法、システム、またはデバイスとして実施されてもよい。したがって、態様は、ハードウェア実装形態、完全にソフトウェアの実装形態、またはソフトウェアの態様とハードウェアの態様とを組み合わせた実装形態の形態をとってもよい。したがって、以下の詳細な説明は、限定的な意味において解釈されるべきではない。
【００１０】
本開示は、新しいおよび／またはオフロードされた処理機能を備える外部モジュールを実装するためのシステムおよび方法について説明する。態様において、ドングルまたは同様の周辺デバイスなどの外部モジュールは、携帯電話、スマートデバイス、携帯情報端末(PDA)、衛星もしくはケーブルセットトップボックス(STB)、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、テレビ、ラジオ、または当該技術分野で知られている任意の他の表示デバイスなどの1つまたは複数の情報機器デバイスに通信可能に結合されるように構成されてもよい。外部モジュールおよび／または情報機器デバイスは、USB接続、Firewire接続、Thunderbolt接続、HDMI(登録商標)接続、または同様のデジタルオーディオ／ビジュアル接続などの1つまたは複数の接続を介して接続されてもよい。少なくとも1つの例において、外部モジュールは、外部モジュールおよび複数の情報機器デバイスが直列または並列に同時に接続され得るように、複数の出力を備えてもよい。外部モジュールと1つまたは複数の結合されたデバイスとの間で通信を送信するために、暗号化または他のデータセキュリティ技法の1つまたは複数の手段が使用されてもよい。外部モジュールは、情報機器デバイスによって生成／受信されるか、または外部モジュールによって直接受信されるコンテンツおよび動作を処理するための、ハードウェア(例えば、1つまたは複数のプロセッサ、メモリ、データストレージなど)と、ソフトウェア(例えば、デバイスドライバ、オーディオ／ビデオコーデック、機能命令セット、I/Oモジュールなど)と、情報(例えば、ビデオデータストリーム、オーディオデータストリーム、コンテンツメタデータなど)とを備えてもよい。例において、そのようなハードウェア／ソフトウェアは、1つまたは複数の結合された機器デバイスのハードウェア／ソフトウェアとともに(またはその代わりに)使用されてもよい。例えば、情報機器デバイスは、受信されたコンテンツの品質を改善するか、または情報機器デバイスの性能を改善するために、外部モジュールの処理およびメモリリソースを活用してもよい。本明細書において使用されるコンテンツとは、コンテンツプロバイダ、コンテンツストア、またはコンピューティングデバイスからブロードキ
ャストされたまたは他の方法でアクセス可能な1つまたは複数のデータ送信を指す場合がある。例において、情報機器デバイス(または外部モジュール)によって受信される動作は、リモートコントロール、キーボード、マイクロフォンなどの外部または内部入力手段から生じてもよい。
【００１１】
態様において、外部モジュールは、情報機器デバイスにはない機能、または情報機器デバイスの機能を改善する機能を提供してもよい。例えば、外部モジュールは、新しい／追加のビデオ解像度(例えば、1080p、4K、8Kなど)を処理(またはその処理を促進)すること、新しい／追加のビデオおよび／またはオーディオコーデック(例えば、HEVC/H.265、VP9など)を実装すること、新しい／追加のA/V接続規格(例えば、HDMI(登録商標)2.0、HDCP2.2など)を実装すること、ワイヤレス技術(例えば、Wi-Fi、Bluetoothなど)を実装すること、などを行うように構成されてもよい。別の例として、外部モジュールは、外部デバイスから受信された、または他の方法でアクセス可能なコンテンツを記憶し、それへのアクセスを提供するように構成されてもよい。いくつかの態様において、外部モジュールによって提供される機能は、情報機器デバイスまたは関連する周辺デバイスの交換またはアップグレードを不要にしてもよい。例えば、新しく出現する技術を処理するための外部デバイスが、そのような技術を組み込むように(効果的に)構成することができない機器デバイスに取り付けられてもよい。別の例として、外部モジュールは、情報機器デバイスの既存のリモートコントロール(または他の入力デバイス)を使用して制御されるように構成されてもよい。代替的には、外部モジュールは、外部モジュールに付属する入力メカニズムを使用して制御されるように構成されてもよい。少なくとも1つの例において、外部モジュールに付属する入力メカニズムは、外部モジュールに接続された1つまたは複数のデバイスを制御するために使用されてもよい。
【００１２】
いくつかの態様において、外部モジュールに含まれるソフトウェアおよび／または情報は、1つまたは複数の基準に従って情報機器デバイスによって外部モジュールに送信されてもよい。一例として、情報機器デバイスは、最初の結合時に、またはセットアップ／構成操作に応答して、1つまたは複数のコードセクション、API、および／またはサービスを外部モジュールに自動的にアップロードまたは移植してもよい。別の例として、情報機器デバイスは、ユーザ要求に応答して(例えば、要求に応じて)またはユーザ開始イベントに応答して、そのような情報をアップロードまたは移植してもよい。そのような例において、アップロードプロセスは、情報機器デバイス上の同じまたは同等のアップロードされた機能を除去することまたは他の方法で無効にすることを含んでもよい。同等のアップロードされた機能の除去／無効化から解放されたコンピューティングリソースは、次いで、情報機器デバイスによって再割り当てされてもよい。他の態様において、ハードウェアおよび情報は、外部モジュール上にプレインストールされてもよい。例えば、外部モジュールは、情報機器デバイスによって受信されたコンテンツおよび動作を処理するために、データ(例えば、コードセクション、API、および／またはサービス)および／または構成要素(例えば、RAM、フラッシュ、GPU、ドライバなど)を用いて事前構成されてもよい。そのような例において、事前構成されたデータ／構成要素は、外部モジュールが新しいおよび／または追加の機能を情報機器デバイスに提供することを可能にしてもよい。
【００１３】
態様において、1つまたは複数の動作が情報機器デバイスによって受信されると、情報機器デバイスは、動作を情報機器デバイスによって実行されるべきコマンドおよび外部モジュールによって実行されるべきコマンドに構文解析してもよい。情報機器デバイスは、情報機器デバイスによって実行されるべきコマンドを実行し、外部モジュールによって実行されるべきコマンドを外部モジュールに送信してもよい。外部モジュールは、次いで、受信したコマンドを処理および／または実行してもよい。いくつかの例において、受信したコマンドを処理することは、データおよび／または1つもしくは複数の要求を情報機器デバイスに送信することを含んでもよい。他の例において、外部モジュールは、受信したコマンドを処理した結果として、情報機器デバイスと明らかな通信を行わなくてもよい。受信したコマンドを実行した(または受信したコマンドに関連する動作を実行した)後、外部モジュールは、コンテンツを表示デバイスにレンダリングしてもよい(またはレンダリングさせてもよい)。例において、コンテンツをレンダリングすることは、新しいコンテンツを生成すること、ベースビデオストリーム上に新しいコンテンツをオーバレイすること、ベースビデオストリームを修正することなどを含んでもよい。
【００１４】
したがって、本開示は、限定はしないが、他の例の中でも、新しいまたは追加の処理機能を機器デバイスに提供するために外部モジュールを使用すること、情報機器デバイスの機能を外部モジュールにオフロードすること、コンテンツ消費システムの技術的能力を強化すること、情報機器デバイスにおけるコンピューティングリソースを動的に解放および再割り当てすること、プラグアンドプレイメカニズムを使用して機能をオフロードすること、リモートプロシージャコール(RPC)を介して外部処理すること、外部処理モジュールとのリモートコントロール相互作用を可能にすることによって情報機器のリモートコントロール機能を強化すること、情報機器デバイスにおける計算負担を低減すること、ならびに、本開示の例を利用してアプリケーション／サービスに関する効率と品質とを改善することを含む、複数の技術的利益を提供する。
【００１５】
図1は、本明細書で説明するように新しいおよび／またはオフロードされた処理機能を備える外部モジュールを実装するための例示的なシステムの概要を示す。提示される例示的なシステム100は、外部モジュールを使用して新しいおよび／またはオフロードされた処理機能を実装するための統一した全体を形成するように相互作用する相互依存構成要素の組合せである。システムの構成要素は、ハードウェア構成要素、または、システムのハードウェア構成要素上に実装および／もしくはそれによって実行されるソフトウェアであってもよい。例において、システム100は、ハードウェア構成要素(例えば、オペレーティングシステム(OS)を実行する／動作させるために使用される)、およびハードウェア上で動作するソフトウェア構成要素(例えば、アプリケーション、アプリケーションプログラミングインターフェース(API)、モジュール、仮想マシン、ランタイムライブラリなど)のいずれかを含んでもよい。一例において、例示的なシステム100は、ソフトウェア構成要素が動作するための環境を提供し、動作するために設定された制約に従い、システム100のリソースまたは設備を利用してもよく、構成要素は、1つまたは複数の処理デバイスにおいて動作するソフトウェア(例えば、アプリケーション、プログラム、モジュールなど)であってもよい。例えば、ソフトウェア(例えば、アプリケーション、動作命令、モジュールなど)は、コンピュータ、モバイルデバイス(例えば、スマートフォン／電話、タブレット、ラップトップ、携帯情報端末(PDA)など)、および／または任意の他の電子デバイスなどの処理デバイス上で動作してもよい。処理デバイス動作環境の例として、図4に示す例示的な動作環境を参照されたい。他の例において、本明細書で開示されるシステムの構成要素は、複数のデバイスにわたって分散されてもよい。例えば、入力がクライアントデバイス上で入力されてもよく、情報が1つまたは複数のサーバデバイスなどのネットワーク内の他のデバイスから処理またはアクセスされてもよい。
【００１６】
一例として、システム100は、機器デバイス102と、外部モジュール104と、表示デバイス106と、ネットワーク108と、サーバデバイス110Aおよび110Bを備えるネットワークデバイス環境とを備える。当業者は、システム100などのシステムの規模が、変化してもよく、図1に記載したものよりも多いまたは少ない構成要素を含んでもよいことを理解するであろう。いくつかの例において、システム100の構成要素間のインターフェースは、例えば、システム100の構成要素が同じデバイスまたはネットワーク(例えば、ピアツーピアネットワーク、LANなど)内にある場合、ローカルで生じてもよい。他の例において、システム100の構成要素間のインターフェースは、例えば、システム100の構成要素が分散型ネットワークの1つまたは複数のデバイスにわたって分散される場合がある場合、リモートで生じてもよい。
【００１７】
機器デバイス102は、1つまたは複数のコンテンツプロバイダからコンテンツを受信して処理するように構成されてもよい。態様において、機器デバイス102は、受信したコンテンツを処理し、外部(または内部)デバイスとインターフェースし、イベントおよび動作要求を実行するためのハードウェア、ソフトウェア、データおよび／または命令を備えてもよい。本明細書で使用されるコンテンツとは、コンテンツプロバイダまたはコンテンツストアからブロードキャストされるかまたは他の方法で送信された1つまたは複数のデータ伝送ストリームを指す場合がある。例えば、機器デバイス102は、ネットワーク108を介してサーバデバイス110Aおよび110Bとインターフェースするように構成されてもよい。サーバデバイス110Aおよび110Bは、機器デバイス102にコンテンツを提供するように構成されたコンテンツプロバイダであってもよい。コンテンツプロバイダの例は、ケーブルまたは衛星ヘッドエンド、ウェブサーバ、ドキュメントリポジトリ、クライアントデバイス、地上波放送局、ワイヤレス送信デバイスなどを含んでもよい。少なくとも1つの態様において、機器デバイス102によって受信されたコンテンツを処理することは、コンテンツを解凍すること、コンテンツを復調すること、復調されたコンテンツをデスクランブルすること、デスクランブルされたコンテンツを復号すること、および／または、受信したコンテンツに特徴もしくは追加コンテンツを追加することを含んでもよい。
【００１８】
機器デバイス102は、処理機能を1つまたは複数の外部モジュールまたはデバイスにオフロードするようにさらに構成されてもよい。態様において、機器デバイス102は、外部モジュール104などの外部モジュールへの情報のアップロード(例えば、オフロード)を容易にするための命令のセットを備えてもよい。命令のセットは、外部モジュールとの間で情報を送信するためのコマンドと、関心のあるイベント、アクション、および動作を検出する手段を確立するためのコマンドとを備えてもよい。そのような情報は、アプリケーション、サービス、1つまたは複数のコードセクション、API、イベントハンドラデータ／オブジェクトなどを含んでもよい。例において、アップロード命令のセットは、1つまたは複数の基準が満たされたとき、定期的なスケジュールに従って、ユーザ要求に応答して、など、自動的に呼び出されてもよい。少なくとも1つの例において、機器デバイス102の情報が外部モジュールにアップロードされた後、機器デバイス102は、アップロードされた情報のローカルバージョンを除去または他の方法で無効にしてもよい。機器デバイス102は、次いで、除去／無効化された情報に以前に割り当てられたコンピューティングリソース(例えば、CPU、メモリなど)を解放および／または再割り当てしてもよい。
【００１９】
外部モジュール104は、様々なタイプの処理機能を実行するように構成されてもよい。態様において、外部モジュール104は、様々な処理タスクおよびアクションを実行するためのハードウェアおよび／またはソフトウェアを備えてもよい。そのようなタスクおよびアクションは、新しい処理機能を機器デバイス102に追加すること、機器デバイス102の既存の処理機能を変更すること、または機器デバイス102によってオフロードされた機能を処理することに関連してもよい。例において、外部モジュール104は、複数のデバイスに選択的に結合されるように動作可能であってもよい。例えば、外部モジュール104は、1つまたは複数の接続(例えば、USB接続、HDMI(登録商標)接続など)を介して機器デバイス102、表示デバイス106、および／または追加のデバイスに(個別にまたは同時に)結合される。外部モジュール104は、外部モジュール104に接続された(またはアクセスを有する)1つまたは複数のデバイスのための付随動作を実行するように動作可能であってもよい。例えば、外部モジュール104に結合されると、機器デバイス102は、情報(例えば、コードセクション、API、サービスなど)または1つもしくは複数の処理ユーティリティを外部モジュール104にオフロードまたは送信してもよい。代替的には、情報または処理ユーティリティの少なくとも一部は、外部モジュール104にプレインストールされてもよい。
【００２０】
態様において、外部モジュール104によって受信された(またはそれにプレインストールされた)情報および／または処理ユーティリティは、外部モジュール104が新しいまたは追加の能力および／または処理機能を機器デバイス102に提供することを可能にしてもよい。例えば、外部モジュール104は、ハードウェア、ソフトウェア、コンテンツ、および／またはコンテンツ配信技法への技術的進歩をサポートするために、新しい機能を備えるかまたは有効にしてもよい。例えば、外部モジュール104は、HEVCなどの、新しいまたは機器デバイス102によって現在サポートされていない符号化／復号化方式の処理を可能にしてもよい。代替的には、外部モジュール104は、HDMI(登録商標)2.0またはHDCP2.2などの、機器デバイス102によって現在サポートされていないA/V接続規格の処理を可能にしてもよい。特定の復号方式およびA/V接続規格が本明細書において列挙されているが、当業者は、様々な代替物が使用されてもよいことを理解するであろう。別の例として、外部モジュール104は、機器デバイス102の能力を拡張してもよい。例えば、外部モジュール104は、追加の計算リソース、メモリリソース、記憶空間、Wi-Fiサービス、出力ポート、オーディオおよび／またはビデオコーデックなどへのアクセスを機器デバイス102に提供してもよい。例において、外部モジュール104によって機器デバイス102に提供される追加のリソースは、外部モジュール104上でローカルに、または外部モジュール104を介してリモートでアクセス可能であってもよい。
【００２１】
代替態様において、外部モジュール104上の情報および／または処理ユーティリティは、外部モジュール104が機器デバイス102によって(完全にまたは部分的に)以前に実行された処理機能を提供することを可能にしてもよい。一例として、外部モジュール104は、機器デバイス102からオフロードされた、または機器デバイス102上で実質的に複製されたユーザインターフェース(UI)コードを備えてもよい。UIコードは、ベースビデオストリームなどのデータストリームを処理するおよび／または表示デバイス上にレンダリングするためのフレームワークおよび機能を備えてもよい。外部モジュール104が機器デバイス102に接続されると、外部モジュール104は、機器デバイス102に送信された(または機器デバイス102によって生成された)UIを基にしたイベントを検出または傍受するためのプロセスを実装してもよい。外部モジュール104は、外部モジュール104のUIコードの少なくとも一部を使用してUIを基にしたイベントを処理してもよい。UIを基にしたイベントを処理することは、例えば、受信したコンテンツを解凍し解凍したコンテンツをHDMI(登録商標)ポートに出力すること、受信したコンテンツに透かしを入れること、受信したコンテンツをトランススクランブリング(transscrambling)すること、受信したコンテンツをトランスコーディングすることなどを含んでもよい。UIを基にしたイベントを処理した後、外部モジュール104は、処理されたコンテンツを1つまたは複数の取り付けられたデバイスに送信してもよい。例えば、外部モジュール104は、復号されたコンテツを表示デバイス106に出力してもよく、それによって、機器デバイス102からUI処理に関連するリソース負担を緩和する。別の例として、外部モジュール104は、処理されたコンテンツを、表示デバイス106、携帯電話、仮想現実ヘッドセット、ウェアラブルデバイスなどの並列に接続された複数のデバイスに出力してもよい。
【００２２】
態様において、外部モジュール104は、1つまたは複数の接続されたデバイスに付随するものとしてシームレスに実装されてもよい。例えば、外部モジュール104は、機器デバイス102と表示デバイス106とを備えるシステムにおいて実装されてもよい。外部モジュール104の実装形態は、かなり単純な「プラグアンドプレイ」プロセスまたは同様の簡単な接続プロセスであってもよい。例えば、外部モジュール104は、外部モジュール104の1つまたは複数のコネクタを機器デバイス102および表示デバイス106に単純に接続することによって完全に実装および構成されてもよい。実装プロセスの単純さは、実装プロセス中に外部モジュール供給者が技術支援(例えば、トラックロール、サービスコールなど)を提供する必要を不要にする場合がある。そのような例において、外部モジュール104は、機器デバイスのタイプに依存しないおよび／または表示デバイスのタイプに依存しない場合がある。結果として、外部モジュール104に接続されたデバイスは、外部モジュール104を交換する必要なしに、アップグレードまたは交換されてもよい。別の例として、外部モジュール104は、追加のハードウェアまたは周辺デバイスの使用またはインストールを必要とすることなく、実装されてもよい。例えば、外部モジュール104は、前から存在する制御システム(例えば、機器デバイスのリモートコントロール、表示デバイスのリモートコントロール、ユニバーサルリモートコントロールなど)を使用して、操作または相互作用されるように構成されてもよい。代替的には、外部モジュール104は、外部モジュールに付属する制御システムを使用して、構成または相互作用されてもよい。少なくとも1つの例において、そのような制御システムは、機器デバイス102の制御システムと交換可能に(またはその代わりに)使用される。加えて、外部モジュール104は、機器デバイス102および／または表示デバイス106上に記憶された、以前に取得されたコンテンツおよびイベントと互換性があってもよい。例えば、外部モジュール104を実装することは、ユーザがユーザのDVRコンテンツ、イベント、およびタイマを維持することを可能にしてもよい。態様において、外部モジュール104は、外部電源を使用して、または1つもしくは複数の結合されたデバイスによって
給電されてもよい。
【００２３】
機器デバイス102は、受信した動作要求を処理するようにさらに構成されてもよい。態様において、動作イベント(リモートコントロール入力を受信すること、タイマ起動、指定されたコンテンツを受信することなど)を検出すると、機器デバイス102は、1つもしくは複数のイベントおよび／またはイベントタイプを識別するために、検出されたイベントを構文解析してもよい。機器デバイス102は、次いで、イベント／イベントタイプが機器デバイス102または外部モジュール104のいずれによって処理されるべきかを決定するために、イベント／イベントタイプを評価してもよい。少なくとも1つの例において、イベント／イベントタイプの評価は、外部関数呼び出しのセットを識別することと、イベント／イベントタイプが外部関数呼び出しを使用して処理され得るかどうかを判定することとを含んでもよい。例えば、機器デバイス102によって以前に実行された機能に対応するUIコードが、機器デバイス102によって外部モジュール104にオフロードされてもよい。代替的には、機器デバイス102に対する新しいまたは変更された機能を表すUIコードが、外部モジュール104上にプレインストールされてもよい。いずれのシナリオでも、外部モジュール104上のUIコードにアクセスするための外部関数呼び出しのセットが、機器デバイス102においてアクセス可能であってもよい(またはアクセス可能にされてもよい)。イベントのセットが機器デバイス102によって受信および／または処理されると、機器デバイス102は、イベントを、UIを基にしたイベントおよびUIを基にしていないイベントに構文解析してもよい。機器デバイス102は、UIを基にしていないイベントをローカルで処理し、UIを基にしたイベントを外部モジュール104に送信してもよい。外部モジュール104は、次いで、上記で説明したようにUIを基にしたイベントを処理してもよい。
【００２４】
図2は、本明細書で説明するように、新しいおよび／またはオフロードされた処理機能を備える外部モジュールを実装するための例示的な入力処理ユニット200の概要を示す。入力処理ユニット200によって実装される処理機能技法は、図1に記載した処理機能技法、コンテンツ、および入力を備えてもよい。代替例において、(プロセッサおよび／またはメモリなどの1つまたは複数の構成要素を備える)分散型システムが、システム200において説明した処理を実行してもよい。さらに、入力処理ユニット200は、図1の説明において記載されているような表示構成要素を備えてもよい。
【００２５】
図2に関して、入力処理ユニット200は、コンピューティングリソース202と、コードモジュール203と、処理エンジン204と、接続206とを備えてもよい。コンピューティングリソース202は、様々なタスクを達成するためのハードウェア、ソフトウェア、データおよび／または命令を備えてもよい。例えば、コンピューティングリソース202は、1つまたは複数のプロセッサ(例えば、CPU、GPUなど)、メモリ(例えば、フラッシュメモリ、DRAM、SRAMなど)、デバイスドライバ、ワイヤレスアダプタ、データ記憶ユニットなどを備えてもよい。コンピューティングリソース202は、コンピューティングリソース202が接続されたデバイスによってアクセス可能および／または使用可能であるように実装されてもよい。例えば、入力処理ユニット200に接続されたSTBなどの機器デバイスは、受信したコンテンツを処理するために入力処理ユニット200の1つまたは複数のプロセッサを利用することができてもよい。例において、コンピューティングリソース202は、コードモジュール203などのコンピューティングコードベースまたはコードモジュールによって構成されてもよい(またはそれらを受け取るように構成されてもよい)。
【００２６】
コードモジュール203は、1つまたは複数の取り付けられた(もしくは取り付け可能な)デバイスに関連する様々な機能を実行する(もしくは実行させる)ためのコードセグメント、コーデック、コンテンツ、イベント、および／または動作を備えてもよい。例えば、コードモジュール203は、機器デバイス102または表示デバイス106などの1つまたは複数のデバイスによって受信(もしくは生成)されたUIを基にしたコマンドを処理するためのユーザインターフェース(UI)コードによって構成されてもよい。別の例として、コードモジュール203は、1つまたは複数の符号化／復号化コーデックによって構成されてもよい。さらに別の例として、コードモジュール203は、コンピューティングリソース202のワイヤレスアダプタを使用してデータおよびコンテンツのワイヤレス送信を可能にするように構成されてもよい。いくつかの態様において、コードモジュール203(またはその一部)は、入力処理ユニット200上にプレインストールされてもよい。例えば、コードモジュール203は、入力処理ユニット200の供給者によって、または入力処理ユニット200に取り付け可能なデバイスの供給者によって入力処理ユニット200上にインストールされてもよい。他の態様において、入力処理ユニット200は、接続206などの1つまたは複数の通信接続を介して、機器デバイス102などの取り付けられたデバイスからコードモジュール203(またはその一部)を受信してもよい。接続206は、本明細書で説明するデバイス間でデータを送信するための任意の適切な通信接続(例えば、USB接続、ミニUSB接続、HDMI(登録商標)接続、DVI接続など)であってもよい。例えば、接続206は、入力処理ユニット200が1つもしくは複数の機器デバイスおよび／または1つもしくは複数の表示デバイスに同時に接続されることを可能にしてもよい。
【００２７】
態様において、入力処理ユニット200へのコードモジュール203の送信(オフロード)は、1つまたは複数の基準の満足に応答してトリガされてもよい。例えば、コードモジュール203は、入力処理ユニット200と機器デバイスとの間の接続を検出することに応答して、入力処理ユニット200に自動的に送信されてもよい。代替的には、コードモジュール203は、手動の要求または特定のユーザ対話に応答して入力処理ユニット200に送信されてもよい。上記の特定の例を続けると、入力処理ユニット200は、UIコードを含む送信された(オフロードされた)コードモジュールを受信して実装するように構成されてもよい。そのような例において、機器デバイスからUIコードを送信することは、機器デバイスがUIコードに関連するUI機能を除去または無効にすることを可能にしてもよい。結果として、機器デバイスは、以前にUI機能に割り当てられていたコンピューティングリソースを再利用および再割り当てすることが可能であってもよい。
【００２８】
処理エンジン204は、イベントを処理し、コードモジュール203に関連する機能を実行するように構成されてもよい。態様において、処理エンジン204は、(例えば、機器デバイスによって以前に実装されていない)新しい処理機能および／または機器デバイスから入力処理ユニット200にオフロードされた機能に関連するデータ(例えば、コンテンツ、イベント、および／または動作)を処理するために、コンピューティングリソース202を利用してもよい。例において、そのようなデータは、入力処理ユニット200によって直接受信および処理されてもよい。受信したデータを処理することは、処理機能に関連する(または処理機能を使用してサービス可能な)イベントを識別することを含んでもよい。例えば、処理エンジン204は、1つまたは複数のUIを基にしたイベントを受信するかまたはそれへのアクセスを有してもよい。処理エンジン204は、UIを基にしたイベントが任意のアクション／タスクを呼び出すかまたはそれらに関連するかを判定するために、UIを基にしたイベントを評価してもよい。代替的には、データは、機器デバイスによって受信されてもよい。機器デバイスは、入力処理ユニット200の処理機能に関連するイベントと、処理機能に関連しないイベントとを識別するために、データを構文解析してもよい。機器デバイスは、次いで、入力処理ユニット200の処理機能に関連しないイベントをローカルに処理し、入力処理ユニット200の処理機能に関連するイベントを入力処理ユニット200に送信してもよい。
【００２９】
処理エンジン204は、1つまたは複数の処理されたイベントに関連する1つまたは複数のアクション／タスクを実行するようにさらに構成されてもよい。例えば、上記の特定の例を続けると、処理機能エンジン204によって受信された／アクセス可能なUIを基にしたイベントは、リモートコントロール、キーボード、マイクロフォンなどの外部または内部入力手段から発生してもよい。UIを基にしたイベントを受信／識別することに応答して、処理エンジン204は、例えば、取り付けられたデバイスを介して入力処理ユニット200にアクセス可能にされたベースビデオストリーム上に1つまたは複数のUI要素(例えば、メニュー、ウィンドウ、カーソルなど)をオーバレイしてもよい。別の例として、UIを基にしたイベントを受信／識別することに応答して、処理エンジン204は、コードモジュール203によって実装された復号コーデックを使用して復号プロセスを実行してもよい。例えば、処理エンジン204は、ベースビデオストリーム上の4Kコンテンツを復号するためにコードモジュール203のHEVCコーデックを使用してもよい。態様において、処理エンジン204は、コードモジュール203を使用して処理されたイベントに関連するコンテンツを、接続206を使用して表示デバイスまたは構成要素に送信してもよい。例において、表示デバイスまたは構成要素は、表示デバイス106のように入力処理ユニット200の外部にあってもよく、または入力処理ユニット200の内部にあってもよい。
【００３０】
図3は、本明細書で説明するように、外部モジュールを使用して新しいおよび／またはオフロードされた処理機能を実行する例示的な方法を示す。態様において、方法300〜500は、図1のシステム100などの例示的なシステムによって実行されてもよい。例において、方法300〜500は、動作、プログラム、または命令を記憶および実行するように構成された少なくとも1つのプロセッサを備えるデバイス上で実行されてもよい。しかしながら、方法300〜500は、そのような例に限定されない。方法300〜500は、外部モジュールを使用して新しいおよび／またはオフロードされた処理機能を実装するためのアプリケーションまたはサービスによって実行されてもよい。少なくとも1つの例において、方法300〜500は、ウェブサービス／分散型ネットワークサービス(例えば、クラウドサービス)などの、分散型ネットワークの1つまたは複数の構成要素によって実行されてもよい(例えば、コンピュータ実装動作)。
【００３１】
例示的な方法300は、処理機能が外部モジュール上にインストールされるか、または外部モジュールにオフロードされ得る動作302において始まる。態様において、機器デバイス102などの1つまたは複数のデバイスの様々な処理機能が、外部モジュール104などの外部モジュール上にインストールされるか、または外部モジュールにオフロードされてもよい。例えば、可搬型ドングルデバイスは、1つもしくは複数のセットトップボックス(STB)および／または1つもしくは複数の表示デバイスの機能および特徴の少なくとも一部を実行するための処理ハードウェアおよび／またはソフトウェアを備えてもよい。ドングルデバイスは、例えば、1つまたは複数のオーディオおよび／またはビデオ符号化／復号化ユーティリティ、オーディオ／ビデオ接続規格、ワイヤレス通信などの使用を容易にするユーザインターフェース(UI)コードを備えてもよい。例において、そのようなインストールおよび／またはオフロードは、いくつかの理由のために利用されてもよい。一例として、処理機能のインストール／オフロードは、リソースが制約されたデバイスに対するコンピューティングリソースの影響を軽減または相殺するために使用されてもよい。例えば、時間とともに、STBは、処理リソース、メモリ、および／またはストレージを使い果たす場合がある。そのようなSTBは、STBにおける計算負荷を相殺するために、本明細書で説明するドングルデバイスのコンピューティングハードウェアおよびリソースを利用してもよい。代替的には、STBは、処理タスクのセットをドングルデバイスにオフロードしてもよい。別の例として、処理機能のインストール／オフロードは、機器デバイスに利用不可能な、または(例えば、コスト、技術的実行可能性、展開可能性などのため)機器デバイスにおいて実装するのが非現実的な機能を提供するために使用されてもよい。例えば、STBは、非4Kコンテンツを復調、デスクランブル、および／または復号することが可能であってもよい。4Kコンテンツを処理するためにSTBを交換またはアップグレードすることは、費用効果的ではないか、または実際的ではない場合があるので、ドングルデバイスが実装されてもよい。ドングルデバイスは、4Kコンテンツ(および他のタイプのコンテンツ)を復号するための機能およびユーティリティ(例
えば、オーディオおよび／またはビデオコーデック、新しい／追加の接続ポートなど)を備えてもよい。結果として、ドングルデバイスは、STBにおける特定の処理(例えば、復号)を無効にしてもよく(または無効にさせてもよく)、無効にされた処理自体を実行してもよい。別の例において、STBは、ワイヤレス通信を備えなくてもよい。Wi-Fiおよび／またはBluetooth機能を備えるドングルデバイスが実装されてもよい。STBは、次いで、ワイヤレス対話に係るために、ドングルデバイスを使用してもよい。
【００３２】
いくつかの態様において、処理機能は、1つまたは複数の基準に従って外部モジュールにオフロードされてもよい。例えば、機器デバイスと外部モジュールとの間の最初の接続を検出すると、セットアップ／構成動作が呼び出されてもよい。セットアップ／構成動作は、様々な詳細(例えば、ハードウェア構成、ソフトウェア構成、技術的能力、ユーザ選好など)を決定することを含んでもよい。決定された詳細に少なくとも部分的に基づいて、セットアップ／構成動作は、機器デバイスの様々な処理機能の外部モジュールへのオフロードを容易にしてもよい。セットアップ／構成動作は、オフロードされた処理機能を機器デバイスからさらに無効化または除去してもよい。他の態様において、処理機能は、外部モジュール上にプレインストールされてもよい。例えば、外部モジュールは、処理機能の特定のセットを実行するために、必要なハードウェアおよびソフトウェアを備えてもよい。機器デバイスと外部モジュールとの間の接続を検出すると、セットアップ／構成動作が呼び出されてもよい。セットアップ／構成動作は、機器デバイスにおける処理機能のセットを無効にしてもよく、ならびに／または、オフロードされた処理機能に関連するコンテンツ、イベント、および／もしくは動作を外部モジュールに送信するように機器デバイスを構成してもよい。そのような例において、セットアップ／構成動作は、コンピューティングリソース202などのリソースのセットを利用または再割り当てするように機器デバイスをさらに再構成してもよい。
【００３３】
動作304において、1つまたは複数のイベントが受信および分類されてもよい。態様において、外部モジュール上にプレインストールされた、または外部モジュールにオフロードされた機能に関連するデータ(例えば、コンテンツ、イベント、および／または動作)が受信されてもよい。例において、データは、1つもしくは複数の外部または内部入力手段を介して、機器デバイスによってまたは外部モジュールによって受信されてもよい。例えば、機器デバイスとペアにされたリモートコントロールが、超高解像度(4K)コンテンツをストリーミングするためにコマンドを発行してもよい。コマンドは、機器デバイスによって受信されてもよく、および／または、機器デバイスに結合された外部モジュールによって受信されてもよい。態様において、受信されたイベントは、受信デバイスまたはモジュールによって分類されてもよい。イベントを分類することは、イベントを1つまたは複数のグループに構文解析すること、イベントおよびグループに対応するコマンドと操作とを識別すること、ならびに／または識別されたコマンド／動作をグループに関連付けることを含んでもよい。受信デバイス(またはそれに関連する決定構成要素)は、次いで、識別されたコマンドおよび動作が外部モジュールの処理機能に関連付けられているかどうかを判定してもよい。特定の例として、STBにおいて新しい／新しく出現するビデオ解像度(例えば、4K、8Kなど)を処理する機能は、UI処理機能を備えるドングルデバイス内に実装されてもよい。そのようなコンテンツを処理するように構成されていないSTBにおいてそのような解像度を有するコンテンツを処理およびレンダリングすることを可能にするために、ドングルデバイスは、STBに接続されてもよい。ドングルデバイスは、STBによって受信されたUIを基にしたイベントおよび／またはイベントタイプの通知をドングルデバイスに送信するようにSTBを構成してもよい。例えば、ドングルデバイスは、UIを基にしたイベントを処理するために1つまたは複数のイベントハンドラを構成および／またはインストールしてもよい。その後、STBは、コンテンツおよび／またはイベントのセットを生成または受信してもよい。1つまたは複数のイベントを検出または受信すると、STBは、イベントを、UIを基にしたイベントとUIを基にし
ていないイベントとに構文解析してもよい。STBは、UIを基にしたイベントを、復調イベント、デスクランブルイベント、および復号イベントなどのサブカテゴリにさらに構文解析してもよい。少なくとも1つの例において、サブカテゴリは、STB(または別個の接続されたデバイス)によって処理されるべきイベントと、ドングルデバイスによって処理されるべきイベントとに対応してもよい。
【００３４】
動作306において、受信されたイベントが処理されてもよい。態様において、機器デバイスによって受信されたコンテンツおよびイベントは、イベントを処理するための機能を備える1つまたは複数のデバイス／モジュールに送信されてもよく、および／またはそれらのデバイス／モジュールによって処理されてもよい。例えば、上記の特定の例を続けると、STBによって実行されるべきUIを基にしていないイベントまたはUIを基にしたイベントのサブカテゴリは、STBによって処理および／または実行されてもよい。STBは、コンテンツとUIを基にしたイベントと(または、ドングルデバイスによって処理されるべきUIを基にしたイベントのみ)をドングルデバイスに送信してもよい。ドングルデバイスは、次いで、受信したUIを基にしたイベントを処理してもよい。UIを基にしたイベントを処理することは、例えば、STBによってアクセス可能にされたベースビデオストリームなどのコンテンツ上に1つまたは複数のUI要素(例えば、メニュー、ウィンドウ、カーソルなど)をオーバレイすることを含んでもよい。代替的には、UIを基にしたイベントを処理することは、STBにアクセス可能な4Kコンテンツ(および非4Kコンテンツ)を復号することを含んでもよい。態様において、ドングルデバイスは、受信したイベントに関連付けられたコンテンツおよび／またはUI要素を、表示デバイス106などの表示デバイスに提供してもよい。UI機能に特定の参照がなされてきたが、当業者は、機器デバイスまたは別のコンピューティングデバイスの他の機能が、代替的にまたは加えて、外部モジュール上にプレインストールされてもよく、および／または外部モジュールにオフロードされてもよいことを理解するであろう。
【００３５】
図4は、本明細書で説明するように、ドングルデバイスを使用してオフロードされた機能を処理する例示的な方法を示す。例示的な方法400は、外部モジュール104などのドングルデバイスが機器デバイス102などのセットトップボックス(STB)からコンテンツを受信し得る動作402において始まる。態様において、ドングルデバイスは、STBおよび表示デバイス106などの1つまたは複数の表示デバイスに接続されてもよい。STBは、1つまたは複数のコンテンツプロバイダからコンテンツを受信してもよい。コンテンツは、例えば、1つもしくは複数のブロードキャストされたデータ送信、または1つもしくは複数のデータストア内のデータを含んでもよい。STBは、受信したコンテンツの少なくとも一部をドングルデバイスに渡してもよい。
【００３６】
動作404において、UIを基にしたイベントが受信されてもよい。態様において、ドングルデバイスに接続されたSTBは、受信されたコンテンツに関連するコマンドのセットを受信してもよい。コマンドのセットは、UIサブシステム、タイマサブシステム、コンテンツ取得サブシステムなどの様々な機能サブシステムに関する多数のイベントを含んでもよい。STBは、受信したイベントを1つまたは複数のカテゴリに構文解析してもよい。例えば、STBは、UIを基にしたイベントに関するカテゴリと、すべての他のイベントタイプ(例えば、UIを基にしていないイベント)に関するカテゴリとを作成してもよい。STBは、UIを基にしていないイベントを含むカテゴリにおけるイベントをローカルで処理し、UIを基にしたイベントをドングルデバイスに渡してもよい。
【００３７】
動作406において、UIを基にしたイベントが実行されてもよい。態様において、ドングルデバイスは、STBから受信されたコンテンツに対応するUIを基にしたイベントを受信してもよい。ドングルデバイスは、受信したイベントを処理および実行するためのハードウェアおよびソフトウェアを備えてもよい。例えば、ドングルデバイスは、コードモジュール203などの、処理ユニットと1つまたは複数のコードセットとを備えてもよい。コードセットは、ドングルデバイスがSTBのためのUI機能の少なくとも一部を処理することを可能にしてもよい。例において、ドングルデバイスによって受信されたUIを基にしたイベントは、ドングルデバイスによって提供されるUI処理機能に対応してもよい。STBからUIを基にしたイベントを受信すると、ドングルデバイスは、UIを基にしたイベントを処理および／または検証してもよい。UIを基にしたイベントを処理することは、ドングルデバイスがUIを基にしたイベントを実行するために必要な機能を備えるかどうかを判定すること、ドングルデバイスがUIを基にしたイベントに関連する機能を実行することを許可されているかどうかを判定すること、および／または、受信したUIを基にしたイベントを記録することを含んでもよい。態様において、受信されたUIを基にしたイベント(処理されたか未処理であるかにかかわらず)は、ドングルデバイスによって実行されてもよい。例において、UIを基にしたイベントを実行することは、新しいまたは追加のコンテンツを生成すること、代替のコンテンツを選択すること、1つまたは複数のUI要素を選択／生成することなどを行ってもよい。UIを基にしたイベントを実行することによって生成または選択されたコンテンツおよび／または特徴は、次いで、修正されたコンテンツを作成するために、STBから受信したコンテンツに適用されてもよい。例えば、1つまたは複数のUI要素(例えば、メニュー、ウィンドウ、カーソルなど)がSTBから受信されたコンテンツ上にオーバレイされてもよく、STBから受信されたコンテンツの一部が除去または隠されてもよく、STBから受信されたコンテンツがサイズ変更または再方向付けされてもよい、などである。UIを基にしたイベントおよび機能に特定の参照がなされてきたが、当業者は、本明細書において提示される教示が他
のタイプのイベントおよび機能に適用されてもよいことを理解するであろう。
【００３８】
動作408において、修正されたコンテンツが表示デバイスに出力されてもよい。態様において、デバイスドングルによって受信および／または修正されたコンテンツが、デバイスドングルに接続された1つまたは複数のデバイスに出力されてもよい。例えば、デバイスドングルは、デバイスドングルが1つまたは複数の表示デバイスに(直列または並列に)接続されることを可能にする複数の出力ポート／接続を伴って構成されてもよい。少なくとも1つの態様において、デバイスドングルは、デバイスタイプ／能力、または選好／構成のセットに基づいて、表示デバイスに異なるコンテンツを出力してもよい。例えば、デバイスドングルは、4Kコンテンツをレンダリングすることができるテレビに4Kのコンテンツを出力してもよく、1080pをレンダリングすることができる(しかし、4Kコンテンツをレンダリングすることができない)モニタに1080pのコンテンツを出力してもよい。
【００３９】
図5は、本明細書で説明するように、コマンドをセグメント化し、ドングルデバイスにオフロードする例示的な方法を示す。例示的な方法500は、機器デバイス102などのセットトップボックス(STB)がコンテンツを受信し得る動作502において始まる。態様において、STBは、STBに存在しない機能を備えるドングルデバイスに接続されてもよい。例えば、STBは、4Kコンテンツを復号するために必要なUI機能を伴って、またはワイヤレス通信を可能にするために必要なネットワーク機能を伴って構成されない場合がある。STBのこれらの技術的な欠点に対処するために、ドングルデバイスがSTBに接続されてもよい。ドングルデバイスは、STBのUIコードのすべて(またはそのサブセット)を伴って構成されてもよく、1つまたは複数のワイヤレス構成要素を備えてもよい。UIコードは、ドングルデバイスが4Kコンテンツを復号することを可能にしてもよい。態様において、STBは、1つもしくは複数のコンテンツプロバイダまたはコンテンツストアからコンテンツを受信してもよく、または、STBは、コンテンツを生成してもよい。コンテンツは、例えば、1つまたは複数のブロードキャストされたデータ送信、1つまたは複数のデータストア内のデータ、ローカルに生成されたものなどを含んでもよい。
【００４０】
動作504において、コマンドのセットが受信されてもよい。態様において、STBは、受信されたコンテンツに関連するコマンドのセットを受信してもよい。コマンドのセットは、リモートコントロールデバイス、キーボード、マイクロフォンなどの外部または内部入力手段から発生してもよい。コマンドのセットは、例えば、トリックモードコマンド(再生、早送り、巻き戻しなど)、タイマイベント、コンテンツ取得要求(例えば、チャンネルアップ、チャンネルダウン、視聴DVRメニューなど)、電子番組ガイド(EPG)ナビゲーション指示などを含んでもよい。例において、コマンドのセットは、コンテンツがSTBおよび／またはドングルデバイスに接続された表示デバイス上に表示されるときに受信されてもよい。コマンドのセットは、コンテンツと対話するか、またはコンテンツを修正することを意図してもよい。
【００４１】
動作506において、コマンドのセットは、1つまたは複数のグループに構文解析されてもよい。態様において、コマンドのセットは、UIサブシステム、タイマサブシステム、コンテンツ取得サブシステムなどの、STBの様々な機能サブシステムに関する多数のイベントを含んでもよい。STBは、受信したイベントを1つまたは複数のカテゴリに構文解析してもよい。例えば、STBは、UIを基にしたイベントに関するカテゴリと、すべての他のイベントタイプ(例えば、UIを基にしていないイベント)に関するカテゴリとを作成してもよい。加えて、STBは、UIを基にしたイベントに関する1つまたは複数のサブカテゴリを作成してもよい。例えば、STBは、UIを基にしたイベントを、少なくとも復調イベント、デスクランブルイベント、および復号イベントに分割してもよい。
【００４２】
動作508において、1つまたは複数のコマンドのグループが実行されてもよい。態様において、STBによって作成されたコマンドの様々なカテゴリは、コマンドに関連付けられたイベントを処理するように構成されたデバイスに対応してもよい。例えば、UIを基にしていないイベントのカテゴリは、STBの機能に対応してもよく、UIを基にしたイベントのカテゴリは、ドングルデバイスの機能に対応してもよい。したがって、STBは、UIを基にしていないイベントを処理および実行してもよい。
【００４３】
動作510において、1つまたは複数コマンドのグループがドングルデバイスに送信されてもよい。態様において、STBに存在しない機能に関連するイベントは、処理のためにドングルデバイスに送信されてもよい。例えば、STBは、少なくともいくつかのUIを基にした機能を実行する機能がないので、対応するUIイベントは、ドングルデバイスに送信されてもよい。ドングルデバイスは、次いで、受信したUIイベントを処理および／または実行してもよい。UIを基にしたイベントおよび機能に特定の参照がなされてきたが、当業者は、本明細書において提示される教示が他のタイプのイベントおよび機能に適用されてもよいことを理解するであろう。
【００４４】
図6は、本実施形態のうちの1つまたは複数が実装され得る適切な動作環境600の一例を示す。これは、適切な動作環境のほんの一例であり、使用または機能の範囲に関するいかなる限定も示唆することを意図していない。使用に適する可能性がある他のよく知られたコンピューティングシステム、環境、および／または構成は、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサを基にしたシステム、スマートフォンなどのプログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散型コンピューティング環境などを含む。
【００４５】
その最も基本的な構成において、動作環境600は、典型的には、少なくとも1つの処理ユニット602とメモリ604とを含む。コンピューティングデバイスの正確な構成およびタイプに応じて、(とりわけ、評判情報、カテゴリ情報、キャッシュされたエントリ、本明細書で開示される方法を実行するための命令などを記憶する)メモリ604は、揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはその2つのなんらかの組合せであってもよい。この最も基本的な構成は、破線606によって図6において示されている。さらに、環境600は、限定はしないが、磁気もしくは光ディスクまたはテープを含む記憶デバイス(着脱可能608および／または着脱可能でない610)も含んでもよい。同様に、環境600は、キーボード、マウス、ペン、音声入力などの入力デバイス614、および／またはディスプレイ、スピーカ、プリンタなどの出力デバイス616も有してもよい。また、環境内には、LAN、WAN、ポイントツーポイントなどの1つまたは複数の通信接続612も含まれてもよい。
【００４６】
動作環境600は、典型的には、少なくともなんらかの形態のコンピュータ可読媒体を含む。コンピュータ可読媒体は、処理ユニット602または動作環境を備える他のデバイスによってアクセス可能な任意の利用可能な媒体であり得る。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とを含んでもよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のための任意の方法および技術において実装される、揮発性および不揮発性の、着脱可能および着脱可能でない媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、所望の情報を記憶するために使用され得る任意の他の有形の媒体を含む。コンピュータ記憶媒体は、通信媒体を含まない。
【００４７】
通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の伝送機構などの変調データ信号において具体化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、情報を信号内に符号化するようなそのような方法において設定または変更されたその特性のうちの1つまたは複数を有する信号を意味する。例として、限定としてではなく、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに、音響、RF、赤外線、および他のワイヤレス媒体などのワイヤレス媒体を含む。上記のいずれかの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００４８】
動作環境600は、1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境内で動作する単一のコンピュータであってもよい。リモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードであってもよく、典型的には、上記で説明した要素の多くまたはすべて、および言及されていない他の要素を含む。論理接続は、利用可能な通信媒体によってサポートされている任意の方法を含んでもよい。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
【００４９】
本開示の態様は、例えば、本開示の態様による方法、システム、およびコンピュータプログラム製品のブロック図および／または動作図を参照して上記で説明されている。ブロック図に記載されている機能／行為は、任意のフローチャートに示す順序から外れた順序で生じてもよい。例えば、連続して示されている2つのブロックは、実際には実質的に同時に実行されてもよく、または、ブロックは、時には、関係する機能／行為に応じて逆の順序で実行されてもよい。
【００５０】
本出願において提供される1つまたは複数の態様の説明および例示は、いかなる方法においても特許請求される本開示の範囲を限定または制限することを意図していない。本出願において提供される態様、例、および詳細は、所有権を伝達し、他の人が特許請求される開示の最良の形態を作成および使用することを可能にするのに十分であると考えられる。特許請求される開示は、本出願において提供されるいかなる態様、例、または詳細にも限定されると解釈されるべきではない。組み合わせてまたは別々に図示または説明されているかどうかにかかわらず、様々な特徴(構造的と方法論的の両方)は、特定の特徴のセットを有する実施形態を生成するために選択的に含まれるか、または省略されることが意図される。本出願の説明および例示が提供されていると、当業者は、特許請求される開示のより広い範囲から逸脱しない、本出願において具体化された一般的な発明概念のより広い態様の要旨内に入る変形態様、変更態様、および代替態様を想定し得る。
【符号の説明】
【００５１】
100  システム
102  機器デバイス
104  外部モジュール
106  表示デバイス
108  ネットワーク
110A  サーバデバイス
110B  サーバデバイス
200  入力処理ユニット、システム
202  コンピューティングリソース
203  コードモジュール
204  処理エンジン
206  接続
600  動作環境、環境
602  処理ユニット
604  メモリ
608  着脱可能
610  着脱可能でない
612  通信接続
614  入力デバイス
616  出力デバイス
【図１】
2021501528.tif 000003
【図２】
2021501528.tif 000004
【図３】
2021501528.tif 000005
【図４】
2021501528.tif 000006
【図５】
2021501528.tif 000007
【図６】
2021501528.tif 000008
【国際調査報告】
2021501528.tif 000009
2021501528.tif 000010
2021501528.tif 000011