(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0007】
以下に説明されるのは、モバイルコンピューティングデバイスによって注釈付きビデオコンテンツを表示するための方法およびシステムである。ここで、「モバイルコンピューティングデバイス」は、プロセッサ、メモリ、および少なくとも一つの通信インタフェースを有する携帯デバイスを参照するものとする。モバイルコンピューティングデバイスの例は、スマートフォン、タブレットコンピュータ、およびノートブックコンピュータを含むが、これに限定しない。
【0008】
モバイルコンピューティングデバイスは、ストリーミングサーバからネットワークを通じてダウンロードされ得るビデオストリームを表示するためのビデオプレイヤーアプリを実行してもよい。ビデオストリーミング機能は、エンタテイメント、教育、および、他のアプリケーションで採用されてもよい。特定の実装において、本明細書に記載のモバイルコンピューティングデバイスは、ビデオ注釈を含むビデオストリームを表示することが可能であってもよい。ここで、「ビデオ注釈」は、ビデオストリームの複数のフレーム上に重畳され、並びに、ユーザに情報を伝えること、及び/又は一つ以上のユーザインタフェースコマンドを発行するようにユーザに促すことを目的とする、一つ以上の視覚要素を参照するものとする。ビデオ注釈は、例えば、表示されているビデオコンテンツに関する追加の情報を提供し、表示されたコンテンツを選択するユーザ入力(例えば、いくつかの可能な視聴経路のうちの一つを選択するか、または現在表示されているビデオストリームの断片を選択する)を受け付け、関連するコンテンツアイテムへのリンクを提供し、及び/又はモバイルコンピューティングデバイスによって実行可能な、関連したアプリケーションに対するリンクを提供するために使用されてもよい。
【0009】
例えば、デスクトップコンピュータと比較して、モバイルコンピューティングデバイス(例えば、携帯電話、タブレットコンピュータ、またはスマートフォン)は、より小さいサイズ及び/又は解像度の画面を有する可能性があり、従って、いくつかの従来のユーザインタフェースコマンドを実装することは困難である。それに対して、モバイルコンピューティングデバイスは、ユーザコマンドの入力に使用され得る、例えば、タッチスクリーン、ビデオまたは静止画像カメラ、マイクロフォン、及び/又はアクセレロメータを含む、幅広い種類のユーザインタフェースデバイスを提供することによって、エンドユーザエクスペリエンスを拡張し得る。従って、特定の実装において、ビデオ注釈を含むビデオストリームの再生に使用されるモバイルコンピューティングデバイスは、モバイルコンピューティングデバイスのユーザインタフェース機能を考慮して、ビデオ注釈を変更してもよい。一例において、モバイルコンピューティングデバイスは、モバイルコンピューティングデバイスの画面に合うように、サイズを変更することによってビデオ注釈を変更してもよい。他の例において、モバイルコンピューティングデバイスは、モバイルコンピューティングデバイスの画面サイズを考慮して、表示位置を変更することによってビデオ注釈を変更してもよい。さらに他の例において、モバイルコンピューティングデバイスは、ビデオ注釈要素の視覚が交差することを防ぐために、モバイルコンピューティングデバイスの画面上に2つ以上のビデオ注釈を再配置してもよい。
【0010】
他の態様において、モバイルコンピューティングデバイスは、モバイルコンピューティングデバイスによって表示されているビデオ注釈に適用できる、一つ以上のユーザインタフェースコマンド(例えば、タッチスクリーンジェスチャ及び/又はアクセレロメータ測定ジェスチャを含む)を定義してもよい。モバイルコンピューティングデバイスは、一つ以上の可能なシステム動作のそれぞれに、ユーザインタフェースコマンドを割り当ててもよい。ユーザインタフェースコマンドは、タッチスクリーン、カメラ、マイクロフォン、及び/又はアクセレロメータを介して入力されるコマンドを含んでもよい。ユーザインタフェースコマンドに対応するシステム動作は、再生制御コマンド(一時停止、停止、巻き戻し、及び/又は早送りなど)、コンテンツ選択コマンド(関連するコンテンツアイテムを表示する、など)、及び/又はアプリケーション制御コマンド(定義されたアプリケーションの起動など)等を含んでもよい。
【0011】
さらに別の態様において、モバイルコンピューティングデバイスは、ビデオ注釈を含むビデオストリームを再生する間、例えば、タッチスクリーン、ビデオまたは静止画像カメラ、マイクロフォン、及び/又はアクセレロメータを含む、様々なユーザインタフェースを介してユーザコマンドを受理してもよい。各ユーザインタフェースコマンドは、コマンド及び/又は実行されるアプリケーションのコンテキストによって定義された機能を、モバイルコンピューティングデバイスに実行させてもよい。一例において、モバイルコンピューティングデバイスは、例えば、タップ、ダブルタップ、押す、スワイプ、ピンチ、及び/又はタッチスクリーンの回転を含む、タッチスクリーンを介して発行される多数のユーザのジェスチャを認識してもよい。他の例において、ユーザのジェスチャは、ビデオまたは静止画像カメラを介して入力されてもよい。さらに他の例において、ユーザのボイスコマンドまたは他の音コマンド(例えば、口笛)は、マクロフォンを介して入力されてもよい。さらに他の例において、アクセレロメータは、定義された頻度、大きさ、及び/又は移動の方向(例えば、水平または垂直面でモバイルコンピューティングデバイスを振る、モバイルコンピューティングデバイスを回転する、等)を含む、一つ以上の事前に定義されたパターンに従ったモバイルコンピューティングデバイスの移動を含む、ユーザのコマンドを受理するために使用されてもよい。
【0012】
ユーザインタフェースコマンドの受信に応答して、モバイルコンピューティングデバイスは、ビデオ注釈と、ビデオプレイヤーアプリの動作に対するユーザインタフェースコマンドのマッピングと、に関連する、一つ以上のデータ構造内に格納された記録に基づいて、ユーザインタフェースコマンドに対応する動作を決定してもよい。モバイルコンピューティングデバイスは、ユーザインタフェースコマンドによって定義された、ビデオ注釈に関連する動作を次いで実行してもよい。
【0013】
上記で参照された方法およびシステムの様々な態様は、限定としてよりも、実施例として、以下に詳細に説明される。
【0014】
図1は、本開示の一つ以上の態様に従って動作するモバイルコンピューティングデバイスの一つの具体例を図示するブロック図である。モバイルコンピューティングデバイスは、例えば、スマートフォン、タブレットコンピュータ、パーソナルデジタルアシスタント、またはノートブックコンピュータによって提供されてもよい。
【0015】
モバイルコンピューティングデバイス100は、システムバス120に結合されたプロセッサ110を含んでもよい。後者は、データバス、アドレスバス、及び/又はコントロールバスを含んでもよい。プロセッサ110は、汎用プロセッサ(例えば、復号命令セットコンピュータ(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、命令の他のタイプを実装するマイクロプロセッサ、または命令のタイプの組合せを実装するマイクロプロセッサ)、または専用プロセッサ(例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ)といった、一つ以上の物理的なプロセッサによって提供されてもよい。
【0016】
システムバスに結合された他のデバイスは、メモリ130、ディスプレイ135、キーボード140、スピーカ145、マイクロフォン150、ビデオまたは静止画像カメラ155、アクセレロメータ160、および/または一つ以上の無線ネットワークインタフェース165を含んでもよい。ここで、「結合された」という用語は、一つ以上のインタフェースデバイス、アダプタ、および同類のものを介して、電気的に接続されること、および通信可能に結合されることの両方を含むべきである。
【0017】
メモリ130は、一つ以上の揮発性メモリデバイス(例えば、RAMチップ)、一つ以上の不揮発性メモリデバイス(例えば、ROMまたはEEPROMチップ)、及び/又は一つ以上のセカンダリメモリデバイス(例えば、光学または磁気ディスクのような、記憶メモリデバイス)を含んでもよい。記憶メモリは、本明細書で説明された方法を実行する命令を記憶し得る、持続性コンピュータ可読記憶メディアを含んでもよい。
特定の実装において、メモリ130は、ビデオプレイヤーアプリ190の命令を保存してもよい。一つの具体例において、ビデオプレイヤーアプリ190は、本開示の一つ以上の態様に従って、ビデオ注釈を含むビデオコンテンツを提供し、タッチスクリーン170、カメラ155、マイクロフォン150、またはアクセレロメータ150から一つの注釈に関するユーザインタフェースコマンドを受信し、次いで、ユーザインタフェースコマンドに応答して注釈に関する動作を実行するために、モバイルデバイス100上で実行されてもよい。
【0018】
無線ネットワークインタフェース165は、例えば、IEEE802.11準拠のインタフェース、セルラーインタフェース(UMTS、LTE、WiMAX、HSPAまたはEV-DOを含む、3Gまたは4Gインタフェース等)、及び/又はブルートゥースインタフェースによって提供されてもよい。モバイルコンピューティングデバイス100は、無線ネットワークインタフェース165を通じて通信をサポートするために、例えばTCP/IPといったネットワークプロトコルスタックを実装してもよい。
【0019】
特定の実装において、モバイルコンピューティングデバイス100は、例えば、ディスプレイ135のタッチセンシティブ、及び/又はプレゼンスセンシティブ(presence-sensitive)面によって表される、タッチスクリーン入力デバイス170を含んでもよい。一例において、タッチセンシティブ面は、キャパシティセンシティブ(capacity-sensitive)レイヤを含んでもよい。他の例において、タッチセンシティブ面は、ディスプレイの水平および垂直軸に沿って設置された二つ以上の音響変換機を含んでもよい。
【0020】
特定の実装において、タッチスクリーンを備えたモバイルコンピューティングデバイス100は、タッチセンシティブ面の外部の物体による接触の検出に応答して、接触の位置、以前の位置に対する位置の変更、及び/又は接触の方法(例えば、タッチセンシティブ面との接触を保ちながら外部の物体が移動しているかどうか)を判断してもよい。タッチスクリーンに接触するために使用される外部の物体は、例えば、ユーザの指、タッチペンによって、または任意の他の適切なデバイスによって、表されてもよい。
【0021】
タッチ/リリースイベント、判定されたコンタクトの位置、コンタクト位置の変更、及び/又はコンタクトの方法の検出に基づいて、コンピューティングデバイス100は、例えば、
図2a乃至2fに模式的に図示されるようなタップ、ダブルタップ、押す、スワイプ、ピンチ、及び/又はタッチスクリーンの回転を含む、一つ以上のユーザ入力ジェスチャタイプを認識してもよい。
【0022】
図2aに模式的に図示したように、タップは、第1の事前に定義された持続時間閾値以下の継続した、および第2の事前に定義された持続時間閾値以上のリリースによって生じる接触である。タップは、タッチセンシティブ面上の外部の物体が移動しないことを含む。
図2bに模式的に図示したように、ダブルタップは、第2の事前に定義された持続時間閾値以下の時間内でリリースする、2つの連続したタップジェスチャを含む。
図2cに模式的に図示したように、押す、または長押しは、第1の事前に定義された持続時間閾値以上の継続した接触である。
図2dに模式的に図示したように、スワイプは、仮想の直線セグメントに沿ったタッチセンシティブ面上の外部の物体の移動を伴う接触である。
図2eに模式的に図示したように、ピンチは、仮想の直線または曲線のセグメントに沿って互いに向かって移動する二つの外部の物体(例えば、ユーザの二本の指)による接触である。
図2fに模式的に図示したように、回転は、仮想の円に沿って同じ方向に移動する二つの外部の物体(例えば、ユーザの二本の指)による接触である。
【0023】
特定の実装において、モバイルコンピューティングデバイス100は、モバイルコンピューティングデバイスの正確な加速を計測するアクセレロメータを備えてもよい。一例において、モバイルコンピューティングデバイスは、定義された頻度、大きさ、及び/又は移動の方向(例えば、水平または垂直面でモバイルコンピューティングデバイスを振る、モバイルコンピューティングデバイスを回転する、等)を含む、一つ以上の事前に定義されたパターンを使用した、ユーザのモバイルコンピューティングデバイスの移動を含むユーザインタフェースコマンドを、アクセレロメータを使用して受領するためにプログラムされてもよい。
【0024】
特定の実装において、モバイルコンピューティングデバイス100は、ビデオまたは静止画像カメラを備えてもよい。一例において、カメラは、ユーザのジェスチャによって表されるユーザインタフェースコマンドを入力するために使用されてもよい。
【0025】
特定の実装において、モバイルコンピューティングデバイス100は、マイクロフォンを備えてもよい。一例において、マイクロフォンは、ユーザのボイスコマンドまたは他の音コマンド(例えば、口笛)を入力するために使用されてもよい。
【0026】
特定の実装において、モバイルコンピューティングデバイス100は、ビデオストリーム及び/又はオーディオストリームを再生し得るビデオプレイヤーアプリを実行してもよい。モバイルコンピューティングデバイス100は、オーディオコーデック(例えば、MP3、VorbisまたはAAC)を使用して圧縮されたオーディオストリームを再生してもよく、及び/又はビデオコーデック(例えば、H.264またはVP8)を使用して圧縮されたビデオストリームを再生してもよい。一例において、モバイルコンピューティングデバイスは、符号化されたオーディオおよびビデオストリームを含む、組み合わされたビットストリーム(例えば、FLV、WebM、ASFまたはISMA)を再生してもよい。
図3に模式的に図示したように、ビデオストリーム300は、ヘッダ310および複数のビデオフレーム320を含んでもよい。ビデオフレーム320のそれぞれは、ビデオデータ325及び/又はタイムスタンプ330を含んでもよい。
【0027】
図4に模式的に図示したように、特定の実装において、モバイルコンピューティングデバイス100は、例えば、ストリーミングサーバ410またはピアモバイルコンピューティングデバイス420から、ネットワーク415を通じて、ビデオストリームを受信している間、ビデオストリームを表示してもよい。ストリーミングサーバ410は、一例において、コンテンツ共有プラットフォームとして参照されてもよい、共有コンテンツホスティング(hosting)および配信プラットフォーム412の一部であってもよい。ネットワーク415は、一例において、インターネットを含んでもよい。イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及び/又は仮想プライベートネットワーク(VPN)といった、有線および無線ネットワークを含む、他のネットワークは、ネットワーク415の一部であってもよい。
【0028】
図4に図示したように、共有コンテンツホスティングおよび配信プラットフォーム412は、ネットワーク418を介して、コンテンツデータストア417に結合されたフロントエンドストリーミングサーバ410を含んでもよい。コンテンツデータストア417は、ローカルまたは分散型データベース、ファイルリポジトリ、または適切なアーキテクチャの任意の他のデータリポジトリによって提供されてもよい。コンテンツデータストア417は、例えば、ビデオクリップ、テレビクリップ(ニュース、スポーツ、映画など)、音楽ビデオ、ビデオブログエントリ、及び/又は短いビデオを含み得る、複数のコンテンツアイテム(総称して「コンテンツ」と呼ぶ)を保存するために使用されてもよい。一つの具体例において、コンテンツは、他のユーザと共有するために、共有コンテンツホスティング及び配信プラットフォーム412のユーザによってアップロードされた一つ以上のアイテムを含んでもよい。アップロードされたコンテンツアイテムは、ネットワーク415を通じてモバイルコンピューティングデバイス100によってキャプチャされた、及び/又は送信されたデータを含んでもよい。
【0029】
ネットワーク418は、ローカルエリアネットワークによって提供されてもよい。インターネット、一つ以上のイントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及び/又は仮想プライベートネットワーク(VPN)を含む他のネットワークは、ネットワーク418の一部であってもよい。特定の実装において、共有コンテンツホスティングおよび配信プラットフォーム412は、本明細書において以下に詳細が記載される、ビデオ注釈を配信するために使用されるビデオ注釈サーバ430をさらに含んでもよい。
【0030】
フロントエンドサーバ410、コンテンツデータストア417、およびビデオ注釈サーバ430は、
図4で別のコンポーネントとして図示されるが、コンテンツホスティングおよび配信プラットフォーム412の他のコンポーネントは、単一のコンピューティングデバイス、または多数の異なるコンピューティングデバイス、およびLAN及び/又はWANを含む一つ以上のネットワークを介して相互接続し得るシステムの、様々な組合せで同時に実装されてもよい。特定の実装において、共有コンテンツホスティングおよび配信プラットフォーム412は、複数のフロントエンドサーバ410に対して、ネットワーク415を通じて受信したユーザリクエストを発送するために使用され得るロードバランサ(
図4には記載せず)等の、他のコンポーネントをさらに含んでもよい。特定の実装において、共有コンテンツホスティングおよび配信プラットフォーム412は、共有コンテンツホスティングおよび配信プラットフォーム412にアクセスするユーザを認証するために使用され得るユーザディレクトリをさらに含んでもよい。
【0031】
一つの具体例において、ユーザは、ネットワーク415上でモバイルコンピューティングデバイス100を介して、ホスティングおよび配信プラットフォーム412によって保存されたコンテンツにアクセスしてもよい。モバイルコンピューティングデバイス100は、ストリーミングサーバ410に対して制御メッセージ(例えば、リアルタイムストリーミングプロトコル(RTSP)メッセージ)を発行することによって、ストリーミング処理を制御してもよい。ビデオストリームは、ストリーミングサーバ410からモバイルコンピューティングデバイス100に対して、リアルタイム転送プロトコル(RTP)等の転送プロトコルを使用して配信されてもよい。モバイルコンピューティングデバイス100は、ストリーミングサーバ410に対して、リアルタイム転送制御プロトコル(RTCP)を使用して、クオリティオブサービス(QoS)情報を定期的に送信してもよい。RTP/RTCPストリーミングの代わりとして、モバイルコンピューティングデバイス100は、特定の実装において、適応ビットレートストリーミングを実行するために、HTTPプログレッシブダウンロードを使用してもよい。
【0032】
特定の実装において、モバイルコンピューティングデバイス100は、ストリーミングサーバ410によって、複数の受信者420に対して送信されたマルチキャストストリームを受信する、マルチキャストグループのメンバであってもよい。マルチキャストグループのメンバは、通常、サーバによって送信を制御することを制限されるか、または制御する能力を持たない。エンドユーザの視覚エクスペリエンスを向上するために、モバイルコンピューティングデバイス100は、受信したビデオストリームをバッファすることができるので、従って、一時停止、停止、早送り、及び/又は早戻しといった再生制御コマンドを、エンドユーザが発行することを可能にする。
【0033】
特定の実装において、モバイルコンピューティングデバイス100は、ピアツーピア(P2P)プロトコルを使用して、一つ以上のピアモバイルコンピューティングデバイス420から、ビデオストリームを受信してもよい。ビデオストリームの一つ以上の断片は、一つ以上のピアモバイルコンピューティングデバイスのそれぞれから受信されてもよい。ビデオストリームは、モバイルコンピューティングデバイス100によって、再生される前にアセンブルされてもよい。
【0034】
特定の実装において、モバイルコンピューティングデバイス100によって再生されるビデオストリームは、一つ以上のビデオ注釈を含んでもよい。ビデオ注釈は、例えば、表示されているビデオコンテンツに関する追加の情報を提供するために、表示されるコンテンツを(例えば、多数の視聴経路、及び/又は目次機能を提供するために)選択するユーザ入力を受理するために、コンテンツアイテムに関するリンクを提供するために、及び/又はモバイルコンピューティングデバイスによって実行可能な関連するアプリケーションへのリンクを提供するために、使用されてもよい。モバイルコンピューティングデバイス100は、ビデオ注釈に関する(例えば、キーボード、タッチスクリーン、及び/又はアクセレロメータを介した)、およびモバイルコンピューティングデバイスに再生するプロセスを制御する特定の機能を実行させる、ユーザ入力を受理してもよい。ユーザ入力によって選択可能な動作の例は、ビデオストリーム表示の一時停止、ビデオストリーム内の選択した位置へのジャンプ、関連するコンテンツ(例えば、他のビデオストリーム、または静止画像)の表示、及び/又はモバイルコンピューティングデバイスによって実行可能な他のアプリケーションへの切り替え、を含む。
【0035】
図5に模式的に図示したように、ビデオ注釈510は、ビデオフレーム内に表示される、一つ以上の文字列520及び/又は一つ以上の画像525を含んでもよい。特定の実装において、ビデオ注釈は、例えば、ビデオ注釈タイプ識別子535(例えば、タイトル、吹き出し、メモ、ラベル、スポットライト、またはビデオサムネイル)、ビデオ注釈が表示されるべきビデオフレーム内の位置を定義するディスプレイ位置識別子540、および/または表示されるビデオ注釈内の複数のビデオフレームを定義するビデオフレーム識別子545を含む、表示不可情報を保存するデータ構造530をさらに含んでもよい。特定の実装において、ビデオフレーム識別子は、表示されるべきビデオ注釈内で、フレーム範囲の開始フレームと終了フレームを定義し得る、開始フレーム識別子547および終了フレーム識別子549によって表されてもよい。一例において、開始フレーム識別子および終了フレーム識別子は、ビデオストリームの開始に関する、開始時間および終了時間を識別してもよい。
【0036】
特定の実装において、ビデオ注釈は、ユーザインタフェースコマンド560に関連し、ビデオプレイヤ動作565(例えば、ビデオ注釈フィールド内のクリックは、関連するリソースを識別するURIにマッピングされてよく、ビデオ注釈フィールド内のダブルクリックは、ビデオストリームの所定の部分にジャンプするようにマッピングされ得る、など)に対応する一つ以上の記録を保存するデータ構造550をさらに含んでもよい。特定の実装において、ビデオ注釈は、例えば、ビデオストリームがキャプチャされた位置を識別する地理位置情報識別子575、ビデオ注釈作成者/編集者の識別子580、および/またはビデオ注釈作成/編集日時585を含む、表示不可メタデータを保存するデータ構造570、さらに含んでもよい。
【0037】
図4で模式的に図示したように、特定の実装において、ビデオ注釈識別子は、ビデオストリーム、および、ビデオストリーミングサーバ420とは異なってもよい、ビデオ注釈サーバ430からビデオプレイヤーアプリによって取り出され得るビデオ注釈に関連するデータ構造の中に保存されてもよい。あるいは、ビデオ注釈に関連するデータ構造は、ビデオストリーム内に保存されてもよい。
【0038】
図6は、ビデオ注釈の様々なタイプを模式的に図示している。一例において、ビデオ注釈は、タイトル610によって表示されてもよい。他の例において、ビデオ注釈は、吹き出し620によって表示されてもよい。さらに他の例において、ビデオ注釈は、メモ630によって表示されてもよい。さらに他の例において、ビデオ注釈は、ラベル640によって表示されてもよい。さらに他の例において、ビデオ注釈は、スポットライト650によって表示されてもよい。さらに他の例において、ビデオ注釈は、サムネイル655によって表示されてもよい。
【0039】
ビデオストリームに添付されたビデオ注釈は、典型的なモバイルコンピューティングデバイスの画面よりも、大きいサイズの画面を有する、及び/又は高解像度を有するコンピューティングデバイスによって表示されるために、設計されてもよい。この結果、モバイルコンピューティングデバイスによって表示されたビデオ注釈は、ユーザによって識別可能な、及び/又は読み取り可能にするためには、不適切なサイズになる可能性がある。いくつかの状況において、二つ以上のビデオ注釈は、互いに空間的に非常に近く表示され得るため、ビデオ注釈の内の一つを(例えば、対応するリンクをクリックすることによって)選択しようとするユーザの試みは、多くの場合、誤って、間違ったビデオ注釈を選択する結果(例えば、誤ったリンクをクリックする)となる。さらに、一般的なコンピュータデバイス向けに設計されたビデオ注釈は、ビデオ注釈フィールド上のクリックまたはダブルクリックの受理のみしかできず、様々なタッチスクリーンユーザインタフェース入力を受理するようには設計されていない。
【0040】
したがって、モバイルコンピューティングデバイス100は、モバイルコンピューティングデバイス100によって表示するためのビデオストリームに添付されたビデオ注釈を変更及び/又は調整するために、ビデオストリームを処理してもよい。一例において、モバイルコンピューティングデバイス100は、一つ以上のビデオ注釈を見えるようにし、及び/又はモバイルコンピューティングデバイス100の画面上のユーザのタッチスクリーン入力によって選択されるように、それらのサイズを変更してもよい。ビデオ注釈のサイズ変更は、注釈メッセージの読みやすさを向上するために、例えば、モバイルコンピューティングデバイス100の特定の画面サイズ用の事前に定義された最小のフォントサイズに基づいた、ビデオ注釈メッセージのフォントのサイズ変更を含んでもよい。ビデオ注釈のサイズ変更は、例えば、モバイルコンピューティングデバイス100の特定の画面サイズ用の事前に定義された最小の視覚要素サイズに基づいて、一つ以上のビデオ注釈の視覚要素のサイズを変更することを、さらに含んでもよい。
【0041】
他の例において、モバイルコンピューティングデバイス100は、モバイルコンピューティングデバイス100の画面上のユーザのタッチスクリーン入力によって、ビデオ注釈を視覚可能及び/又は選択可能にするために、一つ以上のビデオ注釈を再配置してもよい。ビデオ注釈を再配置することは、画面の事前に定義された角に相対的に定義された方向に、ビデオ注釈を移動する、といった一つ以上の再配置規則に基づいてもよい。一例において、単一のフレーム内に表示された、いくつかのビデオ注釈を再配置することは、画面の一つ以上の事前に定義された角に対して、相対的に定義された方向に再配置する手順(例えば、画面の左上隅に向かって第1のビデオ注釈を移動し、次いで画面の右上隅に向かって第2のビデオ注釈を移動する)に基づいてもよい。さらに他の例において、モバイルコンピューティングデバイスは、ビデオ注釈要素の視覚的交差を避けるために、二つ以上のビデオ注釈をモバイルコンピューティングデバイスの画面上に再配置してもよい。
【0042】
特定の実装において、モバイルコンピューティングデバイス100は、モバイルコンピューティングデバイス100によって表示されているビデオ注釈に適用可能な、一つ以上のユーザインタフェースコマンド(例えば、タッチスクリーンジェスチャ及び/又はジェスチャを計測するアクセレロメータ)を定義してもよい。モバイルコンピューティングデバイスは、一つ以上の可能なシステム動作のそれぞれに対して、ユーザインタフェースコマンドを割り当ててもよい。ユーザインタフェースコマンドは、タッチスクリーン、カメラ、マイクロフォン、及び/又はアクセレロメータを介して入力されたものを含んでもよい。ユーザインタフェースコマンドに対応するシステム動作は、再生制御コマンド(一時停止、停止、早送り、及び/又は早戻し等)、コンテンツ選択コマンド(関連するコンテンツアイテムの表示等)、及び/又はアプリケーション制御コマンド(定義されたアプリケーションの起動等)などを含んでもよい。
【0043】
ビデオストリームの一つ以上のフレーム上に重畳したビデオ注釈の表示に応答して、モバイルコンピューティングデバイスは、タッチスクリーン、カメラ、マイクロフォン、及び/又はアクセレロメータを介して、ユーザインタフェースコマンドを受信してもよい。ユーザインタフェースコマンドは、例えば、タップ、ダブルタップ、押す、スワイプ、ピンチ、及び/又はタッチスクリーンの回転を含む、タッチスクリーンを介して発行される一つ以上のジェスチャによって表されてもよい。他の例において、ユーザインタフェースコマンドは、マイクロフォンを介して入力される音声及び/又は音コマンドによって表されてもよい。さらに他の例において、ユーザインタフェースコマンドは、ビデオまたは静止画像カメラを介して入力される、一つ以上のユーザのジェスチャによって表されてもよい。さらに他の例において、ユーザインタフェースコマンドは、定義された頻度、大きさ、及び/又は移動の方向(例えば、水平または垂直面でモバイルコンピューティングデバイスを振る、モバイルコンピューティングデバイスを回転する、など)を含む、一つ以上の事前に定義されたパターンに従った、ユーザのモバイルコンピューティングデバイスの移動を含んでもよい。
【0044】
ユーザインタフェースコマンドを受信することに応答して、モバイルコンピューティングデバイスは、ビデオ注釈に関連し、ユーザインタフェースコマンドをビデオプレイヤーアプリの動作にマッピングする、データ構造に保存された一つ以上の記録に基づいてユーザインタフェースコマンドに対応する動作を決定してもよい。モバイルコンピューティングデバイスは、ユーザインタフェースコマンドによって定義された、ビデオ注釈に関連した動作を次いで実行してもよい。ユーザインタフェースコマンドによって選択可能な動作の例は、表示中のビデオストリームの一時停止、ビデオストリーム内の選択された位置へのジャンプ、関連するコンテンツの表示(例えば、他のビデオストリーム、または静止画像)、及び/又はモバイルコンピューティングデバイスによって実行可能な他のアプリケーションへの切り替えなどを含む。
【0045】
ビデオコンテンツアイテムのためのビデオ注釈は、デスクトップまたはモバイルコンピューティングデバイスによって実行可能なビデオ注釈エディタを使用して作成されてもよい。
図7に模式的に図示したように、特定の実装において、モバイルコンピューティングデバイス100は、フレームウィンドウ710で編集されているビデオストリームを表示してもよい。モバイルコンピューティングデバイス100は、ビデオ注釈を一つ以上のビデオフレームに挿入することに関する一つ以上のユーザインタフェースコマンドを受理してもよい。ビデオフレームは、表示されたタイムライン712に基づいて、ユーザによって選択されてもよく、及び/又は、編集中のビデオストリームの再生、早送り、及び/又は早戻しによって選択されてもよい。特定の実装において、ビデオ注釈検索機能は、ビデオ注釈に関する一つ以上の検索条件を指定するために、ユーザの入力を受理し、検索条件(例えば、ユーザが提供した文字列を含む吹き出し)に合致するビデオ注釈を有する一つ以上のフレームを表示するように実装されてもよい。
【0046】
特定の実装において、ユーザインタフェースコマンドを受信することに応答して、モバイルコンピューティングデバイスは、吹き出し注釈720、メモ注釈730、ラベル注釈740、スポットライト注釈750及び/又はタイトル注釈760を挿入してもよい。ボイスコマンドは、注釈タイプ、事前に定義されたフレームの角または他の注釈要素に対する相対的な注釈位置、注釈テキスト、及び/又は他の注釈パラメータ(例えば、フォントサイズ)を含んでもよい。一例において、ユーザインタフェースコマンドは、マイクロフォンを介して受信されてもよい。あるいは、ユーザインタフェースコマンドは、タッチスクリーンを介して受信されてもよい。特定の実装において、ユーザインタフェースコマンドのいくつかの要素は、ユーザインタフェースコマンドの他の要素が第二のユーザインタフェース(例えば、吹き出しテキストがマイクロフォンを介して入力されてよく、及び吹き出し位置はタッチスクリーンを介して入力されてもよい)を介して受信され得る間、第一のユーザインタフェースを介して受信されてもよい。特定の実装において、いくつかのユーザインタフェースコマンドは、単一のフレームに表示された複数のビデオ注釈に適用されてもよい(例えば、ユーザがモバイルコンピューティングデバイスを振ることに応答して、後者は、ビデオ注釈要素の視覚的交差を解消するために、現在表示されているフレーム内に表示されたビデオ注釈を再配置してもよい)。
【0047】
図8は、本開示の一つ以上の態様に従った、モバイルコンピューティングデバイスによって注釈付きビデオコンテンツを表示するための方法800の一例のフローチャート図を図示している。方法800は、ハードウェア(例えば、電気回路、専用ロジック、及び/又はプログラム可能なロジック)、ソフトウェア(例えば、ハードウェアシミュレーションを実行するコンピュータシステム上で実行可能な命令)、またはそれらの組合せを含んでもよい、(例えば、モバイルコンピューティングデバイス100上で実行するビデオプレイヤーアプリ190の)処理ロジックによって実行されてもよい。方法800および/または個別の機能、ルーチン、サブルーチン、または操作のそれぞれは、この方法を実行するコンピューティングデバイスの一つ以上の物理プロセッサによって実行されてもよい。方法800の二つ以上の機能、ルーチン、サブルーチン、または操作は、並列または上述された順序とは異なり得る順序で実行されてもよい。
【0048】
ブロック810で、モバイルコンピューティングデバイスは、複数のビデオフレームを含むビデオストリームを再生してもよい。本明細書に上述したように、特定の実装において、モバイルコンピューティングデバイスは、例えば、無線通信インタフェースを通じて、ストリーミングサーバまたはピアモバイルコンピューティングデバイスからビデオストリームが受信されている間、ビデオストリームを表示してもよい。
【0049】
ブロック820で、モバイルコンピューティングデバイスは、ビデオストリームの一つ以上のフレーム上に重畳するビデオ注釈を表示してもよい。本明細書において上述したように、特定の実装において、モバイルコンピューティングデバイスは、例えば、本明細書において上記で詳細に説明したように、モバイルコンピューティングデバイスの画面により合うようにビデオ注釈をサイズ変更することによって、及び/又は画面上にビデオ注釈を再配置することによって、先に表示したビデオ注釈を変更してもよい。
【0050】
ブロック830で、モバイルコンピューティングデバイスは、モバイルコンピューティングデバイスのユーザ入力インタフェースを介して、ユーザインタフェースコマンドを受信してもよい。特定の実装において、本明細書で上記にさらに詳細に説明したように、ユーザ入力インタフェースは、タッチスクリーン、カメラ、マイクロフォン、及び/又はアクセレロメータによって提供されてもよい。モバイルコンピューティングデバイスは、本明細書で上記にさらに詳細に説明されたように、ビデオ注釈に関連するデータ構造内に格納された一つ以上の記録、およびビデオプレイヤーアプリ動作に対するユーザインタフェースコマンドのマッピングに基づいて、ユーザインタフェースコマンドに対応する動作を次いで決定してもよい。
【0051】
ブロック840で、モバイルコンピューティングデバイスは、ユーザインタフェースコマンドによって定義される、ビデオ注釈に関する動作を実行してもよい。ブロック840によって参照される動作を完了することに応答して、方法は終了してもよい
【0052】
図9は、本明細書で説明される一つ以上の方法をコンピュータシステムに実行させるための、実行され得る命令のセットを含む典型的なコンピュータシステム500のブロック図を図解する。コンピュータシステムは、LAN、イントラネット、エクストラネット、またはインターネットで、他のコンピュータシステムと結合されてもよい。コンピュータシステムは、クライアント−サーバネットワーク環境で、サーバまたはクライアントコンピュータシステムの立場において操作してもよく、またはピアツーピア(または分散型の)ネットワーク環境におけるピア(peer)コンピュータシステムとして操作してもよい。コンピュータシステムは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブ電化製品、サーバ、ネットワークルータ、スイッチまたはブリッジ、または、コンピュータシステムによって取得される動作を指定する命令のセット(逐次的またはそれ以外)を実行できる任意のコンピュータシステムであってもよい。さらに、単一のコンピュータシステムだけが図示されているが、「コンピュータシステム」という用語は、本明細書で説明される方法論の任意の一つ以上を実行するための命令のセット(もしくは多数のセット)を個別にまたは共同で実行するコンピュータシステムの任意の集合を含んでもよいと解釈されるべきである。
【0053】
典型的なコンピュータシステム500は、バス530を介してそれぞれ他と通信する、処理デバイス(プロセッサ)502、メインメモリ504(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ、シンクロナスDRAM(SDRAM)またはラムバスDRAM(RDRAM)のような動的ランダムアクセスメモリ(DRAM)など)、スタティックメモリ506(例えば、フラッシュメモリ、静的ランダムアクセスメモリ(SRAM)など)および、データ記憶デバイス518を含む。
【0054】
プロセッサ502は、マイクロプロセッサ、中央処理装置、または同種のものといった、一つ以上の汎用処理デバイスを表す。とりわけ、プロセッサ502は、復号命令セットコンピュータ(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサまたは命令セットの組み合わせを実装するプロセッサであってもよい。プロセッサ502は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、または同種のもののような、一つ以上の専用処理デバイスも含んでもよい。プロセッサ502は、本明細書で説明された操作およびステップを実行するための命令526を実行するように構成される。
【0055】
コンピュータシステム500は、ネットワークインタフェースデバイス522をさらに含んでもよい。コンピュータシステム500は、ビデオディスプレイユニット510(例えば、液晶ディスプレイ(LCD)またはブラウン管(CRT))、英数入力デバイス512(例えば、キーボード)、タッチスクリーン入力デバイス514、およびアクセレロメータ515も、含んでもよい。
【0056】
データ記憶デバイス518は、本明細書で説明された方法または機能のうち、任意の一つ以上を具現化する一つ以上の命令のセット526を格納する、コンピュータ可読記憶メディア524を含んでもよい。命令526は、メインメモリ504内、及び/又は、コンピュータ可読記憶媒体も構成している、コンピュータシステム500、メインメモリ504、およびプロセッサ502によって実行される間、プロセッサ502内に、完全にまたは少なくとも部分的に、存在してもよい。命令526は、ネットワーク516上でネットワークインタフェースデバイス522を介して、さらに送信または受信されてもよい。
【0057】
特定の実装において、命令526は、
図8の方法800に対応し得る注釈付きビデオコンテンツを表示する方法のための命令を含んでもよく、
図1のビデオプレイヤーアプリ190を使用して実行されてもよい。コンピュータ可読記憶媒体524が
図9の例でシングルメディアとなるように示されるが、「コンピュータ可読記憶媒体」という用語は、一つまたは複数の命令のセットを格納する、シングルメディアまたは複数のメディア(例えば、集中型または分散型のデータベース、及び/又はキャッシュおよびサーバに関連する)を含むように解釈されるべきである。「コンピュータ可読記憶媒体」という用語はまた、マシンによって実行される命令のセットを記憶、符号化または伝送できるか、またはマシンに本開示の任意の一つ以上の方法を実行させることが可能な、任意のメディアも含むと解釈されるべきである。「コンピュータ可読記憶媒体」という用語は、固体メモリ、光媒体、磁気媒体を含むと解釈されなければならないが、それに限定されるものではない。
【0058】
以上の説明において、多くの詳細が記載された。しかしながら、本開示は、これらの特定の詳細なしに実施できることが、この開示の利益を有する当業者には明らかであろう。いくつかの例において、周知の構造およびデバイスは、本開示を不明瞭にすることを避けるために、詳細よりもむしろブロック図の形で示される。
【0059】
詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズムおよび記号表現の用語で表示されている。これらのアルゴリズム的記載および表現は、データ処理分野の技術者が、彼らの業務内容を他の当該分野の技術者に伝えるために用いる最も効果的な手段である。ここでアルゴリズムは、一般に、望ましい結果を導くステップの首尾一貫したシーケンスであると考えられる。通常、必然ではないが、これらの量は、格納、結合、比較、およびその他の操作が可能な電気又は磁気信号の形をとる。これは、ビット、値、要素、記号、文字、用語、数字などと呼ぶために、主に共通利用の理由から、時に便利であることが証明されている。
【0060】
しかしながら、これらおよび類似の用語の全ては、適切な物理量に関連付られ、単にこれらの量に適用される便利なラベルであることに留意すべきである。具体的には以下の説明から明らかなように、特に説明しない限り、言うまでもなく、本説明全体を通じて、「決定」、「演算」、「計算」、「取得」、「識別」、「変更」等の用語を用いる説明は、コンピュータシステムのレジスタやメモリ、もしくは他のそのような情報の格納装置、伝送装置またはディスプレイ装置内の物理(電子)量として表わされるデータを操作し、変換するコンピュータシステムまたは類似の電子計算装置の動作および処理を指す。
【0061】
本開示は、本明細書の操作を実行するための装置にも関する。この装置は、要求された目的のために特別に構成されてもよく、あるいは、汎用コンピュータを選択的に活性化する、またはコンピュータに格納されたコンピュータプログラムによって再構成されることを含んでもよい。このようなコンピュータプログラムは、フロッピ(登録商標)ディスク、光ディスク、CD-ROM、および磁気ディスクを含む任意のタイプのディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気または光カード、または電子的命令を格納するのに適した任意のタイプのメディアといった、しかしこれらに限定されない、コンピュータ可読ストレージメディアに格納されてもよい。
【0062】
上記の説明は例示であって、限定を意図するものではないことが理解されよう。多くの他の実施形態は、上記の説明を読み取り、理解することにより当業者には明らかであろう。本開示の範囲は、従って、そのような請求項が権利を有しているために均等物の全範囲と共に、添付の特許請求の範囲を参照して決定されるべきである。