【実施例】
【0044】
3.0 インバンド・データの認識および同期の方法
上記したように、インバンド・データは、多くの形式をとることができる。そのような二つの形式は、字幕データおよびETV信号データを
含む。しかしながら、本発明は、字幕およびETV信号データに限定されず、他のタイプのインバンド・データにも適用できる点に注意すべきである。
【0045】
3.1 字幕データ
マルチメディア・コンテンツ・ストリーム内のインバンド・データの一つのタイプは、字幕データである。字幕データは、ユーザに表示するための字幕テキストとビデオ・プログラミングと連動する字幕制御を表すデータである。マルチメディア装置は、字幕データを認識することができ、かつ本願明細書に記載されるようなプロセスを用いて、さまざまな方法でアクションおよびイベントを字幕データに同期させることができる。
【0046】
マルチメディア装置は、マルチメディア・コンテンツ・ストリームを認識しかつ同期させるために、字幕データパターンを使用
することもできる。字幕データに利用可能なデータパターンのタイプは、
無数にある。例えば、異なったデータパターンが、実際の字幕テキスト、字幕制御データ、
および字幕データによって
規定されるその他のイベント内に存在
することができる。字幕データ内の異なったパターンの認識によって、DVRは、マルチメディア・コンテンツ・ストリーム内のイベントを識別することができる。
【0047】
字幕データ内のパターンを認識する1つの方法は、字幕テキストを表すハッシュ値を計算し、かつハッシュ値シーケンスのパターンを識別することによる。これにより、一実施例によれば、マルチメディア装置(例えば、DVRまたはサーバ)で、字幕データ
が解析され、
かつ字幕データに対応して
ハッシュ値が生成される。そして、ハッシュ値は、特定のビデオ
番組またはセグメント
に関連したハッシュ値シーケンスにコンパイルされ、さらにマルチメディア装置で
の処理
のために、コマンド・アンド・コントロール情報を
規定するメタデータと組み合わせられる。
【0048】
このハッシュ・シーケンスおよびメタデータは、
ハッシュ値シーケンス・データの形式で、マルチメディア装置(例えば、DVR)に提供される。マルチメディア装置は、字幕データ
を認識
しかつ字幕データと同期
するためにハッシュ値シーケンス・データを使用する。
マッチング・アルゴリズムは、字幕データから生成されたハッシュ値を、
マルチメディア装置がローカルに格納している複数のハッシュ・シーケンスとシーケンシャルに比較するために、マルチメディア装置により用いられる。一実施例によれば、
マッチング・アルゴリズムは、
ステートマシンによって実行され、このステートマシンは、生成されたハッシュ値
を処理し、かつハッシュ値シーケンス・データによって識別されたハッシュ・シーケンスとマッチングが生じたか否かを報告
する。
【0049】
3.1.1 ハッシュ値シーケンス・データの生成
一実施例によれば、字幕データを認識し、
かつアクションおよびイベントをコンピュータ・システムの字幕データに同期させるために、ハッシュ値シーケンス・データが生成され、
かつDVR 102および104などの装置に提供さ
れる。DVR 102および104の各々は、ユーザに表示するためのビデオ
番組を含む一つ以上のマルチメディア・コンテンツ・ストリーム
も受信する。本明細書で
規定されるように、ビデオ
番組は、DVRのユーザに再生される長編映画、バラエティーショー、トークショー、音楽ビデオ、ホームコメディ
番組、コマーシャル、テレビジョンの生放送またはその他のマルチメディア・コンテンツと
することができる。
【0050】
字幕データは、一実施例によれば、マルチメディア・コンテンツ・ストリーム
に関連したデータの分離したストリーム
に含ま
せることができる。例えば、プログラムがデジタル形式の場合、字幕データは
、MPEG2ストリーム内でプライベート・データ・チャネルの一部として通信される。しかしながら、アナログフォーマットで通信
されるときは、字幕データは、
これに代えて多数の標準規格方式でアナログTV信号の垂直帰線消去時間(VBI:Vertical Blanking Interval)に
変調される。例えば、FCCが、字幕(CC:Closed Caption)および拡張データサービス(EDS:Extended Data Services)
に対してはライン21の使用を
強制する
ので、
北米基本テレテキスト標準(NABTS:North American Broadcast Teletext Standard)は、NTSC信号のライン10〜20に情報を
変調するために使用することができる。しかしながら、アナログ字幕信号は、それらが
あたかもMPEG2プライベート
・データ・チャネルを介して配信されるかのように、DVRの入力モジュールによって復号化され、
かつDVRのその他の構成要素へ渡される。したがって、
上述したように、DVR 200の解析モジュール210は、もとがアナログまたはデジタル
の何れの形式で放送され
た字幕データ
であっても処理することができる。マルチメディア・コンテンツ・ストリームの字幕データの位置に関する詳細な情報は、出願人によって所有され、本願明細書に参照によって完全に組み込まれている、「字幕のタグ付けシステム(Closed-Caption Tagging System)」と称される米国特許出願09/665,921号に
見出すことができる。妻
【0051】
他の実施例では、字幕データは、マルチメディア・コンテンツ・ストリームに検出可能な形式で含
ませることができる。サーバ106AおよびDVR 200は、字幕データを読み込み
かつ解析することができる。
【0052】
字幕データ
を認識しかつ
アクションおよびイベントをマルチメディア・コンテンツ・ストリームの字幕データに同期させる処理の一部として、DVR 102および104の各々は、イベント識別データ
も受信する。一実施例によれば、イベント識別データは、ハッシュ値シーケンス・データである。ハッシュ値シーケンス・データは、多数のソース(例えば、サーバ106A)から
得られる。例えば、サーバ106Aは、マルチメディア装置に使用するために、ハッシュ値を計算し
かつハッシュ・シーケンスを決定することによって、
番組コンテンツを前処理することができる。
コンテンツ・プロバイダ106Bは、番組コンテンツ
を、マルチメディア装置
に放送
する前に、サーバ106Aに
提供することができる。このように、
サーバ106Aは、マルチメディア装置が
、関連する
番組コンテンツを受信する前に、マルチメディア装置にハッシュ・シーケンスを提供
することができる。これに代えて、シーケンス・データは、他のコンピューティング装置(例えば、他のDVR)から
得てもよい。
【0053】
図3Aには、一実施例によるハッシュ値シーケンス・データを生成するための方法を表すフローチャートが示され
ている。ステップ302で、サーバ106Aは、コンテンツ・プロバイダ106Bから一つ以上のビデオ
番組を表すデータを受信する。データは、マルチメディア・コンテンツ・ストリームの形式、または、マルチメディア・コンテンツ・ストリームから分離した個々のビデオ
番組データ
とすることができる。
コンテンツ・プロバイダ106Bは、サーバ106Aに、ビデオ
番組データとともに、
このビデオ
番組に関連した字幕データも供給する。
一実施例
では、字幕データは、コンテンツ・プロバイダ106Bによって供給されるビデオ
番組を含
むマルチメディア・コンテンツ・ストリーム内に埋め込む
ことができる。さらに、コンテンツ・プロバイダ106Bは、ビデオ
番組に関連したメタデータを含むイベント情報を提供
することもできる。
【0054】
サーバ106Aは、ユーザにビデオ
番組を表示する
間に、マルチメディア装置によって作動されるイベントまたはアクションを指定する情報を
規定する。この情報は、ユーザに表示するためのグラフィカル・アイコンまたは付
加コンテンツへの参照を含
むことができる。コンテンツまたはアイコンは、マルチメディア装置
に提示
されるが、
マルチメディア装置が、コンテンツまたはアイコンを、インターネット、ネットワークまたはその他のDVRを介して得
ることもできる。さらに、その情報は、ビデオ
番組内の特定のイベントを表すデータを提示
することもできる。例えば、スポーツ放送が別々の期間と休憩時間に分けられる場合、コンテンツ・プロバイダ106Bは、サーバ106Aに
、休憩時間がマルチメディア・コンテンツ・ストリームのどこで生じるかについて
示すイベント情報を提供することができる。この情報を使用して、サーバ106Aは、DVRが
、ビデオ
番組内で休憩時間の始まりと終わりを
自動的に識別すること
を可能と
する、ハッシュ値シーケンス・データを生成することができる。休憩時間が識別されたこと
により、DVRユーザは、録画された放送を視聴するときに、自動的に休憩時間をスキップすることを
DVRに要求することができる。
【0055】
さらに、一実施例によれば、サーバ106Aは、DVRのような任意のマルチメディア装置から、ビデオ
番組の字幕データを得ることができる。例えば、DVR 102は、既に字幕データを含んだビデオ
番組を録画
することもできる。DVR 102は
、サーバ106Aによる処理のため
のビデオ
番組に関連した字幕データを
含む録画されたビデオ
番組を
、ネットワーク105によりサーバ106Aに、送信することができる。
【0056】
ステップ304で、サーバ106Aは、ビデオ
番組の字幕データを解析して、ハッシュ値シーケンス・データを作成するのに使用
されるハッシュ値を
得る。サーバ106Aは、ハッシュ値を作成するために、多数の異なる方法を使用
することもできる。字幕データのハッシュ値の作成に使用される方法は、ビデオ
番組の視聴者に字幕テキストを表示する字幕ストリームによって使用される方法
ごとに異なる。
【0057】
これにより、サーバ106Aは、字幕データを表示するために
どの字幕モードが使用されているか
を常に追跡することができる。例えば、一実施例によれば、
詳細に本願明細書に記載されるように、字幕テキストは
、ポップアップ・モード、ロールアップ・モードまたはペイントオン・モードを使用して
、処理
しかつユーザに表示することができる。使用されるモードに応じて、ハッシュ値は、ハッシュ関数をテキスト・ラインの多数の文字に適用する結果を表す。ハッシュ関数Hは、可変サイズの入力mをとり、
かつh=H(m)となるハッシュ値hと称される、固定サイズの文字列を返す変換式である。
詳細に本願明細書に記載されるように、字幕データの可変サイズ入力は、使用される字幕方法による
であろう。さらに、一実施例によれば、字幕データのラインに
挿入することができる文字の量は、制限される。
【0058】
しかしながら、構文解析部312は、異なるシステムに適応するためにテキスト
のライン
内に如何なる数の文字
も受け入れるように構成
することができる。これにより、後述するように、構文解析部312は、字幕データ内で
個別のイベントを検出することに応答して、いつハッシュ値を生成するかを決定する。字幕データの範囲内の
個別のイベントは、コマンド(例えば、「キャリッジ・リターン」コマンド)と
することができる。「キャリッジ・リターン」コマンドは、テキスト
のラインの終わりまたは始まりを
規定するために使用
することができる。これにより、例えば、テキスト・ラインが完了するときに、「キャリッジ・リターン」は
、カーソル位置を次のラインにリセット
させるであろう。
【0059】
ハッシュ関数は、変化する
テキストのサイズから標準化されたハッシュ値を作成するのに役立つ。一実施例によれば、文字は、情報交換用米国標準コード(ASCII:American Standard Code for Information Interchange)によって
規定される
ものと同種の16進数を表すことができる。さらに、いくつかの字幕
の実施は、修正されたASCII標準規格を
、表示
代替シンボル(例えば、ビデオ
番組のオーディオにおける楽音)に利用
することもできる。
【0060】
一実施例によれば、解析モジュール210は、ハッシュ値を
作成するために、字幕データの16進表現にハッシュアルゴリズムを適用する。さらに、解析モジュール210は、使用される字幕方法よって、ハッシュ値を計算する方法を
変える。
【0061】
図3Bには、一実施例に従って、ハッシュ値シーケンス・データを生成するための方法を例示するブロック図が示され
ている。フレーム310A〜310Dは、106Aサーバで受信され
たマルチメディア・コンテンツ・ストリーム内のビデオ
番組のフレームを表す。一実施例によれば、ビデオ
番組は、30フレーム/秒のレートで再生される。フレーム310A〜310Dの各々は、フレームレートに従って特定時間
に表示される。例えば、フレーム310Aは、時間=1:00で生じ、フレーム310Bは、時間=1:05で生じる。このため、
フレームレートを30フレーム/秒とすると、フレーム310Bは、
フレーム番号151で、つまり、フレーム310Aから150フレーム後で生じる。
【0062】
フレーム310A〜310Dは
、マルチメディア・コンテンツ・ストリーム内の多数のフレームの中の4つの
個別のフレームにすぎず、多数のフレームが、310Aと310dの各々のフレームの間に存在
することもできることに注意すべきである。フレーム310A〜310Dにおいて、ハッシュ値は、それぞれ、テキストA〜Dに対して生成される。テキストA〜Dは、字幕ストリームの中に含まれるテキストであり、
かつフレーム310A〜310Dは、テキストに対して
ハッシュ値が生成される時間を表す。しかしながら、通常、字幕テキスト
は、一度に
二つ以上のフレームに対して表示
される点に注意すべきである。一実施例によれば、字幕データのための転送レートは
、ビデオの1フレームにつき2バイトであり、
かつテキストの全ライン
を伝送または受信
するためには数フレーム
が必要
である。テキストBは、例えば、フレーム310Bに先行
する複数のフレームを表示
することもできる。しかしながら、フレーム310Bは、ハッシュ値がテキストB
に対して生成されるマルチメディア・コンテンツ・ストリーム内に位置する。
【0063】
さらに、フレーム310A〜310Dの各々は、特定の時間に表示されるので、フレームが表示されているビデオ
番組またはマルチメディア・コンテンツ・ストリーム内
の時間を表す相対的時間データを含むメタデータを作成することができる。したがって、フレーム310B
は、1:05の時間にテキストBを表示
し、フレーム310Aは、1:00の時間にテキストAを表示
する。構文解析部312は、それぞれ、フレームのハッシュ値314A〜314Dおよび
これらのハッシュ値に関連したメタデータを生成するために、フレーム310A〜310Dの各々からテキストA〜Dを読み込む。しかしながら、ハッシュ値が生成されるたびに、メタデータを作成する必要
はない点に注意すべきである。
【0064】
他の実施例では、
構文解析部312は、何のテキストも表示していない付加的なフレーム
を解析してもよい。しかしながら、それらのフレーム
は字幕テキストを含まないので、ハッシュ値
は生成されない
であろう。
従って、より詳細に本願明細書に記載されているように、
構文解析部312は、トリガー・イベントが生じるまで、ハッシュ値を生成しない。使用される字幕方法に応じて、トリガー・イベントは、
異なるであろう。例えば、一実施例によれば、トリガー・イベントは、字幕データ内の「キャリッジ・リターン」コマンド
を識別
することである。「キャリッジ・リターン」コマンドが字幕データ内で検出されるとき、構文解析部312は、字幕テキストの一つ以上のラインがビデオ
番組内で
何秒に
もまたがることを表すハッシュ値を生成する。
【0065】
表320は、ハッシュ値のリストが
、フレーム310A〜310Dによって表されるビデオ
番組から
、構文解析部312によって生成されることを表す。表320は、ハッシュ値
の列、時間
の列および時間
のオフセット列を
含む。ハッシュ値
の列は、フレーム310A〜310Dに対して構文解析部312によって生成されたハッシュ値を表す。時間
の列は、各ハッシュ値が適切な字幕方法に従って生成された相対時間を表す。時間値
は、全マルチメディア・コンテンツ・ストリーム、
フレーム310A〜310Dを含む特定のビデオ
番組またはDVRの現実の
時計時間
に関連
させることができる。
【0066】
構文解析部312がフレームのハッシュ値を生成する
と、構文解析部312は、ハッシュ値が生成された時間を決定するために、DVR 200のタイミング・モジュール209に問い合わ
せをする。構文解析部312が
、時間
の列
における時間
の生成に同じ相対時間ユニットを使用する限り、DVR 200は
、生成されたハッシュ値とハッシュ値シーケンス・データ
との間の
時間差を正確に
追跡することができる。時間オフセット
の列は、あるハッシュ値
に関連した時間データとその後のハッシュ値
に関連した時間データの
差を
示す。例えば、ハッシュ値「3D59」は、時間オフセット値を有しないことが報告される。この場合、ハッシュ値「3D59」がハッシュ・シーケンスの始まりであると決定され、したがって、時間オフセット値は
不必要で
ある。しかしながら、ハッシュ値「2Z55」に対して
は、:
05秒の時間オフセット値が報告
されていて、これは、ハッシュ値「3D59」が生成されたあと、およそ:05秒でハッシュ値「2Z55」が生成されたことを
示す。この情報は、ビデオ
番組または、これに代えて、特定のイベントまたはDVRのビデオ
番組内の位置の開始点を
知ることに使用
することができる。
時間オフセット情報を使用してビデオ
番組にコンピュータ・システムを同期させる処理は、3.3節でより詳細に考察される。
【0067】
このように、構文解析部312は、ビデオ
番組内の字幕データを解析する。
図3Aに戻って参照すると
、構文解析部312がビデオ
番組の字幕データ
を解析してハッシュ値を得ると、サーバ106Aは
、ステップ306においてビデオ
番組に関連したハッシュ・シーケンスを生成
する。構文解析部312が、ビデオ
番組またはビデオ
番組セグメントのハッシュ値の特定の番号を生成することを完了すると、構文解析部312は、生成されたハッシュ値からハッシュ値シーケンス・データを作成する。
【0068】
ハッシュ・シーケンス内のハッシュ値の数およびハッシュ値によって表される時間の量は、構文解析部312、サーバ106Aまたはその他の装置
またはハッシュ値シーケンス・データの作成の制御を望むユーザによって
、任意に
設定することができる。例えば、コンテンツ・プロバイダ106Bが
、サーバ106Aに解析のために特定のビデオ
番組を供給し
ていた場合、コンテンツ・プロバイダ106Bは、5〜10秒間継続するビデオ
番組の特定部分の間、ユーザ入力を要求するアイコンが画面上に現れることを
示すことができる。
図3Dは、一実施例に従って表示画面に現れるこの種のアイコンを例示する図である。
図3Dによれば、表示画面400は、アイコン404を示す。アイコン404は、
ユーザ入力を要求するダイアログ404Aを含む。この例では、コンテンツ・プロバイダ106Bは、サーバ106Aに、ビデオ
番組の特定部分の間、
アイコン404が表示画面400上に現れることを要求する。ここで、構文解析部312は、ビデオ
番組の選択された部分の少なくとも10秒を
カバーするハッシュ値を生成するように構成することができる。これ
により、ハッシュ値の全シーケンスを認識し
かつビデオ
番組または部分を明確に識別するのに十分な時間
が、コンピュータ・システムに与え
られ、
ハッシュ値が、確実に、少なくともビデオ
番組の選択された部分に対して生成される。さらに、遅延または誤差の範囲を補償するために、構文解析部312は、ビデオ
番組の選択された部分より
広がった部分に対して、ハッシュ値を生成するように構成
することができる。
【0069】
これに代えて、任意のハッシュ値シーケンス・データの長さは、ハッシュ・シーケンス内に生成された各ハッシュ値が、ど
の程度ユニークであるかによって決定
することもできる。例えば、ある状況で、同じ字幕データ
が、結果
的に同じハッシュ値をもたらす可能性がある。2つのビデオ
番組がきわめて類似の字幕データ(例えば、
字幕テキストがごくわずかな2つのコマーシャル)を含む場合、それらは、
番組の最初の部分に対して同じハッシュ値を生成する可能性がある。しかしながら、構文解析部312が、特定のビデオ
番組に対してより長い間ハッシュ値を生成
すればするほど、ハッシュ・シーケンスは、よりユニークとなる。したがって、構文解析部312は、ハッシュ値シーケンス・データをビデオ
番組に
マッチングさせる精度を制御するために、ハッシュ・シーケンスに
含まれるハッシュ値の数を選択するように構成することができる。さらに、構文解析部312がハッシュ値を生成する
際、サーバ106Aは、メタデータをハッシュ値シーケンス・データ
に関連させ
ることができる。上記の実施例で考察
したように、関連
付けられたメデータは
、ユーザからの入力を要求するアイコン400が表示されることを
示すことができる。
【0070】
ハッシュ値が生成される
際、構文解析部312は
、各ハッシュ値が生成された時間
に関連
させた時間データを
含む。しかしながら、同じ字幕データまたは同じハッシュ値
でさえも、使用される字幕方法に従って、異なる時間に生成さ
せることもできる。
【0071】
図3Cには、異なる字幕使用方法が、一実施例によって示され
ている。字幕データは、
それぞれ、ポップアップ・モード340、ロールアップ・モード342またはペイントオン・モード346でユーザに表示される。
図3Cは、字幕ストリームからのデータを表
す着信CCデータ領域と、字幕テキストの出力または実際の表示を表す表示領域とを、ユーザに示す。
【0072】
3.1.1.1 ポップアップ・モード
ポップアップ・モード340において、一実施例によれば、テキスト
の1〜4のラインが同時に画面上に現れ、
一周期の間そこにとどまり、
次いで字幕テキストの次のライン
と入れ替わる。
【0073】
ポップアップ・モード340
では、バック・バッファ350Bに入れられ
、特定のフレームまたはフレームのシリーズ
に対して完結したテキスト
を表示
する準備ができる
と、
着信する字幕データが、単一の「フリップ・バッファ」コマンドによって表示される。このモード
では、「フリップ・バッファ」コマンドが発
せられると、ハッシュ値
が、表示され
つつあるテキストに対して生成される。「フリップ・バッファ」コマンドが発
せられると、バック・バッファ350Bのテキストは、テキストがディスプレイ360に表示されていることを表すフロント・バッファ350Aへ転送される。
【0074】
ポップアップ・モード
では、ディスプレイ360上の
ユーザへの可視テキストを変更する明確に
規定されたイベント
は、二つ
しかない。これらのイベントは、(1)バック・バッファ350Bのコンテンツがフロント・バッファ350Aに
置かれるように、バッファをフリップすること
と、(2)表示画面360上に表示されたテキストを消去すること
である。ポップアップ・モードにおけるハッシュ値の生成は
、フリップ・コマンドまたはイレーズ・ディスプレイ・メモリ・コマンドが処理されると、バック・バッファに構成されるテキストを
追跡し続け、
かつバック・バッファ350Bのテキストのハッシュ値を作成する
ことである。
【0075】
これにより、ポップアップ・モードで
は、構文解析部312は、バック・バッファ350Bにおいて構成され
つつあるテキストを
追跡するであろう。構文解析部312は、バック・バッファ350Bを監視すると共に、バック・バッファ350B
内に蓄積され
た如何なるテキストの値
の全てに対応するハッシュ値を
、常に、更新
する。最初、バック・バッファ350Bは、空である。テキストが各々のラインに構成され
つつある間、
構文解析部312は「カーソル配置」コマンドが発
せられる
のを待つ。カーソル配置コマンドは、新たなライン上へテキストカーソルを
挿入するために使用
することができる。カーソル配置コマンドに基づいて、構文解析部312は、ラインが完結し、
かつ特定のラインに対してハッシュ値を計算することを決定することができる。
【0076】
最終的に、フロント・バッファ350Aはクリアされ、バック・バッファ350Bはフリップ・バッファ・コマンドの発行によって
、フロントにフリップされる。バック・バッファ350Bがテキストの
複数のラインを含
むことができることに注意すべきである。複数のテキスト・ラインに対して単一のハッシュ値を生成するために、累積ハッシュ値
が、フロント・バッファ350Aに現れているすべてのテキスト・ラインに対して生成される。バック・バッファ350Bがフロント・バッファ350Aにフリップされると、累
積ハッシュ値が作成される。この
ように、テキストがバック・バッファ350B
にコンパイル
されつつある間に、構文解析部312は
、上述したように、各々のテキスト・ラインに対して個々のハッシュ値を
追跡し続ける。フロント・バッファ350Aにフリップ
されると、各々のラインのハッシュ値は
、合わせて結合されて、累
積ハッシュ値
が作成
される。
【0077】
一実施例によれば、構文解析部312がハッシュ値を生成する
と、構文解析部312は、タイミング・モジュール209からマルチメディア・コンテンツ・ストリーム
に関連した時間データ
も読み出す。タイミング・モジュール209は、マルチメディア・コンテンツ・ストリームの開始、カレンダー時間、最後のハッシュ値以降の時間またはマルチメディア・コンテンツ・ストリームの範囲内のビデオ
番組の始まり
に対する時間、マルチメディア・コンテンツ・ストリームのタイミングを
示すことができる。したがって、
図3Bへ戻って参照すると、例えば、構文解析部312は、フレーム310AのテキストAが時間=1:00でフロント・バッファ350Aにフリップされ、
かつ対応する
「3D59」のハッシュ値を有することを決定する。
【0078】
3.1.1.2 ロールアップ・モード
字幕テキストを表示するための他のモードは、ロールアップ・モード342である。(ニュースまたはトークショーのような生放送で、より一般的である
ロールアップ・モード342)
では、テキストは、話すのと
殆ど同時にタイプされ、
かつ受信されるとすぐにテレビジョン上に現れる。「キャリッジ・リターン」コマンド
が受信
されると、テキスト
はスクロールアップする。キャリッジ・リターン・コマンドは、カーソル
をラインの開始に戻らせるコマンドである。カーソルが新しいラインの開始に
既に戻
っているので、キャリッジ・リターンは
、新しいラインが構成され
つつあることを示すために使用
することができる。一実施例によれば、フレームXがテキスト・ライン1を
含み、
続いて、着信CCデータ350Cが、テキスト・ライン2〜4のようなテキストを含むように、最初、ディスプレイ360上のテキストを構成
することができる。テキスト・ライン2が表示される準備ができる
と、テキスト・ライン2は
、ディスプレイに「ロールアップ」
し、テキスト・ライン1
をディスプレイ360のフレームY
内でシフト・アップ
させる。一実施例
では、フレームYは、2つのテキスト・ライン
しか表示することを可能
にしない。これにより、その後のフレーム
では、テキスト・ライン3が表示される準備が
できると、テキスト・ライン1は削除され、テキスト・ライン2は
、上方へ移動し、ディスプレイ360上
のテキストの第2行を占める
であろう。これに代えて、
任意の数のライン
を、ロールアップ・モードでの字幕
に対し供給することができる。
【0079】
一実施例によれば、ロールアップ・モードにおいてハッシュ値を生成するために、構文解析部312は、テキスト・ラインを監視し、
かつキャリッジ・リターン・コマンドのリス
ンする。構文解析部312が
、この種のイベントが生じたと決定すると、構文解析部312は
、対応するテキストのハッシュ値を生成する。これにより、テキスト・ラインが完結すると、ハッシュ値
が生成され、
かつ字幕データは
、ラインの終わりを示す
個別のユーザ可視イベントを含む。画面上に表示されるテキスト・ライン
の全てに対して累
積ハッシュ値を作成することとは対照的に、
ロールアップ・モードは、画面上に現れるたびに、可視テキスト・ラインの各々に対してハッシュ値を生成し
かつ報告する。
【0080】
例えば、一実施例によれば、テキストが1つのライン(例えば
、フレームYのテキスト・ライン1
)スクロール・
アップされると、
構文解析部312は、テキスト・ラインが完結していると決定することができる。構文解析部312は、着信CCデータ350内で「キャリッジ・リターン」コマンドを検出すると、テキスト・ラインが完結していることを検出することができる。したがって、
図3Bへ戻って参照すると、例えば、構文解析部312は、フレーム310Bで「キャリッジ・リターン」コマンドを検出した後に、テキストBと一致するテキスト・ラインが完結していることを決定し、
かつ時間=1:05での「2Z55」のハッシュ値を計算する。
【0081】
3.1.1.3 ペイントオン・モード
他の字幕モードは、ペイントオン・モード344である。着信CCデータ350Dがフロント・バッファ上に直接構成されることを除いて、ペイントオン・モード344は
、ポップアップ・モード340
と同様であり、
かつフロント・バッファのコンテンツがディスプレイに直接供給されるので、視聴者は
、構成され
つつあるテキストを見ることができる。一実施例
では、ハッシュ値を生成するために、
構文解析部312は、全テキスト・ラインが完結した後に、第1のユーザ可視イベントが生じ
るのを待つ。したがって、ペイントオン・モード344におけるハッシュ値を生成する一つの方法は、表示され
つつあるテキスト・ラインを蓄積することと、そのラインが完結してそのラインのハッシュ値が生成された後に、第1のユーザ可視イベントを待つこと
とを
含む。第1のユーザ可視イベントは、他のライン、画面のクリアリングまたはポップアップ・モードの新しいテキストを表示する「フリップ・バッファ」コマンドの始まり
としてもよい。
【0082】
3.1.2 ハッシュ・シーケンス・メタデータ
使用されている字幕モードのタイプに関係なく、構文解析部312がビデオ
番組に関連したハッシュ値を生成する
と、ハッシュ値は
、付加データ(例えば、ハッシュ値の各々に対
する時間および時間オフセットデータ)とともに表320に
置かれる。表320の累積データは、例えば
、ハッシュ値シーケンス・データが
、サーバ106Aのような装置によって生成されることを表す。
【0083】
ハッシュ値シーケンス・データが生成されると、付加メタデータは
、ハッシュ・シーケンス
に関連
させることができる。一実施例によれば、付加メタデータは、ハッシュ・シーケンスの認識に応じて、いくつかのアクションを実行するためのコマンド・アンド・コントロール・データを含
むことができる。
【0084】
したがって、
図3Bに戻って参照すると、表330は、ハッシュ・シーケンス
に関連したハッシュ・シーケンスおよびメタデータを表
す列を
含む。一実施例によれば、ハッシュ・シーケンス3D59、2Z55、A6E3および9Y95は、一つのイベントのイベント1を記載するメタデータを
含む。イベント1は、特定の時間で生じるマルチメディア・コンテンツ・ストリーム内のイベントと
することができる。例えば、イベント1は、スポーツ・イベントの間の休憩時間のようなビデオ
番組内の特定位置を
規定することができる。イベント1を
規定するメタデータは、付加情報(例えば、
ビデオ番組内容の記述およびイベントを認識した後にと
られるその後のアクション)を包含
することができる。例えば、イベント1は、イベント1の時にプログラム・ストリームにタグを挿入するためのタグ情報を
含むことができる。タグは、ユーザがイベント1を直接閲覧し、または、これに代えて、再生中にイベント1をスキップする
操作を可能にする。マルチメディア・コンテンツ・ストリームのタグの機能は、本出願人が所有し、かつ本願明細書に参照によって完全に組み込まれている、「字幕のタグ付けシステム(Closed-Caption Tagging System)」と称される米国特許出願09/665,921号に詳述されている。
【0085】
表330を参照すると、メタデータは、特定のアクション(例えばハッシュ・シーケンスA6E3、9Y95、E4E9および9F4U
に関連したアクション1)を指定
することができる。一実施例によれば、アクション1は、ハッシュ・シーケンスを認識した後にと
られるDVRの特定のアクションを記載することができる。例えば、アクション1は、DVRのユーザにアイコンを表示することを含
むことができる。
アクション1を
規定するメタデータは、
アクションの長さに関するタイミング情報、グラフィクスに関する情報、およびDVRに接続
されている表示装置上のアイコン配置を含
むことができる。メタデータによって指定されるアクションは、ハッシュ・シーケンスを認識する時間と異なる時間に行ってもよい点に注意すべきである。例えば、メタデータは、アクションがハッシュ・シーケンスの認識の前に一度に行われることを
示すこともできる。このように、プログラムが格納装置域から再生される場合、DVRは、前方を走査し、ハッシュ比較を実行し、適切な時間にアクションを実行することを知る。
【0086】
他の実施形態では、アクション1は、DVRが処理するためのコマンド・データを含
むことができる。コマンド・データは、DVRにマルチメディア・コンテンツ・ストリームの一つ以上の部分を録画しかつ格納
させることができる。例えば、特定のビデオ
番組の生放送の間、DVRが
、C、D、E、Fのハッシュ・シーケンスを認識して、ハッシュ・シーケンス
に関連したコマンド・データを処理する場合、コマンド・データは、直ちにDVRにプログラムの録画を
開始させる。他の実施態様
では、コマンド・データは、DVRに
、ハッシュ・シーケンスの認識の後、いつでも生放送の録画を
開始させることができる。
【0087】
さらに、ハッシュ・シーケンス
に関連したメタデータは、指定されたイベントまたはアクションに限定される
ものではなく、DVRまたはメタデータを受信する装置によって理解され、処理することができるデータと
することができる。
【0088】
3.1.3 マルチメディア装置によるハッシュ・シーケンスの認識
サーバ106Aが
既にハッシュ値シーケンス・データを蓄積
している場合には、サーバ106Aは、
DVRまたはその他の装置にハッシュ値シーケンス・データを送信し、DVRまたはその他の装置は、ハッシュ値シーケンス・データを使用して字幕データを認識し、かつこの字幕データを使用しているビデオ
番組に同期させる。
図4には、字幕データを認識し、かつ
アクションとイベントを字幕データに同期させる処理の概要を記述するフローチャートが、示されている。ステップ402で、DVR 102は、サーバ106Aから
、図3Bの表330
に表されるハッシュ値シーケンス・データを受信する。一実施例
では、「プル」処理
として知られている場合には、DVR 102は、サーバ106Aにハッシュ値シーケンス・データの要求を始めた後に、ハッシュ値シーケンス・データを受信する。これに代えて、「プッシュ」処理として知られている場合では、サーバ106Aは、DVR102からの要求
無しに、
DVR102にハッシュ値シーケンス・データを自動的に送信することができる。DVR 102
は、ハッシュ値シーケンス・データを受信すると、記憶装置214にハッシュ値シーケンス・データを格納する。
【0089】
ステップ404で、DVR 102は、ユーザ
に表示
するためのマルチメディア・コンテンツ・ストリームを受信する。一実施例によれば、マルチメディア・コンテンツ・ストリームは、入力モジュール202Aから受信
することができ、かつコンテンツ・プロバイダ106B
が現在放送
しつつあるマルチメディア・コンテンツを表
すことができる。これに代えて、マルチメディア・コンテンツ・ストリームは、DVR 102の記憶装置214から再生
することもできる。さらに、他の実施例では、DVR 102は、マルチメディア・コンテンツ・ストリームを
ユーザに表示せずに、放送またはインターネット経由でマルチメディア・コンテンツ・ストリームを受信
することもできる。したがって、DVR 102は、コンテンツ・プロバイダ106Bからコンテンツを受信することができ、
かつ記憶装置214
にコンテンツを格納することができる。
【0090】
マルチメディア・コンテンツ・ストリームが録画または再生
されつつある間、ステップ406で、DVR 102は
、マルチメディア・コンテンツ・ストリーム
に関連した字幕データの解析を始める。
【0091】
解析モジュール210は、
図3Bのサーバ106A
を参照して上述した方法と同様にして字幕データを解析する。
従って、解析モジュール210は、使用される字幕方法(すなわち、ポップアップ、ロールアップまたはペイントオン)に従って、字幕データを解析
して複数のハッシュ値を得る。ハッシュ値を生成している間、解析モジュール210は、
パターン識別ステートマシン212に、ハッシュ値および各ハッシュ値に関連したタイム・スタンプを送信し、パターン識別ステートマシン212は、DVR 102が、サーバ106Aまたはその他のソースからダウンロード、格納、または受信したハッシュ値シーケンス・データのいずれかと、ハッシュ値を比較し、かつ
マッチングするために使用される。
【0092】
ステップ408で、パターン識別ステートマシン212は、解析モジュール210によって生成され
たハッシュ値を監視し、
かつハッシュ値をステップ402で受信され
たハッシュ値シーケンス・データと比較するために、使用される。一実施例によれば、パターン識別ステートマシン212は、ステップ402で受信されたハッシュ値シーケンス・データに
従って構
築されたステートマシンである。
【0093】
具体例の目的のために、パターン識別ステートマシン212
は、ノードおよび分岐を含
むツリーの構造をとると仮定する。
ツリーの各ノードは、ハッシュ値のシーケンス内の特定のハッシュ値を表すことができ、
かつツリーの各「枝」は
、ハッシュ値シーケンス・データによって識別された全ハッシュ・シーケンスを表す。後述するように、この構造は
、図5Aにおいて
詳細に説明される。パターン認識ステートマシン212は、
ツリーのノードを移動させることによって生成されたハッシュ値
をマッチングさせることを試みる。
何れかの所定のノードで、
マッチングが生じる
と、パターン識別ステートマシン212は次のノードへ進む。
以前のノードがハッシュ値シーケンスの終わりを表す
と、
マッチングが生じ、
かつパターン識別ステートマシン212は、ハッシュ値シーケンスが識別されたことを
示すことができ、
その結果、本願明細書に詳細に説明したように、DVR 200に適切なアクションを実行させる。
【0094】
それゆえ、ステップ510で、パターン識別ステートマシン212は、解析モジュール210によって生成される
任意のハッシュ値が、ハッシュ値シーケンス・データ内に含まれるハッシュ値に
マッチングするか
否かを決定する。ハッシュ値が
マッチし、ハッシュ値イベント間の時間差が、予想されるハッシュ・シーケンスの閾値内にある限り、肯定的な
マッチングが報告される。
【0095】
図5Aに
は、一実施例によ
る、パターン識別ステートマシンの形式のハッシュ値シーケンス・データが示され
ている。ハッシュ値シーケンス・データは、ハッシュ値シーケンス内の個々のハッシュ値を表
すノードを含むステートマシン5
00によって表される。一実施例によれば、ステートマシン5
00は、ステートマシンの開始ステートを表すスタート・ノード502を含む。
【0096】
一実施例によれば、ステートマシン5
00のノード
には、ハッシュ値シーケンス・データにおいて識別され
たハッシュ・シーケンスの第1のハッシュ値に従って
、インデックス
が付けられる。ステートマシン5
00
は、初期化
された後、
まず、第1のノード504のハッシュ値が
、解析モジュール210によって生成され
たハッシュ値に
マッチングするか
否かを決定
することができる。
マッチしない場合、ステートマシン5
00は
、インデックス501
を続け
て移動させ、次のノード520をテストする。まれであるが、異なるハッシュ値シーケンスが、同じハッシュ値から開始する可能性があることに注意すべきである。したがって、ハッシュ値「3D59」から開始するハッシュ・シーケンスを表
すノード504は、異なるハッシュ値シーケンス((1) 3D59、2Z55、A6E3および9Y95、または、(2) 3D59、2Z55、E4E9および9F4U)を表
す2つの異なった分岐を含む可能性がある。
【0097】
一実施例によれば、ステートマシン500は、DVR 20
0の軽量の構成要素であり、これは、ステートマシン500が
、DVR 200の動作の間、最小のシステム・リソース
しか使用しないように設計されていることを意味する。したがって、ステートマシン500
が、ハッシュ値シーケンスが
すでに認識され
ているか
否かを決定するために、何万ものノードを移動
しなければならない場合でさえ、ステートマシン500を動作するために
は、ほんの少しのシステム・リソースしか、必要とされない。したがって、DVRユーザは、ステートマシン500
が動作
している間、マルチメディア・コンテンツの再生にお
ける如何なる遅延または性能低下にも気づ
くことはない
であろう。
【0098】
一実施例によれば、ステートマシン500の効率は、インデックス501を使用することによりさらに
向上する。インデックス501
内の各ハッシュ・シーケンス内の第1のハッシュ値にインデックスを付けることによって、ステートマシン500は、多くのシステム・リソースを
使用することなく
相対的に大量のハッシュ・シーケンスを素早く除外することができる。
【0099】
解析モジュール210から生成されたハッシュ値
の処理を開始するために、ステートマシン500は、初期化さ
れ、そしてインデックス501に
より指定され
たノード
のテスト
を開始する。一実施例によれば、解析モジュール210によって生成され
た第1のハッシュ値は、
図3Bのフレーム310AのテキストAに対応する「3D59」である。したがって、ステートマシン500は
、起動され、ハッシュ値「3D59」を表
す第1のノード504をテストし、
かつマッチングを見
出すと、肯定的な出力を与える。この実施例によれば、
マッチングの成立はステートマシンを右へ進ませ
、マッチングの不成立はステートマシンを下位レベルに移動させる。しかしながら、他の実施例では、ステートマシン500は、ハッシュ値をテストするのに適
するいかなる
態様でも構築さ
せることができる。
【0100】
しかしながら、「2Z55」のハッシュ値が
、解析モジュール210によって最初に報告されたと仮定する。第1のノード504での
マッチングを
見出す代わりに、ステートマシン5
00は
、否定的な出力を報告し、
かつハッシュ値「2Z55」を表すインデックス501
内の次のノード520まで進む。これに代えて、
マッチングが特定ノードで見つけられない場合、ステートマシン5
00は、ステートマシン
をリセットし
かつスタート・ノード502を再度開始させ
る、失敗ノード515へ進むこともできる。
【0101】
それゆえ
、インデックス501
内の第1のノードで
マッチングが生じたと仮定
すると、ステートマシン212は
、解析モジュール210から次
に生成されたハッシュ値を待つ。一実施例
では、次
に生成されたハッシュ値は、「2Z55」である。それゆえ、ステートマシン5
00は、「2Z55」を次のノード506
内の値と比較する。次のノードの値もまた「2Z55」であるので、ステートマシン5
00は
マッチングを見出
し、そしてノード508へ進む。しかしながら、
マッチングがノード506で見
出せない場合、ステートマシン500は、失敗ステートへ進ま
ず、代わりに、「E4E9」を表すノード507でハッシュ値に
マッチングすることを試みる点に注意すべきである。このように、
ノード506は、2つのハッシュ値シーケンスが
、それぞれ、「3D59」および「2Z55」のハッシュ値から始めることができ
る、ステートマシン500の分岐を表す。
【0102】
解析モジュール210によって生成され
たハッシュ値を受信する
と、
ステートマシン500は、マッチングが
発生
しなくなるまで、または、ハッシュ・シーケンスの終わりが識別されるまで、シーケンシャルに、
図5に表される各ノードを移動
する。さらに、ハッシュ値のシーケンスの各ハッシュ値
とハッシュ値を
マッチングさせる間、ステートマシン500は
、解析モジュール210によって生成され
たハッシュ値とハッシュ・シーケンス内のハッシュ値との間で時間オフセットを比較する
こともできる。両方のハッシュ値が
マッチし、両方のハッシュ値の時間オフセット値が
マッチングすると、ステートマシン500は
、肯定的な
マッチングが生じたと決定することができる。他の実施形態では、ステートマシン500は、「バッファ」または誤差の範囲を許容することによって、特定のハッシュ値が
、ハッシュ・シーケンス内でハッシュ値の時間オフセットに
マッチングしたと決定
することができる。この特定の例によれば、ステートマシン500は、
図3Bの構文解析部312によって生成され
たそれぞれのハッシュ値を受信した後に、3D59、2Z55、A6E3および9Y95のハッシュ・シーケンスに対して
、マッチングが生じたと決定する。
【0103】
マッチングが見
出せない
場合に、次のハッシュ値が解析モジュール210から受信されると、ステートマシン500は
、スタート・ノード502および再初期設定の
マッチング処理をリセットする。
【0104】
DVR 200
が動作
している間、ステートマシン500は、ハッシュ値シーケンスとハッシュ値
がマッチングすることを連続的に試みている点に注意すべきである。ステップ412で
、ハッシュ・シーケンス
全体に
対し肯定的なマッチングが作成される
と、ステートマシン500は、
マッチングの成功を報告し、DVR 200に
、ハッシュ値シーケンス・データ
に関連したメタデータを検査させる。
【0105】
他の実施態様
では、ステートマシン500は、
ハッシュ表を利用して、ハッシュ値シーケンス・データとハッシュ値
がマッチングすることを試みる。ハッシュ表は、配列(または検索されるデータが格納されるテーブル)およびマッピング機能で構成されるデータ構造である。ハッシュ表は、サーチ・アルゴリズムで一般的に使用される、周
知のデータ構造である。
【0106】
さらに、もう一つの実施例では、DVR 200は、複数のステートマシンを含む。一度に二つ以上のステートマシンを動
作させることによって、ハッシュ値の同じシーケンス内の複数のパターンを識別することができる。例えば、「X6Y6、A4Z4およびB1C1」のハッシュ値が
、マルチメディア・コンテンツ・ストリームから生成されたと仮定
しよう。また、「X6Y6、A4Z4」および「A4Z4、B1C1」の2つの既知のパターンが
、存在すると仮定
しよう。一つのステートマシンがDVR 200上で動いているとす
ると、それらのパターンのうちの1つ
しか認識され
ないであろう。しかしながら、DVR 200
は、二つ以上のステートマシン
を同時に動
かすことができるので、DVR 200は
、「X6Y6、A4Z4およびB1C1」のハッシュ値から「X6Y6、A4Z4」および「A4Z4、B1C1」の両方のパターンを認識することができる。したがって、他の実施例では、DVR 200は
、複数のステートマシンを含
むことができ、
かつ各ステートマシンは
、インバンド・データの異なるパターンを表すことができる。
【0107】
図5Bには、
一実施例のハッシュ値シーケンス・データが、示され
ている。ハッシュ値シーケンス・データは、シーケンス・データ520Aおよびメタデータ520Bを含む。シーケンス・データ520Aは、
ハッシュ値のシーケンスとハッシュ値の発生の間の近似の時間差
とを表すデータに対応する。これにより、上
述したように、ステートマシン500は
、特定のレベルで
マッチングが見
出せなくなるまで、または、ハッシュ・シーケンスの終わりに
すでに遭遇している場合、
図5Aに図示
されるように、ノードを移動
する。一実施例によれば、パターン認識ステートマシン212は、ハッシュ値3D59、2Z55、A6E3および9Y9
5のシーケンスが、生成された
各ハッシュ値間の時間差に基づいて
、解析モジュール210から同じハッシュ値の生成
とすでにマッチし
ていたことを決定する。
【0108】
3.1.4 字幕データの同期
DVRが、パターン
マッチングが
既に生じ
ていると決定した場合には、
DVRは、上記のメタデータを使用して、マルチメディア・コンテンツ・ストリームに同期
させる。特に、DVRは、
メタデータを使用して、マルチメディア・コンテンツ・ストリーム内のイベントまたはビデオ
番組の相対的位置関係を決定する。このように、DVR 102が
、ハッシュ値の特定のシーケンスが生成
されたと決定する
と、DVR 200は、
メタデータ520Bを参照して、と
られるアクションを決定する
であろう。メタデータ520Bは、コマンド・アンド・コントロール情報、プログラム・タイミング、コンテンツ情報、表示命令およびグラフィック情報
のような情報を含
むことができる。さらに、メタデータ520Bは、コマンド・データ522を含むこともできる。
【0109】
パターン認識ステートマシン212が
、マルチメディア・コンテンツ・ストリームからのハッシュ値が特定のハッシュ・シーケンスに
マッチングすると決定すると、ステップ412で、DVRは、ハッシュ・シーケンス
に関連したハッシュ・シーケンス・メタデータを検査し、
かつそれに応じて
応答する。
DVR 102のようなDVRは、多くの異なる方法で応答し、ハッシュ値の
シーケンスに応答することができる。例えば、メタデータは、DVRがビデオ
番組内のイベントの認識、ビデオ
番組または全マルチメディア・コンテンツ・ストリームの同期、ユーザへの情報の表示、または、今後のプログラムを録画することができる情報を
含むことができる。さらに、他の実施例では、メタデータは、DVRがマルチメディア・コンテンツ・ストリーム、ビデオ
番組またはDVRの動作(例えば、コマーシャルのスキップおよびその他のコンテンツ)
に関連するあらゆるアクションを実行することを可能にする情報を
含むことができる。
【0110】
図6には、
一実施例に従う、インバンド・データにアクションおよびイベントを同期させるための方法を例示するブロック図が、示されている。
表606はハッシュ値シーケンス・データを表し、表608は、特定のハッシュ・シーケンス
に関連したメタデータを表す。この特定の例では、表606は、3D59、2Z55、A6E3および9Y95
のハッシュ・シーケンスと、各々のハッシュ値の時間および時間オフセット値を保
持する。上述
したように、この情報は、サーバ106Aまたはその他のソースから受信されて、パターン認識ステートマシン212の形式でDVR 102に配置される。コンテンツ600は、マルチメディア・コンテンツ・ストリームが一つ以上のビデオ
番組を含
むことを表す。マルチメディア・コンテンツ・ストリーム600を再生または録画している間、DVRは、(両者とも本出願人が所有し、かつ本願明細書に参照によって完全に組み込まれている、「マルチメディア経過表示システム(Multimedia Progress Indication System)」と称される米国特許6,850,691号および米国特許出願10/915,990号に記載されている)、
番組要素を表す
番組・キャッシュ・バーを横断するスライダ604を使用して、コンテンツ・ストリーム600内の再生位置を
示す。この特定の例では、スライダ604は、現在、マルチメディア・コンテンツ・ストリームまたはビデオ
番組の時間1:12にある。コンテンツ・ストリーム600を再生する間に、
DVRは、構文解析モジュールを使用し
て、
スライダ604によって示される位置である、時間:00でハッシュ値「3D59」、時間:05でハッシュ値「2Z55」、時間:10でハッシュ値「A6E3」および時間:12ハッシュ値「9Y95」を生成する。
【0111】
ハッシュ値と生成された対応する時間データとにより、DVRは、ハッシュ値が表606に配置されるハッシュ値シーケンス・データに
マッチングすることを決定する。一実施例によれば、DVRは、実際のハッシュ値だけでなく各々のハッシュ値の時間オフセットも比較することによって、
ハッシュ値をハッシュ値シーケンス・データに確実に
マッチングさせることができる。
【0112】
マッチングを決定した後、DVRは、
マッチングがプログラム内のどこに配置されているかを知る。具体的には、DVRは、スライダ604が
、ハッシュ値シーケンス・データに従って
、番組の指定された始まりの初め
から12秒後に配置され
ていると決定する。次に、DVRは、
表608に配置されているメタデータ情報を調べ、ハッシュ値シーケンス・データと
マッチングすることに応答してとられる適切なアクションを決定する。一実施例によれば、表608は、イベント1が時間:10で行われることを
示す。スライダ604の現在位置を調べることによって、DVR 102は、イベント1がスライダの現在位置の:02秒前に行われると算出することができる。イベント1が、ユーザに10秒間アイコンを表示することを規定している場合、DVR 102は、イベント1の始まりからすでに2秒が過ぎていることを知っているので、DVR 102は、直ちにアイコンを8秒間表示する
ことができる。再生されつつあるプログラムが、録画
されているものの場合、またはユーザが、生放送を再生しているが、その再生位置が実際の放送より遅れている場合、DVR 102は、現在の再生位置の前方をスキャンし、
かつ現在の再生位置の前方のハッシュ値を算出
することができる。これによって、DVR 102が、イベント
に関連したいかなるアクションの作動もより正確
にすることができる。
【0113】
さらに、表608の検査後、DVR 102は、イベント2がビデオ
番組の時間:40で行われると決定することができる。ビデオ
番組の内の現在位置を調べた後に、DVR 102は、イベント2が、最後のハッシュの:28秒後に行われると決定する。DVR 102が、マルチメディア・コンテンツ・ストリーム内のイベント1および2の正確な位置を決定することができるので、DVR 102は、それらのイベントに
いかなる態様でも応答できるようにプログラムすることができる。例えば、一実施例によれば、イベント2の間、ユーザにアイコンを表示するように、DVR 102に
命令することができる。他の実施形態では、DVR 102を、イベント2でマルチメディア・コンテンツ・ストリームの録画を開始するようにプログラムすることができる。このようにして、イベント1または2を識別する情報を、ビデオ
番組600内の異なったイベントを識別するために使用する
ことができる。さらに、他の実施例では、表608は、DVRがハッシュ・シーケンスの認識に応じてとるべきその他のイベントまたはアクションを
規定することができる。例えば、ハッシュ・シーケンス3D59、2Z55、A6E3および9Y95を認識した後に、テーブル608は、DVRが表示装置上の
対話型アイコンを直ちにユーザに表示することを
示すことができる。
【0114】
さらに、DVR 102が、ビデオ
番組の範囲内でイベント1および2を認識すると、DVR 102は、イベント1および2の位置でマルチメディア・コンテンツ・ストリームにビデオ・タグを挿入する
ことができる。一実施例によれば、ビデオ・タグは、ビデオおよび音声データ(例えば、MPEG-2ストリーム)を含
むマルチメディア・コンテンツ・ストリームにインタリーブされるデータ・オブジェクトである。ビデオ・タグが、マルチメディア・コンテンツ・ストリームに入れられたあと、マルチメディア・コンテンツ・ストリームは、後の再生のために格納される。再生されるときに、DVR 102は、マルチメディア・コンテンツ・ストリームを処理し、かつイベント1および2の正確な位置でビデオ・タグに遭う。このように、ビデオ・タグが、マルチメディア・コンテンツ・ストリームに
置かれると、イベントまたはアクションが、再生中にビデオおよび音声データとともに自動的に処理されるビデオ・タグによって
規定されているので、VRは、もはやマルチメディア・コンテンツ・ストリームに同期させるために字幕データを認識する必要はない。ビデオ・タグは、
本出願人が所有しかつ本願明細書に参照によって完全に組み込まれている、「字幕のタグ付けシステム(Closed-Caption Tagging System)」と称される米国特許出願09/665,921号で考察されている。
【0115】
上記の処理がDVR 102に関して記載されているが、
この方法は、このようなステップ(例えば、DVR104、PC101Aまたは携帯機器101B)を実行
することができるその他の装置によって実行
させることができる。
【0116】
3.2 エンハンスト・テレビジョン・信号データ
インバンド・データパターンの認識に使用することができる他のタイプのインバンド・データは、エンハンスト・テレビジョン(ETV)信号データである。ETVは、
対話型アプリケーションの使用を、マルチメディア・コンテンツ・ストリームのその他のビデオ・サービス
により配信される「インバンド」
とすることを可能にする。インバンド・アプリケーション
をビデオ
番組に同期するために、ETVは、ビデオ
番組のタイミングに
適合させたコマンド信号を利用する。インバンド・データ伝送の信号性能に関する詳細な情報は、ビデオ・サービスのタイム・ラインに同期させたインバンド・データ伝送の信号性能を特定するOpenCable Enhanced TV Application Messaging Specification (ETV-AM-I02)で入手可能である。
【0117】
一実施例によれば、ETVが使用可能なマルチメディア装置は、ETVコマンド信号を受信し、
かつ処理するためのETVエージェントを
含む。ETVコマンド信号は、マルチメディア装置に
、特定の時間にETVアプリケーションを発見、ダウンロード、起動、終了させる。これにより、一実施例によれば、マルチメディア装置は、ETVマルチメディア・コンテンツ・ストリーム内のアプリケーションの始まりまたは終わりを
規定するETV信号データのパターンを認識することができる。これは、
解析モジュール210を使用して、ETV信号データを
、マルチメディア・コンテンツ・ストリームから識別し
かつ抽出する
ことにより、実行
することができる。さらに、ETVコマンド信号は、付加情報(例えば、ETVコンテンツまたはプログラミングを記載している情報)を
含むことができる。加えて、ETVコマンド信号は、適
切な時間でETVアプリケーションを処理するための時間データ
に関連
している。この時間データを使用して、マルチメディア装置は、マルチメディア・コンテンツ・ストリーム内の相対位置を識別することができる。したがって、マルチメディア装置は、
ETV信号データを解釈して、(a) ETVイベントが生じていること、(b)ETVイベントがビデオ
番組の特定の部分またはセグメント
に同期されること、を決定することができる。
【0118】
これにより、字幕データのハッシュ値シーケンスを認識することと同様に、パターン認識ステートマシン212を使用して、
ETVコマンド信号およびタイミング情報のパターンを認識することができる。ETVアプリケーションが
、付随するビデオ
番組にすでに同期されているので、マルチメディア装置は
、ETV信号データのパターンを認識することによって、マルチメディア・コンテンツ・ストリームに同期することができる。字幕データ
により、マルチメディア装置がパターンを認識すると、マルチメディア装置は
、字幕データに同期しているアクションおよびイベントに関して上述したアクションと同様なアクションをとることができる。
【0119】
4.0 カスタマイズされたマルチメディア・セグメントを作成し、視聴する方法
4.1 マルチメディア
番組セグメントのユーザ選択
一実施例によれば、マルチメディア・コンテンツ・ストリームのビデオ
番組は、表示装置(例えば、テレビジョン・スクリーンまたはコンピュータ・モニタ)によりDVRユーザに表示される。他の実施態様
では、ビデオ
番組は、表示装置(例えば、携帯用マルチメディア視聴装置)に表示
することもできる。DVRユーザは、制御インタフェース(例えば、リモコン)を使用してビデオ
番組の再生を制御
することができる。
【0120】
ユーザは、マルチメディア
番組のセクションをマーク
し、または、マルチメディア
番組内のコンテンツに関しする興味にポイントを
付すことができる。例えば、ユーザは、フットボール・ゲームの録画で最高のプレイをマークすることを望
むことができる。ユーザがそのプレイをマークすると、ユーザは
、友達のDVRに
、結果として生じ
たハッシュ・シーケンスを送信することができる。DVR間にデータを転送する1つの方法は、両者とも本出願人が所有しかつ本願明細書に参照によって完全に組み込まれている、「パーソナル・テレビジョン・サービスへのインターネット接続のシステムと方法」と称される米国特許10/220,558号、および「安全なマルチメディア転送システム」と称される米国特許出願10/741,596号に記載されている。友達が、ユーザが録画したゲームのコピーを再生するとき、友達のDVRは、ユーザが興味を示したポイントをその友達に表示することができる。友達のDVRは、例えば、彼の表示装置に表示された番組キャッシュ・バーに沿って興味のあるポイントを表示する。
【0121】
友達のDVRは、ゲームの再生を開始する前に、録画されたゲームのハッシュ値を算出して、ハッシュ値を受信したハッシュ・シーケンスと比較することによって、録画されたゲームを前処理する。これにより、DVRが、録画されたゲームの興味のあるポイントの位置を見つけ、かつ友達に興味のあるポイントを表示することが可能になる。次いで、友達は、リモコンを使用して興味のあるポイントにスキップ
することができる。
【0122】
DVRユーザは、プログラムの興味のあるポイントの独自の設定を、他のユーザに配布
することができる。ユーザは、さらに、
興味のある各々のポイントにメタデータを付して、DVRに、
「これは、激しいアクション・シーンではないか?」というような視聴者へのテキストを表示させることができる。ユーザは、興味のあるポイントからプログラムにx秒スキップする、または、次の興味のあるポイントにスキップする前にプログラムのx秒表示するようDVRに命じるように、
興味のあるポイントにメタデータを付すことができる。これによって、ユーザが、彼らの友達、家族、同級生、生徒、利益団体等に配布することができるプログラムの独自の凝縮されたバージョンを作成することができる。
【0123】
また、DVRに、マルチメディア
番組、または、全コンテンツ・ストリームのセグメントを再編成するように、
命令することができる。そうするための1つの目的は、放送業者が
、マルチメディア・コンテンツ・ストリームのセグメントにスクランブルをかける時である。この結果、権限のない視聴者は、明らかに、マルチメディア・コンテンツ・ストリームを視聴することができないであろう。しかしながら、権限を有する視聴者のために、DVRは、適切な状態にセグメントを編成する。さらに、ユーザは、独自のカスタマイズされたマルチメディア
番組を作成するために、マルチメディア・コンテンツ・ストリームのセグメントを再編成することを要求することができる。ユーザは、次いで、カスタマイズされたマルチメディア
番組を格納し、または、カスタマイズされたマルチメディア
番組を彼らの友人および他のDVRユーザに配布
することができる。カスタマイズされたマルチメディア
番組は、異なるマルチメディア・コンテンツ・ストリームから読み出され
たセグメント、またはDVRの記憶装置に既に格納されているセグメントのコンパイルを
含むことができる。
【0124】
上述したように、インバンド・データにコンピュータ・システムを認識して、同期させる方法を使用すると、DVRは
、これらの機能を容易に実行することができる。
【0125】
例えば、ユーザが
、ビデオ
番組内の特定のコンテンツの位置を保存または
示すことを望むとき、DVRユーザは、それを
示す制御インタフェースのボタンを押すことができる。制御インタフェースは、DVRに信号を送信し、かつDVRは、その信号をユーザ選択と解釈する。DVRは、次いで、ユーザが制御インタフェースから信号を送信したプログラム内の時間を決定し、
かつそのポイントにつながるインバンド・データパターンを算出することができる。
【0126】
4.2 マルチメディア
番組のユーザ起動イベント識別データの作成
図7には、ビデオ
番組内にマルチメディア・セグメントを作成し、かつ視聴する方法を示ブロック図が、一実施例に従って示されている。字幕(CC)データ702のようなインバンド・データを含
むマルチメディア・コンテンツ・ストリーム700Aが、DVRまたはその他の装置で
、録画、または再生されるとき、タイム・スタンプの形式の時間情報は、インバンド・データ
に関連
している。具体的には、
上述したように、インバンド・データを含むマルチメディア・コンテンツ・ストリームは、
個別のオーディオ、ビデオおよびデータフレームにパケット化される。パケット化の
際、各々のフレームには、相対的なタイム・スタンプ
が与えられる。これらのタイム・スタンプは、マルチメディア・コンテンツ・ストリームまたはビデオ
番組内のインバンド・データの時間を
追跡するために使用
することができる。
【0127】
ユーザがビデオ
番組(彼/彼女が保存したい、または、注目する)のセグメントを視聴するとき、ユーザは、ビデオ
番組内の位置を選択することによってDVR 102にセグメントをマークさせる。一実施例によれば、画面操作ソフトは、プログラム・キャッシュ・バー700Bおよびスライダ708を包含している表示画面に提示される。スライダは、プログラムの現在の再生位置を
示す。ユーザがビデオ
番組内の位置を選択したいと思うとき、スライダが望んだ位置に到達するまで、ユーザは待ち、リモコンのような制御インタフェースを使用して望んだ位置を選択する。ユーザがリモコンのボタンを押すと、リモコンからDVRまで信号が送信され、DVRはユーザに対してドロップダウン・メニューを表示する。ドロップダウン・メニューは、ユーザがビデオ
番組の望む位置に関連して選択するオプションを含んでもよい。一実施例によって、ユーザに利用可能なオプションは、ブックマークする、位置をスキップする、注を付ける、または、ビデオ
番組に関して実行することができるその他のアクションを
含む。
【0128】
一実施例によれば、ビデオ
番組を再生する間に、DVRユーザは、制御インタフェースを使用して位置704を選択する。DVRが、制御インタフェースから信号を受信すると、ユーザ−選択が既に発生していて、かつユーザ−選択が時間:10で生じる選択の位置を記録することを認識する。このポイントで、DVRは、イベント識別データを作成する。上述したように、イベント識別データは、インバンド・データのパターンまたはシーケンス、およびマルチメディア・コンテンツ・ストリームの範囲内でのアクションまたはイベントを識別するためのメタデータを含
むことができる。
【0129】
ここでも、インバンド・データの一つのタイプは、字幕データである。一実施例によれば、イベント識別データを作成するために、DVRは、ハッシュ値のユニーク配列を作成
するために、位置704に先行する充分な字幕データを捜す。表710は、ビデオ・セグメント700のハッシュ値シーケンス・データを表す。ハッシュ値シーケンス・データは、ハッシュ値、ハッシュ値の時間および各々のハッシュ値の時間オフセットを
示すことができる。一実施例によれば、時間オフセットは、ハッシュ値の生成とビデオ
番組のその前のハッシュ値との間の時間の差異を
示す。
【0130】
このように、表710は、位置704に先行するハッシュ値「W5W4」と「M5M5」を識別する。DVRは、各々のハッシュ値が字幕テキストを表示するために使用される特定の字幕方法およびハッシュ値の時間オフセットに従って生成された時間を
記録する。ここで、ハッシュ値「W5W4」は、プログラムの始まりから時間:06で生じ、
かつゼロの時間オフセットを伴うシーケンスの第1のハッシュである。ハッシュ値「M5M5」は、プログラムの始まりから時間:08で生じ、
かつハッシュ値「W5W4」後の2秒である。DVRがハッシュ・シーケンス「W5W4、M5M5」を認識すると、DVRは、位置704の実際の再生の直前にアクションが必要でありかつアイコンの表示のような適切なアクションを実行
することを認識する。メタデータは、ハッシュ・シーケンス「W5W4、M5M5」の認識の2秒後にアイコンが表示されるべきであることを
示すことができる。
【0131】
さらに、ユーザは、時間:20で生じるビデオ・セグメントの望んだ部分の終わりを表す第2の位置706も選択することができる。一実施例によれば、DVRは、時間:10と時間:20の間のCCデータを解析し、3つのハッシュ値「Z1B1、E5Y5およびA2R2」を生成し、
かつ各々のハッシュ値が生成された時間を記録する。従って、この特定の例の場合、ハッシュ値「Z1B1」が先ず(ここでは、時間:12で)生じ、ハッシュ値「E5Y5」が2秒後に生じ、そしてハッシュ値「A2R2」が「E5Y5」の4秒後に生じる。集合的に、ハッシュ値「Z1B1、E5Y5およびA2R2」は、第2の位置706のハッシュ・シーケンスを表す。プログラム
に関連したメタデータが、これを
示すであろう。
【0132】
従って、表710
では、ハッシュ値「Z1B1」が、シーケンスの第1のハッシュの時から時間ゼロで生じ、ハッシュ値「E5Y5」がハッシュ値「Z1B1」の2秒後に生じ、そしてハッシュ値「A2R2」がハッシュ値「E5Y5」の4秒後に生じる。これに代えて、時間オフセットを、ビデオ
番組、マルチメディア・コンテンツ・ストリーム、ビデオ
番組またはストリームの位置またはビデオ・セグメントのいかなる部分にも関連
させることができる。
【0133】
DVRが、そのステートマシンに対するハッシュ値シーケンス・データとして表710を使用し、マルチメディア・コンテンツ・ストリーム700Bを再生すると、DVRは、CCデータ702を解析しかつハッシュ値を生成する。DVRが、ハッシュ値「A2R2」を認識すると、ハッシュ・シーケンスを認識する上記の方法に従って、DVRは、直ちに、(例えば、DVRに接続している表示画面にアイコンを表示する)アクションを実行することができる。この場合、DVRが、表710に配置されているハッシュ・シーケンスを認識すると、DVRは、位置704と706の間のビデオ・セグメントの正確な始まりおよび終わりの時間を決定することができる。この情報を与えられ、ハッシュ値シーケンス・データ
に関連したメタデータは、DVRに位置704と706の間のプログラム・セグメントをスキップするように
命令してもよく、または、例えば、DVRに位置704と706の間のプログラム・セグメントを格納するように
命令することもできる。
【0134】
DVRは、ハッシュ値シーケンス・データのタイム・スタンプを使用することにより、マルチメディア・コンテンツ・ストリームに関連するビデオ・セグメントを認識することができる。それゆえ、ビデオ
番組が、異なる位置の2つの異なる時間に放送、または再生される場合であっても、同じビデオ・セグメントは、ハッシュ値
に関連したタイム・スタンプを使用して認識される。より詳しくは、タイム・スタンプは、DVRのローカル時間または放送時間ではなく、ハッシュ値の生成
に関連している。したがって、異なる位置において、または、異なる時間に再生した場合、ほとんどのプログラミングが同一であろうと仮定すると、ビデオ・セグメントは、ハッシュ値のタイム・スタンプを使用して極めて正確に認識することができる。なお、上記の考察は、字幕データを中心に説明されたが、本発明は、このような実施例に限定されるものではなく、DVRは、どのようなタイプのインバンド・データ(例えば、ETV信号データ)使用してもイベント識別データを作成することができる。
【0135】
4.3 タグ付けされたマルチメディア
番組コンテンツの作成
ビデオ
番組内のイベントまたはセグメントの認識後、DVR 102は、セグメントまたはイベントに対応して、
タグを生成して、適当な位置でマルチメディア・コンテンツ・ストリームにそれらのタグを挿入することができる。各々のタグは、タグを処理する装置が変換しかつ作用するコマンド・アンド・コントロール情報を含むことができる。例えば、一実施例によれば、ユーザが、位置704と706の間のすべてのコンテンツをスキップすることを望む場合、ビデオ・セグメント
に関連したハッシュ・シーケンスを認識した後に、DVRは、DVRを位置706へ自動的に10秒ジャンプさせる(ビデオ・セグメントをスキップする)ように、位置704でタグを簡単に作成することができる。
【0136】
さらに、タグデータは、マルチメディア・コンテンツ・ストリームの一部として処理され、その結果、ビデオ
番組の再生に自動的に同期される。タグデータにより、マルチメディア・コンテンツ・ストリームを受信する装置は、選択された位置に自動的にスキップすることができる。これに代えて、タグは、ビデオ
番組内の位置に関するコンテンツを識別する情報を
含むこともできる。例えば、マルチメディア・コンテンツ・ストリーム700Aの位置704に対応するタグは、スポーツ
番組内の休憩時間のような位置を識別する情報を
含むこともできる。さらに、位置706は、休憩時間の終わりと
することもできる。ゆえに、DVRは、スポーツ
番組内の休憩が位置704または時間:10で行われ、位置706または時間:20で終わることを
示すユーザのためのユーザ・インタフェースを提示すことができる。この情報を使用して、ユーザは、DVRに位置704を越えてスキップし、位置706に直接進むことができる。
【0137】
また、特定のイベントまたはセグメントに対応するために、マルチメディア・コンテンツ・ストリームにタグを挿入する間に、DVR 102は、マルチメディア・コンテンツ・ストリームからインバンド・データを取り除くことができる。例えば、一実施例によれば、マルチメディア・コンテンツ・ストリームは、分離したオーディオ、ビデオおよびデータ・フィードを
含むMPEG 2トランスポート・ストリームである。オリジナル・インバンド・データは、マルチメディア・コンテンツ・ストリームのデータ部分内に位置する。タグが生成されると、タグは、マルチメディア・ストリームのデータ部分に挿入される。さらに、インバンド・データが取り除かれると、例えば、PC 101は、マルチメディア・コンテンツ・ストリームを携帯機器101Bへ転送することができる。タグがマルチメディア・コンテンツ・ストリームに入れられ、かつ字幕ストリームが取り除かれたので、携帯機器101Bは、字幕データを表示する必要がない。その代わりに、マルチメディア・コンテンツ・ストリームがユーザに表示されつつある間に、マルチメディア・コンテンツ・ストリーム内のタグは
、マルチメディア・コンテンツ・ストリームと同期するように自動的に処理される。マルチメディア・コンテンツ・ストリームにタグを生成し、かつ挿入することについては、本出願人が所有しかつ本願明細書に参照によって完全に組み込まれている、「字幕のタグ付けシステム」と称される米国特許出願09/665921号に、さらに詳細に記載されている。
【0138】
他の実施形態では、DVR 102またはPC 101のようなマルチメディア装置は、携帯機器101Bに人の関心を引く位置のリストを簡単に提供
することができる。これにより、マルチメディア・コンテンツ・ストリームにタグを挿入する代わりに、コンテンツ・ストリームはそのままにして、携帯機器101Bが、人の関心を引く位置のリストを使用して、ビデオ
番組内のイベントを識別することができる。人の関心を引く位置のリストは、マルチメディア・コンテンツ・ストリームから携帯機器101Bに別々に提供
することができる。一実施例によれば、人の関心を引く位置のリストは、イベントが生じる相対的な時間を識別する時間データを
含む。さらに、人の関心を引く位置のリストは、付加的データ(例えば、各々のイベントを記載するデータ)を
含むことができる。携帯機器101Bは、いくつかの適切な方法で、人の関心を引く位置のリストのデータの使用を決定することができる。
【0139】
一実施例によれば、人の関心を引く位置のリストは、ユーザ入力に応答して、マルチメディア装置によって生成される。例えば、ユーザは、制御インタフェースを使用して、ビデオ
番組内の一つ以上の位置を選択
することができる。マルチメディア装置は、制御インタフェースから信号を受信して、選択された位置がビデオ
番組内のどこにあるか
を決定する。マルチメディア装置は、マルチメディア・コンテンツ・ストリーム
に関連した時間データを調べることによって、このような決定をすることができる。次いで、マルチメディア装置は、人の関心を引く位置のリスト内に、その関連する時間データの各選択された位置を識別するデータを格納し、
かつ携帯機器101Bにこのリストを提供する。
【0140】
さらに、もう一つの実施例では、マルチメディア装置は、インバンド・データパターンを使用するビデオ
番組内のイベントまたはセグメントの認識後、人の関心を引く位置のリストを生成することができる。例えば、マルチメディア装置は、携帯機器101Bに提供する前に、全マルチメディア・コンテンツ・ストリームを処理する
こともできる。マルチメディア装置は、インバンド・データパターンを認識すると、インバンド・データパターン
に関連したメタデータを調べ、かつ各イベント
に関連した時間データを
含むビデオ
番組内のイベントを識別する。マルチメディア装置は、
時間データを使用して、各イベントをリストする人の関心を引く位置のリストおよびイベントが、ビデオ
番組またはマルチメディア・コンテンツ・ストリームに関連して行われる時間を生成する。そして、人の関心を引く位置のリストは、ビデオ
番組内の位置を識別するリストを使用できる携帯機器101Bに提供される。
【0141】
4.4 マルチメディア・コンテンツの共有イベント識別データ
上述したように、DVRユーザは、DVRから他のDVRへ、イベント識別データを転送することができる。これは、ネットワークまたはインターネットによる
他のDVRへの直接転送により達成
することができる。DVRがイベント識別データを受信すると、DVRユーザには、カスタマイズされたプログラム・インデックスが受信されたことが通知され、かつそれがどのプログラムに関するものかも通知されるように
することができる。そして、ユーザは、インデックスを使用するプログラムの再生を選ぶことができる。
【0142】
さらに、DVRサービスは、イベント識別データの分布点としての役割を果たすことができる。プログラム
に関連したイベント識別データは、DVRからサーバ106Aにアップロード
することができる。サーバ106Aは、DVRからイベント識別データを受信すると、ローカルの記憶装置またはデータベースにイベント識別データを格納する。サーバ106Aは、ネットワーク105を介してダウンロードするための複数のDVRで作成されるイベント識別データを提供
することもできる。他のDVR 104が、特定のプログラム
に関連したイベント識別データを読み出すことを望む場合、サーバ106Aは、ネットワーク105上のDVR 104に、イベント識別データを送信する。このようにして、カスタマイズされたビデオ・セグメントを作成し、かつ視聴するシステムが、可能となる。
【0143】
5.0 実施メカニズム
図8は、本発明の実施例が実装できるコンピュータ・システム800を示す、ブロック図
である。コンピュータ・システム800は、情報を通信するためのバス802または他の通信メカニズム、および情報を処理するためにバス802に結合されているプロセッサ804を含む。コンピュータ・システム800は、また、ランダムアクセスメモリ(RAM)または他の動的記憶装置
のような
いえ主記憶装置806も含み、かつ情報およびプロセッサ804によって実行される命令を記憶するため、バス802に結合されている。主記憶装置806は、また、プロセッサ804によって実行される命令を実行中、一時変数または他の中間情報を記憶するために使用
することもできる。コンピュータ・システム800は、さらに、静的情報およびプロセッサ804に対する命令を記憶するために、バス802に結合されている読み出し専用メモリ(ROM)808または他の静的記憶装置を含む。磁気ディスクまたは光ディスク
のような記憶装置810が、提供され、かつ情報および命令を記憶するためにバス802に結合されている。
【0144】
コンピュータ・システム800は、コンピュータユーザに情報を表示するため、バス802を介して、陰極線管(CRT)
のような表示812に結合
することもできる。英数字および他のキーを含む入力デバイス814は、プロセッサ804への情報およびコマンド選択を通信するため、バス802に結合される。ユーザ入力デバイスの別のタイプは、マウス、トラックボールまたはカーソル方向キー
のような、プロセッサ804への方向情報およびコマンド選択を通信するため、そして表示812上でカーソルの動きを制御するため、のカーソル制御816である。この入力デバイスは、通常、2つの軸に2つの自由度を有し、
かつ第1軸(例えば、x)および第2軸(例えば、y)により、このデバイスは、平面での位置を
指定することができる。
【0145】
本発明は、本明細書に説明される手法を実装するためのコンピュータ・システム800の使用に関する。本発明の一実施例によると、これらの手法は、主記憶装置806に含まれる1つまたは複数の命令の1つまたは複数のシーケンスをプロセッサ804が実行するのに応答して、コンピュータ・システム800によって実行される。このような命令は、記憶装置810
のような別の機械可読媒体から主記憶装置806に読み込んでもよい。主記憶装置806に含まれる命令のシーケンスを実行すると、プロセッサ804は、本明細書に説明される処理ステップを実行する。別の実施例では、配線接続の回路を、ソフトウェア命令の代わりに使用するか、またはソフトウェア命令と組み合わせて使用して、本発明を実装
することもできる。すなわち、本発明の実施例は、ハードウェア回路およびソフトウェアの何らかの特定の組み合わせに限定されない。
【0146】
本明細書で使用される用語「機械可読媒体」は、機械を特定のやり方で動作させるデータを提供するのに関与する任意の媒体である。コンピュータ・システム800を使用して実装される一実施例では、さまざまな機械可読媒体が、例えば、プロセッサ804が実行するための命令の提供に、関与する。このような媒体は、多くの形式をとることができ、不揮発性媒体、揮発性媒体、および伝送媒体を含むが、これらに限定されない。不揮発性媒体は、例えば、記憶装置810
のような、光または磁気ディスクを含む。揮発性媒体は、主記憶装置806
のような、動的メモリを含む。伝送媒体は、同軸ケーブル、銅線および光ファイバを含み、バス802を構成する線を含む。伝送媒体はまた、電波および赤外線データ通信中に生成されるもの
のような、音波または光波の形式をとることもできる。このようなすべての媒体は、媒体によって搬送される命令が、この命令を機械に読み込む物理的メカニズムによって検出できるようにするため、実体のあるものでなければならない。
【0147】
機械可読媒体の共通の形式は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハード・ディスク、磁気テープ、または他の何らかの磁気媒体、CD-ROM、他の何らかの光媒体、パンチカード、紙テープ、穴のパターンがある他の何らかの物理的媒体、RAM、PROM、およびEPROM、FLASH-EPROM、他の何らかのメモリチップまたはカートリッジ、以下に説明される搬送波、またはコンピュータが読み取れる他の何らかの媒体を含む。
【0148】
機械可読媒体のさまざまな形式は、実行のため、プロセッサ804に1つまたは複数の命令の1つまたは複数のシーケンスを搬送することに関与
することもできる。例えば、この命令は、最初に、リモートコンピュータの磁気ディスクで搬送
することもできる。このリモートコンピュータは、命令をその動的メモリにロードでき、そしてこれらの命令を、モデムを使用して電話線から送信できる。コンピュータ・システム800にローカルなモデムは、この電話線のデータを受信でき、そして赤外線送信器を使用して、データを赤外線信号に変換できる。赤外線検出器は、赤外線信号で搬送されるデータを受信でき、そして適切な回路が、このデータをバス802に配置できる。バス802は、主記憶装置806にデータを搬送し、ここから、プロセッサ804は、命令を呼び出し、そして実行する。主記憶装置806によって受信される命令は、オプションとして、プロセッサ804による実行の前これに代えて後で、記憶装置810に記憶させてもよい。
【0149】
コンピュータ・システム800は、また、バス802に結合される通信インタフェース818を含む。通信インタフェース818は、ローカルネットワーク822と接続されるネットワークリンク820と結合する双方向データ通信を提供する。例えば、通信インタフェース818は、対応する電話線タイプへのデータ通信接続を提供するサービス総合デジタル通信網(ISDN)カードまたはモデムでもよい。別の例として、通信インタフェース818は、互換LANへのデータ通信接続を提供するローカル・エリア・ネットワーク(LAN)カード
とすることができる。無線リンクが、実装
することもできる。このような実装の何れでも、通信インタフェース818は、さまざまなタイプの情報を表すデジタルデータストリームを搬送する電気、電磁気、または光の信号を送信および受信する。
【0150】
ネットワークリンク820は、通常、1つまたは複数のネットワークにより、他のデータデバイスにデータ通信を提供する。例えば、ネットワークリンク820は、ローカルネットワーク822により、ホストコンピュータ824に、またはインターネットサービスプロバイダー(ISP)826によって動作されるデータ機器に、接続を提供
することもできる。ISP826は、次いで、ワールドワイドパケットデータ通信ネットワーク(現在は一般に「インターネット」828という)によりデータ通信サービスを提供する。ローカルネットワーク822およびインターネット828は、両方とも、デジタルデータストリームを搬送する電気、電磁気、または光の信号を使用する。さまざまなネットワークを通じた信号、およびネットワークリンク820上および通信インタフェース818を通じた信号は、コンピュータ・システム800と双方向にデジタルデータを搬送し、情報をトランスポートする搬送波の代表的な形式である。
【0151】
コンピュータ・システム800は、ネットワーク(1つまたは複数)、ネットワークリンク820および通信インタフェース818により、メッセージの送信、およびプログラムコードを含むデータの受信ができる。インターネットの例では、サーバ830は、インターネット828、ISP826、ローカルネットワーク822および通信インタフェース818により、アプリケーションプログラムに対する要求コードを送信する可能性がある。
【0152】
受信コードは、受信された際にプロセッサ804によって実行させてもよいし、そして/または後で実行するため、記憶装置810、または他の不揮発性ストレージに記憶させてもよい。このようにして、コンピュータ・システム800は、搬送波の形式で、アプリケーションコードを取得
することもできる。
【0153】
上記の説明において、本発明の実施例は、多数の特定の詳細を参照して説明されているが、実装ごとに異なってもよい。すなわち、本発明とは何か、および本出願人が意図する何をもって本発明とするか、についての唯一かつ排他的な指標は、本出願から発行される請求項一式であり、この特定の形式において、このような請求項は、何らかの後続する修正も含んで、発行される。このような請求項に含まれる用語について本明細書で明示的に説明される何らかの
規定は、これらの請求項で使用される場合の、こうした用語の意味を規定する。そのため、一請求項で明示的に記載されない限定、要素、特性、機能、利点または属性が、如何なる場合も、こうした請求の範囲を限定すべきではない。本明細書および図面は、適宜、制限的な感覚でなく、むしろ説明的なものと見なされる。