現代のコンピューティングデバイスは、種々の異なるコンテンツ源からのメディアコンテンツにアクセスすることができる。各コンテンツ源で、ユーザが消費することを意図する、消費を始めた、または以前に消費したコンテンツで、コンテンツのライブラリ(たとえば、メディア選択のセット)をユーザが構築することができる。コンテンツ源の多くは、同じまたは同様のメディアコンテンツを提供することができる。ユーザがコンテンツ源の間で切り換えると、ユーザの個人用のコンテンツのライブラリは、新しいコンテンツ源から利用不可能になる場合がある。ユーザは、個人用ライブラリ(たとえば、注目リスト)をなしで済ませるか、または新しいコンテンツ源のため個人用ライブラリを手作業で再構築する必要がある場合がある。
個人用ライブラリを再構築するのは、手作業で時間がかかるプロセスとなる場合がある。というのは、伝統的なエクスポート、同期、または複製技法は、元のコンテンツ源によってサポートされない場合があるためである。ユーザは、個人用ライブラリを手作業で埋めることによって、新しいコンテンツ源のため個人用ライブラリを更新することができる。これは、元のコンテンツ源と新しいコンテンツ源の両方のグラフィカルインターフェースをユーザがアクセスすることを含む場合がある。たとえば、ユーザは、第1のデバイス(たとえば、DVR)上で元のコンテンツ源のグラフィカルインターフェースを見ることができ、各メディアアイテムについて、対応するメディアアイテムを探すため新しいコンテンツ源をユーザが検索することができる。ユーザは、異なる表示デバイス(たとえば、元のためのテレビジョンスクリーンと新しいコンテンツのためのモバイルデバイススクリーン)を使用して異なるコンテンツ源のグラフィカルインターフェースにアクセスすることができ、または、両方が同じ表示デバイスを共有することができるが、これは、はるかに難しい再構築プロセスを行う場合がある。
本開示の態様および実装形態は、第1のコンテンツ源のメディアアイテムのセットを第2のコンテンツ源へとインポートするための技術を対象とする。メディアアイテムのセットは、1つまたは複数のメディアアイテムを参照するデータ構造であってよく、個人用コンテンツライブラリ、注目リスト、再生リスト、読取りリスト、お気に入りリスト、他のセット、またはそれらの組合せと同じまたは同様であってよい。セット中のメディアアイテムは、ユーザが消費する、消費し始めた、または以前に消費したコンテンツに対応することができる。本技術は、コンピューティングデバイスが、第1のコンテンツ源のグラフィカルインターフェースの画像をキャプチャすることを可能にすることができる。グラフィカルインターフェースは、同じコンピューティングデバイスまたは異なるコンピューティングデバイス(たとえば、DVR)が提供することができ、人間が読むことができる形式で、1つまたは複数のメディアアイテムのセットの詳細を表示することができる。コンピューティングデバイスは、グラフィカルインターフェースの画像を解析して、1つまたは複数の認識動作を使用して画像からデータを抽出することができる。抽出したデータは、テキストデータ、グラフィカルデータ、レイアウトデータ、他のデータ、またはそれらの組合せを含むことができる。抽出したデータは、コンピューティングデバイスが、どのメディアアイテムが第1のコンテンツ源のセットにあるかを識別すること、およびこれらのメディアアイテムを第2の発信源についてのセットに加えることを可能にすることができる。本開示の態様および実装形態は、異なるデータ構造間でどのようにデータを移行させるかに関連する問題に対処する。第1のコンテンツ源のグラフィカルインターフェースの画像コンテンツをキャプチャすること、およびグラフィカルインターフェースの画像コンテンツからデータを抽出することによって、識別したデータを、第2のコンテンツ源に自動的に加えることができる。したがって、第1のコンテンツ源と第2のコンテンツ源が互いの間でデータの直接転送を備えていない場合でさえ、一方のコンテンツ源から他方へデータが効果的にコピーされる。
グラフィカルインターフェースの複雑さは、コンテンツ源に依存して変わる場合があり、各コンテンツ源は、それ自体の特別設計したグラフィカルインターフェースを提供する場合がある。グラフィカルインターフェースは、メディアアイテムの詳細を編成するまたは配置することが意図される種々の特徴を含むことができる。メディアコンテンツが編成される様式によって、メディアアイテムの単なるサブセット、または特定の時点においてグラフィカルインターフェースによって表示される特定のメディアアイテムについての詳細のサブセットがもたらされる場合がある。たとえば、グラフィカルインターフェースは、グラフィカルインターフェースによって表示されるコンテンツを変える種々の動きをサポートすることができ、スクロール(たとえば、水平スクロールおよび垂直スクロール)、ドロップダウン展開(たとえば、アイテムが選択されるとき表示される詳細)、他の特徴、またはそれらの組合せを含むことができる。ユーザがより効果的にコンテンツをキャプチャするのを可能にするため、ユーザは、ユーザがコンテンツを通してナビゲートする(たとえば、スクロールする、ページ操作する、展開する、動かす)ときに、グラフィカルインターフェースのビデオをキャプチャすることができる。次いでコンピューティングデバイスは、ビデオを解析し、グラフィカルインターフェースの動きによって見えるようになったコンテンツを単一の画像がキャプチャするように、複数の画像(たとえば、ビデオフレーム)を一緒にスティッチすることができる。
本明細書に記載されるシステムおよび方法は、コンピューティングデバイスが、ユーザによって消費されるメディアコンテンツをより容易に識別することを可能にすることによって、コンテンツ共有プラットフォームの技術分野を拡張する技術を含む。詳細には、開示される技術は、コンピューティングデバイスが、第1のコンテンツ源(たとえば、ケーブルTV)から第2の発信源(たとえば、インターネットTV)にユーザの個人用コンテンツライブラリを移行させることを可能にすることができる。伝統的なデータ移行技法では、コンピューティングデバイスがインポートできる形式で生データをエクスポートする第1の発信源を含むことが多い。いくつかのコンテンツ源は、ユーザが別のコンテンツ源(たとえば、競合会社)に移行させるのをやめさせようとして、エクスポートの特徴を避ける場合があり、または、独占所有権もしくは厄介なエクスポートメカニズムを含む場合がある。本明細書で開示される技術は、コンテンツ源によって提供されるグラフィカルインターフェース、ならびに、データをエクスポートする特徴がないにもかかわらず、第1のコンテンツ源の個人用コンテンツライブラリが第2のコンテンツ源へとインポートするのを可能にする、画像キャプチャおよび抽出動作を利用することができる。
図1は、本開示の一実装形態による例示のシステムアーキテクチャ100を図示する。システムアーキテクチャ100は、1つまたは複数のコンテンツ源110A〜110Z、1つまたは複数のコンピューティングデバイス120A〜120B、ライブラリサービス130、およびネットワーク140を含む。
コンテンツ源110A〜110Zは、メディアコンテンツの任意の発信源であってよく、1つまたは複数のメディアアイテム112の形式でメディアコンテンツを記憶および提供することができる。メディアアイテム112は、コンピューティングデバイスに提供され、コンピューティングデバイスによって1つまたは複数のユーザに人間が解釈できる形式で提示することができる形式でメディアコンテンツを含むことができる。メディアアイテム112は、ビデオコンテンツ、音声コンテンツ、写真コンテンツ、テキストコンテンツ、実行可能コンテンツ、他のコンテンツ、またはそれらの組合せを含むことができる。ビデオコンテンツは、映画、テレビジョンショー、スポーツイベント、音楽ビデオ、ニュースクリップ、レビュー、広告、ユーザ作成ビデオ、他のコンテンツ、またはそれらの組合せを含むことができる。音声コンテンツは、音声クリップ、歌、アルバム、ポッドキャスト、オーディオブック、他のコンテンツ、またはそれらの組合せを含むことができる。テキストコンテンツは、符号、文字、言葉、他のコンテンツ、またはそれらの組合せを含むことができる。テキストコンテンツは、他のコンテンツ(たとえば、グラフィカルコンテンツ)を伴うことができ、デジタルブック、新聞、雑誌、または他の形式として配置することができる。実行可能コンテンツは、コンピューティングデバイスによってアクセス(たとえば、ロード)され実行されてユーザにメディアコンテンツを提示することができる1つまたは複数のアプリケーション(たとえば、スマートフォンアプリ、ウェブアプリ)を含むことができる。
図1に示される例では、コンテンツ源110A〜110Zは、ケーブルサービス(たとえば、110A)、コンテンツストリーミングサービス(たとえば、110B)、コンテンツ共有プラットフォーム(たとえば、110C)、メディアストア(たとえば、110Z)、他のコンテンツサービス、またはそれらの組合せなどといった、1つまたは複数のコンテンツサービスを含むことができる。ケーブルサービスは、放送またはオンデマンドメディアコンテンツを提供する地上波サービスまたは衛星サービスを含むことができ、Comcast(登録商標)、Verizon FIOS(登録商標)、Xfinity(登録商標)、Dish Network(登録商標)、他のサービスプロバイダ、またはそれらの組合せを含むことができる。コンテンツストリーミングサービスは、ネットワーク接続(たとえば、インターネット接続)を介してコンテンツをストリーミングすることによってメディアアイテムを提供することができ、Netflix(登録商標)、Hulu(登録商標)、Sling(登録商標)、Prime Video(登録商標)、HBO Go(登録商標)、Showtime Anytime(登録商標)、他のストリーミングサービス、またはそれらの組合せを含むことができる。コンテンツ共有プラットフォームは、ユーザ作成コンテンツを共有するためのコンテンツホスティングサービスを含むことができ、ビデオ共有サービス(YouTube(登録商標)、Vimeo(登録商標))、またはソーシャルネットワーク(Facebook(登録商標)、Google+(登録商標)、Myspace(登録商標))、他のサービス、またはそれらの組合せを含むことができる。メディアストアは、メディアアイテムを購入またはレンタルするのを可能にするサービスを含むことができ、Apple iTunes(登録商標)、Google Play(登録商標)、Amazon Prime(登録商標)、他のサービス、またはそれらの組合せを含むことができる。コンテンツ源110A〜110Zは、メディアアイテム112をコンピューティングデバイス120Aおよび/またはコンピューティングデバイス120Bに提供することができる。
コンピューティングデバイス120Aは、メディアアイテム112のうちの1つを受け取って、メディアアイテムをユーザへ提示するために提供することが可能な任意のコンピューティングデバイスであってよい。コンピューティングデバイス120Aは、表示デバイス(たとえば、一体型表示デバイス)を含むことができ、またはコンテンツを別個の表示デバイス(たとえば、接続される表示デバイス)に送信することができる。表示デバイスは、スクリーンまたは投影メカニズムを含むことができ、テレビジョンスクリーン、モニタ、プロジェクタスクリーン、モバイルディスプレイ、ヘッドアップディスプレイ、ヘッドマウントディスプレイ、ホログラフィックディスプレイ、他の表示技術、またはそれらの組合せを使用してコンテンツを表示することができる。コンピューティングデバイス120Aのいくつかの例には、テレビジョン(たとえば、伝統的なテレビジョンまたはスマートテレビジョン)、セットトップボックス(たとえば、DVR、ケーブルボックス、Apple TV(登録商標)、Roku(登録商標)、FireTV(登録商標))、マイクロコンソール(たとえば、Playstation(登録商標))、パーソナルコンピュータ(たとえば、デスクトップコンピュータ、ワークステーション)、モバイルデバイス(たとえば、モバイルフォン、タブレット、ラップトップ、スマートウォッチ、スマートグラス、スマートコンタクト)、他のデバイス、またはそれらの組合せが含まれ得る。コンピューティングデバイス120Aは、グラフィカルインターフェース構成要素121を使用して表示するためのメディアアイテムのセットを提供することができる。
グラフィカルインターフェース構成要素121は、コンピューティングデバイス120Aが1人または複数のユーザにグラフィカルインターフェースを提供するのを可能にすることができる。一例では、コンピューティングデバイス120Aは、コンピューティングデバイス120Aのスクリーン上にグラフィカルインターフェースを表示させることによって、グラフィカルインターフェースを提供することができる。別の例では、グラフィカルインターフェースを提供することが、グラフィカルインターフェースを表示させることなく別のデバイスに信号を送信することを含むことができる。これは、コンピューティングデバイス120Aにスクリーンがない(たとえば、ディスプレイなし、スクリーンなし、ヘッドレス)ため、またはコンピューティングデバイス120Aが異なるスクリーンに信号を送ること(たとえば、ストリーミング、より大きいスクリーンへのキャストまたは投入)が可能であるために生じる場合がある。グラフィカルインターフェースは、ユーザがコンテンツ源110のうちの1つまたは複数のメディアコンテンツと相互作用することを可能にする任意のユーザインターフェースであってよい。グラフィカルインターフェースは、特定のコンテンツ源110もしくはコンピューティングデバイス120Aの特定のタイプに固有であってよく、または複数の異なるコンテンツ源110A〜110Zもしくはコンピューティングデバイス120Aに一般的であってよい。グラフィカルインターフェースは、ユーザが1つまたは複数のコンテンツ源110A〜110Zのコンテンツをナビゲートするのを可能にすることができ、メディアアイテムセット123Aの詳細を表示することができる。
メディアアイテムセット123Aは、コンテンツ源の特定のユーザに関連するメディアアイテムのセットを記憶するデータ構造であってよい。ユーザは、プロフィール、アカウント、または特定の個人、家族、グループ、企業体、他の事業体、もしくはそれらの組合せに対応する識別子によって表すことができる。一例では、メディアアイテムセット123Aは、1人または複数の人物に対応することができ、個人用コンテンツライブラリと呼ぶことができる。メディアアイテムのセットは、空のセットであってよく、ユーザのために選択された1つまたは複数のメディアアイテムを含んでよい。メディアアイテムセット123Aは、セットの中にメディアアイテムの詳細を記憶することができ、メディアアイテムは、ユーザ、コンテンツ源、第3者の発信源、またはそれらの組合せによって選択することができる。選択は、ユーザ入力、消費コンテンツもしくは未消費コンテンツ、以前に選択したコンテンツもしくは未選択コンテンツ、ピアデータ、履歴データ、プロフィールデータ、アカウントデータ、他のデータ、またはそれらの組合せに基づいてよい。一例では、メディアアイテムセット123Aは、メディアアイテムのコンテンツ(たとえば、ビデオコンテンツ)を記憶することなく、メディアアイテムの詳細(たとえば、タイトル、カバーアート、消費状態)を含むことができる。コンテンツは、その後、放送、ダウンロード、ストリーミング、またはそれらの組合せによって受け取られることができる。別の例では、メディアアイテムセット123Aは、メディアアイテムの詳細およびメディアアイテムのコンテンツ(たとえば、ビデオコンテンツ)を含むことができる。
コンピューティングデバイス120Bは、コンピューティングデバイス120Aと同じまたは同様であってよく、メディアアイテムセット123Aの1つまたは複数のメディアアイテムをインポートするため、コンピューティングデバイス120Aによって提供されるグラフィカルインターフェースにアクセスすることができる。インポートは、図1中の矢印で印を付けたメディアセットのインポート125として表される。メディアセットのインポート125は、メディアアイテムセット123Aのコンテンツをメディアアイテムセット123Bに反復、複製、同期、移行、コピー、または追加する1つまたは複数の動作を含むことができる。メディアアイテムセット123Bは、メディアアイテムセット123Aと同じまたは同様であってよいが、異なるコンテンツ源に対応してよい。メディアアイテムセット123Bは、メディアセットのインポート125のときに空であってよく、または1つまたは複数のメディアアイテムを含んでよい。
コンピューティングデバイス120Bは、メディアセットのインポート125を実施するために1つまたは複数の実行可能構成要素を含むことができ、構成要素は、画像キャプチャ構成要素122、データ抽出構成要素124、およびメディア識別構成要素126を含むことができる。画像キャプチャ構成要素122は、コンピューティングデバイス120Bによって提供されるグラフィカルインターフェースの画像コンテンツ127をコンピューティングデバイス120Bがキャプチャするのを可能にすることができる。画像コンテンツのキャプチャは、コンピューティングデバイス120Bが、グラフィカルインターフェースの1つまたは複数の画像を記録する画像キャプチャ動作(たとえば、カメラの写真またはビデオ)を開始することを含むことができる。データ抽出構成要素124は、コンピューティングデバイス120Bが、画像コンテンツ127を解析し、メディアアイテムセット123のうちの1つまたは複数のメディアアイテムの詳細に関係するデータを抽出するのを可能にすることができる。メディア識別構成要素126は、コンピューティングデバイスが、抽出したデータを解析し、異なるコンテンツ源から1つまたは複数の対応するメディアアイテムを識別するのを可能にすることができる。メディア識別構成要素126は、ライブラリサービス130、コンテンツ源110A〜110C(発信源または宛先のコンテンツ源)、またはそれらの組合せのメディアデータに基づいて、メディアアイテムを識別することができる。
コンピューティングデバイス120A〜120Bの機能は、単一のコンピューティングデバイスによって実施することができる。単一のコンピューティングデバイスは、グラフィカルインターフェース構成要素121および画像キャプチャ構成要素122を含むことができる。この状態では、画像キャプチャ構成要素122は、スクリーンショット(たとえば、写真)、スクリーンキャスト(たとえば、ビデオ)、他の動作、またはそれらの組合せを含む画像キャプチャ動作を使用して、グラフィカルインターフェースの画像コンテンツをキャプチャすることができる。構成要素122、124、および126およびそれらの機能のさらなる記載は、図2を参照して下でより詳細に記載される。他の例では、コンピューティングデバイス120A〜120Bに関して議論される1つまたは複数の特徴は、コンテンツ源110Cなどといったコンテンツサービスの一部を含む場合も含まない場合もある、サーバデバイス、クライアントデバイス、他のデバイス、またはそれらの組合せによって、やはりまたは代わりに実施することができる。
コンテンツ源110Cは、1つもしくは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど)、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、ならびに/または、ユーザにメディアアイテムへのアクセスを可能にする、および/もしくはユーザにメディアアイテムを提供するために使用できるハードウェア構成要素を含むことができる、コンテンツ共有プラットフォームであってよい。たとえば、コンテンツ共有プラットフォームは、ユーザが、共有メディアアイテムを消費、アップロード、検索、「いいね」の承認、嫌悪、および/またはコメントすることを可能にすることができる。コンテンツ共有プラットフォームは、ユーザにメディアアイテム112へのアクセスを可能にするために使用できる、ウェブサイト(たとえばウェブアプリケーション)またはアプリケーション(たとえば、スマートフォンアプリケーション)およびバックエンドソフトウェアを含むこともできる。コンテンツ共有プラットフォームは、好適なアプリケーションプログラミングインターフェースを介し1つまたは複数のサーバを通して他のシステムまたはコンピューティングデバイスに提供されるサービスとしてアクセスすることができ、したがって、ウェブサイト中での使用に限定されない。
コンテンツ源110Cおよび他のコンテンツ源A〜Zのいずれかは、複数のチャンネル(たとえば、チャンネルAからZ)を含む場合がある。チャンネルは、共通発信源から入手可能なデータコンテンツまたは共通のトピック、テーマ、または内容を有するデータコンテンツであってよい。データコンテンツは、ユーザによって選択されたデジタルコンテンツ、ユーザによって入手可能にされたデジタルコンテンツ、ユーザによってアップロードされたデジタルコンテンツ、コンテンツプロバイダによって選択されたデジタルコンテンツ、放送業者によって選択されたデジタルコンテンツなどであってよい。たとえば、チャンネルXがビデオYおよびZを含んでよい。チャンネルは、チャンネルに行為を行うことができるユーザであるオーナと関連付けることができる。オーナがデジタルコンテンツをチャンネルで利用可能にすること、オーナが別のチャンネルに関連付けられたデジタルコンテンツを選択(たとえば、リンク)すること、オーナが別のチャンネルに関連付けられたデジタルコンテンツにコメントすることなどといったオーナの行為に基づいて、異なる活動をチャンネルに関連付けることができる。チャンネルに関連付けられた活動は、チャンネルについての活動供給へと集めることができる。チャンネルのオーナ以外のユーザは、興味のある1つまたは複数のチャンネルに加入することができる。「加入(subscribing)」の概念とは、「リンク」、「フォロー」、「友達承認」などと呼ばれてもよい。「ユーザ」は、単一の個人として表すことができる。しかし、本開示の他の実装形態は、「ユーザ」が、ユーザのセットおよび/または自動発信源によって制御される実体であることを包含する。たとえば、ソーシャルネットワーク中のコミュニティとして連合した個々のユーザのセットは、ユーザと考えることができる。別の例では、自動消費者は、コンテンツ共有プラットフォームのトピックチャンネルなどといった、自動化した摂取パイプラインであってよい。
ここで議論されたシステムがユーザについての個人情報を集める、または個人情報を利用する場合がある状況で、コンテンツ共有プラットフォームがユーザ情報(たとえば、ユーザの交流関係、社会的行為もしくは活動、職業、ユーザの好み、ユーザの現在位置についての情報)を集めるかを制御する、またはよりユーザに関連する可能性があるコンテンツサーバからコンテンツを受け取るか、および/もしくはどのように受け取るかを制御する機会をユーザに提供することができる。加えて、個人を識別可能な情報が削除されるように、データが記憶または使用される前に、ある種のデータを1つまたは複数の方法で処理することができる。たとえば、ユーザについて個人を識別可能な情報を決定することができないように個人の識別情報を取り扱うことができる、またはユーザの詳細な位置を決定できないように、位置情報が得られるユーザの地理的位置を(市、郵便番号、または州レベルに)一般化することができる。こうして、ユーザについてどのように情報が集められ、コンテンツ共有プラットフォームによって使用されるかについて、ユーザが制御することができる。
ネットワーク140には、公衆ネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN))、有線ネットワーク(たとえば、イーサネットネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワークまたはWi-Fiネットワーク)、セルラネットワーク(たとえば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、および/またはそれらの組合せが含まれ得る。一実装形態では、データストア240は、メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータを記憶することが可能な別のタイプの構成要素もしくはデバイスであってよい。データストア240は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)に広がることができる複数の記憶装置構成要素(たとえば、複数のドライブまたは複数のデータベース)をやはり含むことができる。
図2は、本技術の一実装形態による、コンテンツ源のグラフィカルインターフェースを光学的に解析することによって、メディアアイテムのセットをインポートするための例示的なコンピューティングデバイス120Bを図示する。コンピューティングデバイス120Bは、ユーザ入力を受け取ることに応じて、または自動検出(たとえば、ユーザ入力なし)に応じて第1のコンテンツ源(たとえば、元の発信源)からのインポートを開始することができ、第2のコンテンツ源(たとえば、宛先または目的の発信源)に関連するセットにメディアを加えるのは有利となる。図2に表示される構成要素およびモジュールは、1つまたは複数のアプリケーション、オペレーティングシステムの特徴、またはそれらの組合せによって実装することができる。上で議論したように、コンピューティングデバイス120Bは、画像キャプチャ構成要素122、データ抽出構成要素124、メディア識別構成要素126、およびデータストア240を含むことができる。ある程度の構成要素またはモジュールは、一般性を失うことなく含むことができる。たとえば、構成要素のうちの2つ以上を単一の構成要素に組み合わせることができ、または構成要素の特徴を2つ以上の構成要素へと分割することができる。一実装形態では、構成要素またはモジュールの特徴のうちの1つまたは複数が異なるコンピューティングデバイス(たとえば、異なるクライアントデバイス、異なるサーバデバイス、またはそれらの組合せ)に存在してよい。
画像キャプチャ構成要素122は、コンピューティングデバイス120Bがコンテンツ源のグラフィカルインターフェースの画像コンテンツ127をキャプチャするのを可能にすることができる。これは、コンピューティングデバイス120Bが、グラフィカルインターフェースの1つまたは複数の画像を記録する画像キャプチャ動作(たとえば、カメラ画像またはビデオ)を開始することを含むことができる。一例では、画像キャプチャ構成要素122は、開始モジュール212、カメラモジュール214A、スクリーンキャプチャモジュール214B、およびコンテンツスティッチモジュール216を含むことができる。
開始モジュール212は、画像キャプチャ動作を作動させることによってコンテンツ源からのメディアアイテムのセットのインポートを開始することができる。画像キャプチャ動作は、コンピューティングデバイス120Bのグラフィカル制御要素を作動させるユーザ入力に応じて行うことができる。一例では、グラフィカル制御要素は、アプリケーションが既存の発信源からメディアアイテムをインポートできるとユーザに示す、アプリケーション(たとえば、スマートフォンアプリ)のボタン制御要素であってよい。発信源は、デジタルビデオ録画機(DVR)、コンテンツストリーミングサービス、もしくはメディアストア、または他のコンテンツ源のうちの少なくとも1つからの既存のメディアアイテムセットであってよい。セットは、コンテンツ源に関連するアプリケーションを使用してアクセスすることができるユーザの個人用コンテンツライブラリに基づくことができる。開始モジュール212によって作動された画像キャプチャ動作は、カメラモジュール214A、スクリーンキャプチャモジュール214B、またはそれらの組合せを使用することができる。
カメラモジュール214Aは、コンピューティングデバイス120Bが、カメラなどといった光学的画像キャプチャデバイスを使用して、グラフィカルインターフェースの画像コンテンツをキャプチャすることを可能にすることができる。カメラモジュール214Aは、画像コンテンツ(たとえば、画像)を検出するためにカメラの1つまたは複数の光センサを使用することができ、画像コンテンツを1つまたは複数の記憶デバイスに記録することができる。カメラは、コンピューティングデバイス内に組み込むことができ、またはコンピューティングデバイスとは別個で、コンピューティングデバイス120Bと通信可能に結合してよい。カメラは、1つまたは複数の写真(たとえば、静止画)、動画(たとえば、ビデオフレーム)、またはそれらの組合せをキャプチャすることが可能であってよい。一例では、コンピューティングデバイス120Bは、一体型カメラを有するモバイルデバイス(たとえば、モバイルフォン)であってよく、宛先のコンテンツ源(たとえば、新しいコンテンツ源)に関連するアプリケーションを実行することができる。アプリケーションは、カメラモジュール214Aを使用して別のコンピューティングデバイスによって提供されたグラフィカルインターフェースの光学的画像(たとえば、カメラの写真またはビデオ)をキャプチャするため画像キャプチャ動作を開始することができる。他のコンピューティングデバイスは、ユーザに表示するために表示デバイス(たとえば、テレビジョンスクリーン、コンピュータスクリーン)へのグラフィカルインターフェースを提供するDVR機能性を有するケーブルボックスであってよい。
スクリーンキャプチャモジュール214Bは、コンピューティングデバイス120Bが、スクリーンキャプチャ動作を使用してグラフィカルインターフェースの画像コンテンツをキャプチャするのを可能にすることができる。スクリーンキャプチャ動作は、カメラモジュール214Aに関して上で議論したように、別のコンピューティングデバイスによって提供されるグラフィカルインターフェースをキャプチャするのとは反対に、コンピューティングデバイス120Bによって提供されるグラフィカルインターフェースをコンピューティングデバイス120Bがキャプチャするのを可能にすることができる。スクリーンキャプチャ動作は、スクリーン出力がコンピューティングデバイス120Bに関連する表示デバイスに提供されて表示される前、表示される間、または表示された後に、コンピューティングデバイス120Bのスクリーン出力を検出および記録することができる。スクリーンキャプチャ動作は、1つまたは複数の写真(たとえば、静止画、スクリーンショット、スクリーングラブ)をキャプチャすることができる、または動画(たとえば、ビデオフレーム、スクリーンキャスト)をキャプチャすることができる。一例では、コンピューティングデバイス120Bが複数のアプリケーション(たとえば、スマートフォンアプリ)を実行することができ、第1のアプリケーションを、宛先のコンテンツ源(たとえば、コンテンツ共有プラットフォーム)と関連付けることができ、第2のアプリケーションを、インポートされているコンテンツ源と関連付けることができる。第1のアプリケーション(たとえば、YouTube(登録商標)アプリ)が、画像キャプチャ動作を開始して、第2のアプリケーション(たとえば、DVR、Netflix(登録商標)、HBO Go(登録商標)、Showtime Anytime(登録商標)、Prime Video(登録商標)のためのアプリ)のグラフィカルインターフェースのスクリーンショットまたはスクリーンキャストをキャプチャすることができる。
コンテンツスティッチモジュール216は、コンピューティングデバイス120Aが複数の画像からの画像コンテンツを混合するのを可能にすることができる。コンテンツスティッチモジュール216は、物体認識、画像登録、位置合わせ、および混合を実施するための1つまたは複数の光学的認識動作を含むことができる。物体認識は、グラフィカルインターフェースを表示する表示デバイス(たとえば、TVディスプレイ)に関連する画像の部分を識別することを含むことができる。画像コンテンツをスティッチするとき、グラフィカルインターフェースの画像コンテンツは、画像コンテンツの他の部分のコンテンツ(たとえば、TVスタンド、居間の壁)を混合することなく、混合することができる。画像登録は、グラフィカルインターフェースの部分に関連する、区別可能な画像の特徴(たとえば、固有の特徴)を識別することを含むことができる。画像位置合わせは、複数の画像の区別可能な画像の特徴を探して、異なる画像から一致する特徴を見つけ出すことができる。これらの一致する特徴を使用して、異なる画像を位置合わせすることができる。画像混合は、第1の画像の画像コンテンツを第2の画像の画像コンテンツと混合することを含むことができ、動き補償およびコンテンツ重複解決を含むことができる。
画像コンテンツをスティッチするのは有利である。というのは、スティッチは、複数の画像からより少ない画像(たとえば、単一の画像)へとグラフィカルインターフェースの画像コンテンツを統合して後続の画像解析(たとえば、光学的認識)の速度または品質を向上させることができるためである。別個の画像から画像コンテンツをスティッチするのは、グラフィカルインターフェースの異なる部分に表示されるメディア詳細に脈絡をつけること、または脈絡をはっきりさせることができる。たとえば、グラフィカルインターフェースは、グラフィカル構造(たとえば、リスト、表、またはグリッド)に複数のメディアアイテムを表示することができ、特定の行のメディアアイテムは、特定のメディアアイテムのすべての詳細を露わにするため、グラフィカルインターフェースの動き(たとえば、水平の動き)を必要とする場合がある。第1の画像は、グラフィカルインターフェースが左に(第1の欄を見るために)スクロールされると、グラフィカルインターフェースをキャプチャすることができ、複数のメディアアイテムの詳細(たとえば、タイトルまたは他の識別情報の詳細)の第1の部分を表示することができる。第2の画像は、グラフィカルインターフェースが右に(最後の欄を見るために)スクロールされると、グラフィカルインターフェースをキャプチャすることができ、複数のメディアアイテムの詳細(たとえば、注目状態または他の状態の詳細)の第2の部分を表示することができる。脈絡をつけるためにコンテンツを位置合わせ(たとえば、スティッチ)することなく第1の画像と第2の画像を別個に解析することによって、第2の画像の間違った状態の詳細に関連付けられる第1の画像の識別情報の詳細がもたらされる可能性がある。これは、第1の画像中のエントリ(たとえば、最上部のエントリ)が第2の画像中の対応するエントリ(たとえば、最上部のエントリ)と位置合わせしないように、ユーザが水平および垂直にスクロールする場合に、なお一層明らかとなることができる。画像スティッチを実施することによって、画像コンテンツは、すべてのメディアデータに脈絡をつけさせることができる(たとえば、単一の画像表示にすることができる)。
データ抽出構成要素124は、コンピューティングデバイス120Bが、画像コンテンツ127を解析し、グラフィカルインターフェースによって表示されるメディアアイテムのセットの1つまたは複数のメディアアイテムに対応する詳細を抽出するのを可能にすることができる。一例では、データ抽出構成要素124は、光学的認識モジュール222、インターフェース分類モジュール224、およびメディア詳細検出モジュール226を含むことができる。
光学的認識モジュール222は、コンピューティングデバイス120Bが、画像コンテンツ127を解析し、グラフィカルインターフェースにリスト化されるメディアアイテムを識別するためデータを抽出するのを可能にすることができる。光学的認識モジュール222は、グラフィカルインターフェースの画像の特徴244を認識するため、画像コンテンツに1つまたは複数の光学的認識動作を実施することができる。画像の特徴244には、テキストデータ、グラフィックデータ、レイアウトデータ、他のデータまたはそれらの組合せが含まれ得る。テキストデータは、符号、文字、数、言葉、他のデータ、またはそれらの組合せを含むことができる。グラフィックデータは、カバーアート、アルバムアート、サムネイル画像、特定のビデオフレーム、他のグラフィック、またはそれらの組合せなどといった、メディアグラフィックを含むことができる。レイアウトデータは、パネル、ウィンドウ、メニュー、タブ、行、列、ドロップダウンリスト、展開スタブ、ボタン、他の表示の特徴、またはそれらの組合せなどといった、グラフィカルインターフェースの態様を識別することができる。
一例では、グラフィカルインターフェースは、多面スクロールを含むことができ、グラフィカルインターフェースの一部が異なる速度で動き(たとえば、スクロールし)、次いで、グラフィカルインターフェースの別の部分が動く。たとえば、メディアアイテムグラフィック(たとえば、カバーアート)の下の領域は、タイトルまたはメディアアイテムについての他の詳細を表示するスクロールデータを含むことができる。スクロールデータは、ディスプレイの領域より長いテキスト列を含むことができ、移動によって、テキスト列全体を持続時間(たとえば、スクロール周期)を越えて表示するのを可能にすることができる。光学的認識モジュール222は、多面スクロールを検出することができ、スクロールされるコンテンツを認識するために複数の画像の組合せを解析することができる。これらの特徴は、(たとえば、画像コンテンツ127、メディアの特徴244、またはメディアの詳細246として)データストアに記憶することができ、またはキャプチャされた画像コンテンツもしくはスティッチされた画像コンテンツに埋め込んで、別の構成要素またはモジュールによってアクセスすることができる。
インターフェース分類モジュール224は、コンピューティングデバイス120Bが、グラフィカルインターフェースを分類し、グラフィカルインターフェースの起源を検出するのを可能にすることができる。グラフィカルインターフェースは、特定のコンテンツ源、特定のコンピューティングデバイス、またはそれらの組合せから生じることができる。一例では、グラフィカルインターフェースは、特定のコンテンツ源(たとえば、Xfinity(登録商標))に対応することができ、同じまたは同様に見えることがあり、コンテンツ源にアクセスするために使用されるコンピューティングデバイスとは独立し得る。別の例では、グラフィカルインターフェースは、特定のコンテンツ源および特定のコンピューティングデバイス(たとえば、クライアントデバイス、ウェブブラウザ、モバイルアプリ)に対応することができる。たとえば、ケーブルサービスは、異なるコンピューティングデバイス(たとえば、セットトップボックス、モバイルデバイス、パーソナルコンピュータ)からアクセスすることができ、各コンピューティングデバイスは異なるグラフィカルインターフェースを有することができる。インターフェース分類モジュール224は、画像コンテンツ127、抽出したデータ、画像の特徴、またはそれらの組合せにアクセスして解析し、複数の予め決められたグラフィカルインターフェーステンプレートのどれが表示されるグラフィカルインターフェースに対応するかを決定することができる。
グラフィカルインターフェーステンプレートを使用して、解析の速度および/または品質を向上させることができる。グラフィカルインターフェーステンプレートは、インポートに必要なメディアの詳細に対応する表示されるグラフィカルインターフェースの部分を示すことができ、解析が、グラフィカルインターフェースの他の部分の解析を減らす(たとえば、無視する、回避する)のを可能にすることができる。一例では、グラフィカルインターフェースを分類することによって、コンピューティングデバイス120Bが、メディアアイテムの詳細を見えるようにする命令をユーザに提供するのを可能にすることによって、データ抽出を拡大することができる。命令は、グラフィカルインターフェースをどのように操作する(たとえば、ナビゲートする)のかをユーザに示すことができ、左へスクロールする、アイテムドロップダウンを展開する、タブを選択する、ウィンドウを起動する、戻る、他の命令、またはそれらの組合せなどといった、命令を含むことができる。
メディア詳細検出モジュール226は、画像の特徴244、画像コンテンツ127、他のデータ、またはそれらの組合せを解析し、メディアアイテムの表示されるセットの中の、1つまたは複数のメディアアイテムのメディアの詳細246を検出することができる。メディア詳細検出モジュール226は、どのデータが特定のエントリ(たとえば、第1の行のメディアアイテム)に対応し、どのデータが異なるエントリ(たとえば、第2の行のメディアアイテム)に対応するかを決定するために、レイアウトデータに鑑みて、テキストデータおよび画像データを解析することができる。メディア詳細検出モジュール226は、インターフェース分類モジュール224の出力にアクセスして、特定のメディアの詳細(たとえば、タイトルフィールド、注目フィールド、予約フィールド)に対応するデータを含むグラフィカルインターフェースの特定の領域を決定することができる。
メディアの詳細246は、グラフィカルインターフェースによって表示される任意の詳細を含むことができ、後で、特定のメディアアイテムを識別するために使用することができる。メディアの詳細には、識別データ、状態データ、概要データ、レビューデータ、他のデータ、またはそれらの組合せが含まれ得る。識別データには、メディアアイテムを識別するために使用されるデータであってよく、タイトルデータ(たとえば、映画、ショー、ゲーム、シリーズ、エピソードのタイトル)、説明データ(概要、長さ)、リリースデータ(たとえば、製作日、アップロード日、リリース日)、プロデューサデータ(たとえば、著者、プロデューサ、ディレクタ)、メディア参加者データ(たとえば、役者、芸術家)、メディアプロバイダ(たとえば、スタジオ、コンテンツ源)、他のデータ、またはそれらの組合せが含まれ得る。状態データには、消費データ、予約データ、アクセスデータ、またはそれらの組合せが含まれ得る。状態データは、特定のメディアアイテムが消費された(たとえば、見た、読んだ、聞いた、ダウンロードした、インストールした、またはアクセスした)かを示すことができる。消費データは、消費を始めたか、進行中か、または終了したかを示すことができ、符号(たとえば、チェックマーク、丸印)、ラベル(たとえば、「見た」「見ていない」)、テキストフォント(取消線、色、ボールド)、場所(たとえば、見たセクション)、グラフィック変更(たとえば、グレー表示のカバーアート)、他のインジケータ、またはそれらの組合せに基づくことができる。
メディア識別構成要素126は、コンピューティングデバイスが、上で議論したデータを解析して、新しいコンテンツ源から1つまたは複数の対応するメディアアイテムを識別するのを可能にすることができる。メディア識別構成要素126は、本明細書で議論したデータに基づいて、またライブラリサービス、コンテンツ源(元のコンテンツ源または新しいコンテンツ源)、もしくはそれらの組合せに鑑みてメディアアイテムを識別することができる。一例では、メディア識別構成要素126は、検索モジュール232、詳細比較モジュール234、一致モジュール236、および参照記憶モジュール238を含むことができる。
検索モジュール232は、上で議論したデータのうちの1つまたは複数のアイテムを使用して、メディアアイテムの1つまたは複数の検索を実施することができる。たとえば、検索モジュール232は、画像から抽出したデータにアクセスすることができ、抽出したデータを使用して検索を実施することができる。検索は、1つまたは複数のキーワード(たとえば、タイトル、日付、参加者)に基づいたテキスト検索、1つまたは複数のグラフィックス(たとえば、カバーアート、代表的なフレーム、シーン)に基づいたグラフィカル検索、他の検索、またはそれらの組合せであってよい。検索は、ライブラリサービスから、単一のメディアアイテムまたは複数のメディアアイテムを戻すことができる。ライブラリサービスは、コンピューティングデバイス120Aの内部にあってよく(たとえば、ローカルデータベース)、またはコンピューティングデバイス120Bの外部にあってよい(たとえば、コンピューティングデバイス120Bと別個または離れてよい)。外部ライブラリサービスは、ユーザが切り換えているコンテンツ源と一体化してよく、またはコンピューティングデバイス120Bにアクセス可能な第3者のライブラリサービスであってよい。第3者のライブラリサービスは、メディアアイテムのコンテンツ(たとえば、ビデオコンテンツ)を提供することなく、メディアアイテムについての詳細を提供することができる。
詳細比較モジュール234は、グラフィカルインターフェースから抽出した詳細を1つまたは複数の検索から戻された詳細と比較することができる。検索は、1つまたは複数のメディアアイテムを有する検索結果を戻すことができ、詳細比較モジュール234は、特定のメディアアイテムの詳細を検索結果中の1つまたは複数のメディアアイテムの詳細と比較することができる。一例では、比較は、特定のメディアアイテムのタイトルについて戻された結果のリリースデータまたは参加者データを比較するのを含むことができる。
一致モジュール236は、検索結果および/または上の比較に基づいて、1つまたは複数の一致するメディアアイテムを識別することができる。一致は、検索結果のうちの1つまたは複数をランク付けすることができ、メディアアイテムのうちの1つまたは複数を(たとえば、所定の閾値を超える)最良一致として識別することができる。
参照記憶モジュール238は、識別したメディアアイテムに対する参照を記憶することができる。参照は、第1のコンテンツ源(たとえば、元のコンテンツ源)の、表示されるメディアアイテムセットから識別され得、第2のコンテンツ源(たとえば、新しいコンテンツ源)のためのメディアアイテムセットに記憶され得る。参照は、第2のコンテンツ源にアクセス可能なメディアアイテムを示すデータを記憶できる任意のデータ構造であってよく、識別子(たとえば、ビデオID)、リンク(たとえば、ハイパーリンク)、他の識別データもしくは参照、またはそれらの組合せを含むことができる。
データストア240は、持続的データ記憶装置(たとえば、フラッシュ記憶装置)または非持続的データ記憶装置(たとえば、メモリ)を含むことができ、コンピューティングデバイス120Bに局地的である、コンピューティングデバイス120Bから離れる、またはそれらの組合せであってよい。局地的なデータ記憶装置は、コンピューティングデバイス120Bの内部にあってよく、組込型記憶装置、取外し可能記憶装置、または他のタイプの記憶装置を含むことができる。離れたデータ記憶装置は、コンピューティングデバイス120Bの外部にあってよく、ネットワーク接続を介してコンピューティングデバイス120Bによりアクセス可能であってよい。一例では、コンピューティングデバイス120Bのデータストア240は、組込型データ記憶装置を備える局地的なデータ記憶装置とクラウドベースのデータ記憶装置であってよい離れたデータ記憶装置の組合せを含むことができる。
図3は、本技術の一実装形態による、コンテンツ源のグラフィカルインターフェースを光学的に解析することによって、メディアアイテムのセットをインポートするための方法300の1つの説明のための例の流れ図を描く。方法300およびその個々の関数、ルーチン、サブルーチン、または動作の各々は、方法を実行するコンピュータデバイスの1つまたは複数のプロセッサによって実施することができる。ある実装形態では、方法300は、単一のコンピューティングデバイスによって実施することができる。あるいは、方法300は、コンピューティングデバイスの各々が、方法の1つまたは複数の個々の関数、ルーチン、サブルーチン、または動作を実行する、2つ以上のコンピューティングデバイスによって実施することができる。
説明を簡単にするため、本開示の方法は、一連の行為として示されて記載される。しかし、本開示による行為は、本明細書に提示されず記載されない他の行為とともに、様々な順序で、および/または同時に行うことができる。さらに、開示される主題による方法を実施するために、説明される行為のすべてが必要とされるわけではない。加えて、方法は、代わりに、状態図またはイベントを介して、一連の相互に関係する状態として表すことができることを、当業者なら理解して了承するであろう。加えて、本明細書に開示される方法は、そのような方法をコンピューティングデバイスに搬送および転送するのを容易にするために、製造品上に記憶することが可能であると了承されたい。本明細書で使用する「製造品」という用語は、任意のコンピュータ可読デバイスまたは記憶メディアからアクセス可能なコンピュータプログラムを包含することが意図される。一実装形態では、方法300は、図1および図2に示されるようなコンピューティングデバイス120Bによって実施することができる。
方法300は、サーバデバイスまたはクライアントデバイスの処理デバイスによって実施することができ、ブロック302で始めることができる。ブロック302で、処理デバイスは、コンテンツ源からのメディアアイテムのセットのインポートを開始することができる。セットは、1つまたは複数のメディアアイテムを含むことができ、デジタルビデオ録画機(DVR)、コンテンツストリーミングアプリケーション(たとえば、Netflix(登録商標)、HBO Go(登録商標)、Showtime Anytime(登録商標)、Prime Video(登録商標))、コンテンツストア(たとえば、iTunes store(登録商標)、Google play(登録商標))、またはそれらの組合せのうちの少なくとも1つを含むコンテンツ源の個人用コンテンツライブラリに対応することができる。
ブロック304で、処理デバイスは、コンテンツ源のグラフィカルインターフェースの画像コンテンツをキャプチャすることができる。画像コンテンツをキャプチャすることは、ユーザ入力に基づいて、画像キャプチャ動作を作動させること、およびグラフィカルインターフェースの画像コンテンツを受け取って記録することを含むことができる。画像キャプチャ動作は、カメラ動作またはスクリーンキャプチャ動作を含むことができる。一例では、画像コンテンツをキャプチャすることは、第1のコンピューティングデバイスのカメラ動作を開始して、第2のコンピューティングデバイスによって提供されるグラフィカルインターフェースの画像コンテンツ(たとえば、表示デバイスの光学出力)をキャプチャすることを含むことができる。第1のコンピューティングデバイスと第2のコンピューティングデバイスは、それぞれモバイルフォンとテレビジョンなどといった、異なるデバイスであってよい。別の例では、画像コンテンツをキャプチャすることが、グラフィカルインターフェースの画像コンテンツ(たとえば、表示デバイスを宛先とするデジタル出力)をキャプチャするコンピューティングデバイスのスクリーンキャプチャ動作を開始することを含むことができる。グラフィカルインターフェースは、同じコンピューティングデバイス上で実行するコンテンツ源のアプリケーションによって提供することができる。
画像キャプチャ動作は、複数の静止画像(たとえば、カメラの写真、またはスクリーンショット)または複数のビデオ画像(たとえば、カメラビデオまたはビデオスクリーンキャプチャ)をキャプチャすることができる。画像は、1つまたは複数のスクロール動作中に生じる動き(たとえば、多面スクロール)などといった、グラフィカルインターフェースの動きをキャプチャすることができる。スクロール動作は、複数のメディアアイテムの詳細を見えるようにし、水平スクロール、垂直スクロール、他のスクロール、またはそれらの組合せのうちの少なくとも1つを含むことができる。グラフィカルインターフェースは、メディアアイテムのセットのサブセットを表示する寸法を備えることができ、セット中の少なくとも1つまたは複数の他のメディアアイテムの詳細がない(たとえば、欠落した、隠される、ない)場合がある。一例では、処理デバイスは、複数の画像を解析して、複数の画像のうちの1つまたは複数の画像コンテンツをスティッチし、スティッチされた画像コンテンツを作成することができる。スティッチされた画像コンテンツは、グラフィカルインターフェースの動きによって見えるようになったメディアアイテムの詳細を含むことができる。
ブロック306で、処理デバイスは、グラフィカルインターフェースの画像コンテンツからデータを抽出することができる。グラフィカルインターフェースの画像コンテンツからデータを抽出することは、画像コンテンツ上で光学的認識を実施して、コンテンツ源のセットの1つまたは複数のメディアアイテムのテキストおよび/またはグラフィック(たとえば、カバーアート、アルバムアート、サムネイルグラフィック)を検出することを含むことができる。抽出したデータは、グラフィカルインターフェースのレイアウトデータ、テキストデータ、グラフィックデータ、または他のデータを含むことができる。処理デバイスは、抽出したデータを解析して、メディアアイテムが消費されたか(たとえば、完全に消費した、または部分的に消費した、消費していない)を決定することができる。
ブロック308で、処理デバイスは、画像コンテンツからのデータに基づいて、コンテンツ源のメディアアイテムを識別することができる。コンテンツ源のメディアアイテムを識別することは、画像コンテンツからのデータのアイテム(たとえば、タイトルテキスト)を使用して、ライブラリサービスの検索を実施することを含むことができる。ライブラリサービスは、コンテンツ源から別個であってよく、コンテンツ共有プラットフォームまたは第3者の発信源(たとえば、IMDB、Gracenote)が提供することができる。処理デバイスは、検索の結果を、画像コンテンツからの別のデータ(たとえば、リリースデータ)と比較して、画像コンテンツのデータと最良一致する(たとえば、所定の閾値内で一致する)結果からメディアアイテムを選択することもできる。
ブロック310で、処理デバイスがメディアアイテムへの参照を記憶することができる。メディアアイテムへの参照を記憶することは、第2のコンテンツ源の個人用コンテンツライブラリを、メディアアイテムへの参照で更新することを含むことができる。本明細書で上で記載した動作をブロック310への参照で完了することに応答して、方法は終了することができる。
図4は、コンテンツ源110Aの例示的なグラフィカルインターフェース421、およびグラフィカルインターフェース421によって表示されるメディアアイテムのセットをインポートするための、例示のコンピューティングデバイス120Bを提供する。示される例には、複数のコンピューティングデバイス120A〜120B、表示デバイス422、グラフィカルインターフェース421、および画像コンテンツ127がある。
コンピューティングデバイス120Aは、特定のコンテンツ源110A(たとえば、ケーブル会社)に関連するセットトップボックスであってよい。コンピューティングデバイス120Aは、有線接続(たとえば、HDMI(登録商標)、VGA、DisplayPort)またはワイヤレス接続(たとえば、Wifi、Bluetooth)を介して、表示デバイス422Aに通信可能に結合することができる。コンピューティングデバイス120Aは、表示デバイス422(たとえば、テレビジョンスクリーン)へグラフィカルインターフェース421を提供することができ、表示デバイス422は、コンピューティングデバイス120Bにグラフィカルインターフェースを表示することができる。コンピューティングデバイス120Bは、カメラを有するモバイルフォンであってよく、グラフィカルインターフェース421の画像コンテンツ127をキャプチャすることができる。コンピューティングデバイス120Bは、別のコンテンツ源に関連付けることができ、メディアアイテムのセット112A〜112Gを他のコンテンツ源へとインポートするために、図1〜図3に関して上で議論した特徴を実施することができる。
図5は、本開示の1つまたは複数の態様によるコンピュータシステム動作のブロック図を描く。ある実装形態では、コンピュータシステム500を、他のコンピュータシステムに(たとえば、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、またはインターネットなどといったネットワークを介して)接続することができる。コンピュータシステム500は、クライアント-サーバ環境中のサーバもしくはクライアントコンピュータの容量中で、またはピアツーピアもしくは分散ネットワーク環境中のピアコンピュータとして動作することができる。コンピュータシステム500は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、セルラ電話、ウェブ機器、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのデバイスによってとられる行為を規定する(順次または他の方法で)命令のセットを実行することが可能な任意のデバイスによって提供することができる。さらに、「コンピュータ」という用語は、本明細書に記載される方法のうちの任意の1つまたは複数を実施するため、命令のセット(または複数のセット)を個々にまたは共同で実行するコンピュータの任意の集合を含むべきである。
さらなる態様では、コンピュータシステム500は、処理デバイス502、揮発性メモリ504(たとえば、ランダムアクセスメモリ(RAM))、不揮発性メモリ506(たとえば、読取り専用メモリ(ROM)または電気的消去可能プログラム可能ROM(EEPROM))、およびデータ記憶デバイス516を含むことができ、これらは、バス508を介して互いに通信することができる。
処理デバイス502は、汎用プロセッサ(たとえば、複数命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、他のタイプの命令セットを実装するマイクロプロセッサ、または命令セットのタイプの組合せを実装するマイクロプロセッサなど)または専用プロセッサ(たとえば、特定用途向け集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、またはネットワークプロセッサなど)などの1つまたは複数のプロセッサによって提供することができる。
コンピュータシステム500は、ネットワークインターフェースデバイス522をさらに含むことができる。コンピュータシステム500は、ビデオ表示ユニット510(たとえば、LCD)、英数字入力デバイス512(たとえば、キーボード)、カーソル制御デバイス514(たとえば、マウス)、および信号発生デバイス520をやはり含むことができる。
データ記憶デバイス516は、図1および図2のメディア識別構成要素126を符号化する命令ならびに方法300を実装するための命令を含む、本明細書に記載される方法または関数のうちの任意の1つまたは複数を符号化する命令526を記憶することができる、非一時的コンピュータ可読記憶媒体524を含むことができる。
命令526は、コンピュータシステム500による命令526の実行中に、揮発性メモリ504内および/または処理デバイス502内に完全または部分的に存在することもでき、したがって、揮発性メモリ504および処理デバイス502が、機械可読記憶媒体を構成することもできる。
コンピュータ可読記憶媒体524は単一の媒体として説明のための例に示される一方で、「コンピュータ可読記憶媒体」という用語は、実行可能な命令の1つまたは複数のセットを記憶する単一の媒体または複数の媒体(たとえば、集中型もしくは分散型データベース、ならびに/または関連するキャッシュおよびサーバ)を含むべきである。「コンピュータ可読記憶媒体」という用語は、本明細書に記載される方法のうちの任意の1つまたは複数をコンピュータに実施させる、コンピュータによる実行のための命令のセットを記憶または符号化することが可能な任意の有形媒体をやはり含むべきである。「コンピュータ可読記憶媒体」という用語は、固体メモリ、光学媒体、および磁気媒体を含むが、それらに限定されないものとする。
本明細書に記載される方法、構成要素、および特徴は、個別のハードウェア構成要素によって実装することができ、またはASIC、FPGA、DSP、または同様のデバイスなどといった、他のハードウェア構成要素の機能性に一体化することができる。加えて、方法、構成要素、および特徴は、ファームウェアモジュールまたはハードウェアデバイス内の機能回路によって実装することができる。さらに、方法、構成要素、および特徴は、ハードウェアデバイスとコンピュータプログラム構成要素の任意の組合せ、またはコンピュータプログラムで実装することができる。
別段に明記されていない限り、「検出する」、「決定する」、「解放する」、「破棄する」、「開始する」、「作成する」、「放棄する」などといった、用語は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを、コンピュータシステムのメモリもしくはレジスタまたは他のそのような情報記憶装置、送信もしくは表示デバイス内の物理量として同様に表される他のデータへと操作および変換するコンピュータシステムによって実施または実装される行為およびプロセスのことを呼ぶ。また、本明細書で使用される「第1」、「第2」、「第3」、「第4」などの用語は、異なる要素間で区別するためのラベルを意味し、それらの数値的な指示にしたがう順序の意味を持たない場合がある。
本明細書に記載される例は、本明細書に記載される方法を実施するための装置にやはり関する。この装置は、本明細書に記載される方法を実施するため特別に構築することができ、または、コンピュータシステムに記憶されるコンピュータプログラムによって選択的にプログラムされる汎用コンピュータシステムを備えることができる。そのようなコンピュータプログラムは、コンピュータ可読有形記憶媒体に記憶することができる。
本明細書に記載される方法および説明のための例は、任意の特定のコンピュータまたは他の装置に本質的に関係しない。様々な汎用システムを、本明細書に記載される教示にしたがって使用することができ、または方法500および/もしくはその個々の関数、ルーチン、サブルーチン、もしくは動作の各々を実施するためにより専用の装置を構築することが好都合であると証明することができる。様々なこれらのシステムについての構造の例が、上の記載に記される。
上の記載は、説明のためであることを意図しており、限定的でない。本開示は特定の説明のための例および実装形態を参照して記載されてきたが、本開示は、記載される例および実装形態に限定されないことを認識されよう。本開示の範囲は、以下の請求項ならびに請求項が権利を与える等価物の完全な範囲を参照して決定するべきである。