(57)【要約】カスタマイズされたマルチメディア・セグメントを作成しかつ視聴するシステムは、ユーザがプログラム・ストリームのインバンド・データからイベント識別データを作成することを可能にする。インバンド・データは、コンテンツ・ストリームと関連したイベント識別データに処理され、コンパイルされる。イベント識別データは、コンテンツ・ストリームのイベントと関連したインバンド・データのパターンまたはシーケンスを識別する。メタデータは、イベント識別データにも包含される。イベント識別データは、インバンド・データを有するコンテンツ・ストリームを含んでいるマルチメディア・コンテンツ・ストリームを受信するマルチメディア装置に提供される。インバンド・データは、解析されて、イベント識別データと比較される。適合が生じる場合、マルチメディア装置はイベントを識別、または、指定されたアクションを実行するためにメタデータを使用する。【選択図】図１
2009542088.tif 000002
【特許請求の範囲】
【請求項１】
カスタマイズされたマルチメディア・ストリームを作成し、かつ視聴する方法であって、
第1の装置で、インバンド・データを含む第1のコンテンツ・ストリームを受信し、
ユーザに前記第1のコンテンツ・ストリームを表示し、
前記第1のコンテンツ・ストリーム内の一つ以上の位置を選択する前記ユーザからの入力を受信し、
前記第1のコンテンツ・ストリーム内の位置と関連したインバンド・データのパターンを識別し、
前記位置と関連したメタデータを識別し、かつ、
イベント識別データとして前記パターンおよびメタデータを記憶装置に格納すること、
を備える方法。
【請求項２】
前記インバンド・データは、字幕データである、請求項1に記載の方法。
【請求項３】
インバンド・データのパターンを識別することは、前記字幕データからハッシュ値のシーケンスを計算することを包含する、請求項2に記載の方法。
【請求項４】
前記インバンド・データは、エンハンスト・テレビジョン（ETV）信号データである、請求項1に記載の方法。
【請求項５】
第2の装置に前記イベント識別データを送信すること、をさらに備える請求項1に記載の方法。
【請求項６】
前記ユーザは、前記第2の装置を指定する、請求項1に記載の方法。
【請求項７】
サーバに前記イベント識別データを送信し、かつ、
前記サーバは、前記イベント識別データを他の装置に配布すること、をさらに備える請求項1に記載の方法。
【請求項８】
前記記憶装置は、ハード・ディスクである、請求項1に記載の方法。
【請求項９】
前記記憶装置は、任意型の取外し可能な記憶媒体である、請求項1に記載の方法。
【請求項１０】
前記記憶装置は、任意型の不揮発性および／または揮発性記憶媒体である、請求項1に記載の方法。
【請求項１１】
前記ユーザは、各選択された位置と関連したアクションを指定し、かつ、各選択された位置と関連した前記アクションは、前記イベント識別データのメタデータとして保存される、請求項1に記載の方法。
【請求項１２】
パターンと関連したメタデータは、一つ以上の位置に関するアクションを記載可能である、請求項11に記載の方法。
【請求項１３】
第2の装置で、前記イベント識別データを受信し、
前記第1のコンテンツ・ストリームに含まれる前記インバンド・データの少なくとも一部を含んでいる第2のコンテンツ・ストリームにおいて、前記第2の装置で、前記第2のコンテンツ・ストリームを受信し、
前記第2の装置で、前記第2のコンテンツ・ストリームの前記インバンド・データを処理し、
前記第2のコンテンツ・ストリームの前記インバンド・データの少なくとも一部が、複数のパターンの中の特定のパターンに適合すると決定し、前記イベント識別データは、前記特定のパターンを前記第2のコンテンツ・ストリームの位置と関連させ、かつ、
前記第2のコンテンツ・ストリーム内の前記位置を識別すること、
をさらに備える請求項1に記載の方法。
【請求項１４】
前記位置を識別することに応答して、ユーザに前記第2のコンテンツ・ストリームを再生する間に、ユーザに前記第2のコンテンツ・ストリーム内の前記位置を表示すること、をさらに備える請求項13に記載の方法。
【請求項１５】
前記インバンド・データは、字幕データであって、前記決定するステップは、前記字幕データからハッシュ値を算出し、かつ、前記特定のパターンは、ハッシュ値のシーケンスを包含する、請求項13に記載の方法。
【請求項１６】
ユーザは、前記第2のコンテンツ・ストリームを再生する間に、表示された位置にスキップすることが可能である、請求項13に記載の方法。
【請求項１７】
ユーザに対し前記第2のコンテンツ・ストリームを再生するとき、前記第2の装置は、識別された位置に到達すると、自動的に前記コンテンツ・ストリームのセグメントをスキップする、請求項13に記載の方法。
【請求項１８】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの前記セグメントをスキップするように指示する、請求項17に記載の方法。
【請求項１９】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの二個以上のセグメントを再整理するように指示する、請求項13に記載の方法。
【請求項２０】
前記第2の装置で、前記二個以上の再整理されたセグメントを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成し、かつ、
ユーザに前記カスタマイズされたコンテンツ・ストリームを表示すること、
をさらに備える請求項19に記載の方法。
【請求項２１】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの一つ以上のセグメントを記憶装置に格納するように指示し、かつ、前記記憶装置は、一つ以上の異なるコンテンツ・ストリームから一つ以上の抽出されたセグメントを含む、請求項13に記載の方法。
【請求項２２】
前記第2の装置で、前記記憶装置に格納されるセグメントの任意の組合せを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成し、
ユーザに前記カスタマイズされたコンテンツ・ストリームを表示すること、
をさらに備える請求項21に記載の方法。
【請求項２３】
前記第1のコンテンツ・ストリームは、テレビジョン放送ストリームである、請求項1に記載の方法。
【請求項２４】
カスタマイズされたマルチメディア・ストリームを作成し、かつ視聴する装置であって、
第1の装置で、インバンド・データを含む第1のコンテンツ・ストリームを受信するためのモジュールと、
前記第1のコンテンツ・ストリーム内の一つ以上の位置を選択する前記ユーザからの入力を受信するためのモジュールと、
前記第1のコンテンツ・ストリーム内の位置と関連したインバンド・データのパターンを識別するためのモジュールと、
前記位置と関連したメタデータを識別するためのモジュールと、
記憶装置にイベント識別データとして前記パターンおよび前記関連するメタデータを格納するためのモジュールと、
を備える装置。
【請求項２５】
前記インバンド・データは、字幕データである、請求項24に記載の装置。
【請求項２６】
インバンド・データのパターンを識別することは、前記字幕データからハッシュ値のシーケンスを計算することを包含する、請求項25に記載の装置。
【請求項２７】
前記インバンド・データは、エンハンスト・テレビジョン（ETV）信号データである、請求項24に記載の装置。
【請求項２８】
第2の装置に前記イベント識別データを送信するためのモジュール、をさらに備える請求項24に記載の装置。
【請求項２９】
前記ユーザは、前記第2の装置を指定する、請求項28に記載の装置。
【請求項３０】
サーバに前記イベント識別データを送信するためのモジュールをさらに備え、かつ、
前記サーバは、前記イベント識別データを他の装置に配布する、請求項24に記載の装置。
【請求項３１】
前記記憶装置は、ハード・ディスクである、請求項24に記載の装置。
【請求項３２】
前記記憶装置は、任意型の取外し可能な記憶媒体である、請求項24に記載の装置。
【請求項３３】
前記記憶装置は、任意型の不揮発性および／または揮発性記憶媒体である、請求項24に記載の装置。
【請求項３４】
前記ユーザは、各選択された位置と関連したアクションを指定し、かつ、各選択された位置と関連した前記アクションは、前記イベント識別データのメタデータとして保存される、請求項24に記載の装置。
【請求項３５】
パターンと関連したメタデータは、一つ以上の位置に関するアクションを記載可能である、請求項34に記載の装置。
【請求項３６】
第2の装置で、前記イベント識別データを受信するためのモジュールと、
前記第1のコンテンツ・ストリームに含まれる前記インバンド・データの少なくとも一部を含んでいる第2のコンテンツ・ストリームにおいて、前記第2の装置で、前記第2のコンテンツ・ストリームを受信するためのモジュールと、
前記第2の装置で、前記第2のコンテンツ・ストリームの前記インバンド・データを処理するためのモジュールと、
前記第2のコンテンツ・ストリームの前記インバンド・データの少なくとも一部が、複数のパターンの中の特定のパターンに適合すると決定するためのモジュールであって、前記イベント識別データが、前記特定のパターンを前記第2のコンテンツ・ストリームの位置と関連させる、モジュールと、
前記第2のコンテンツ・ストリーム内の前記位置を識別するモジュールと、
をさらに備える請求項34に記載の装置。
【請求項３７】
前記ユーザに対し前記第2のコンテンツ・ストリームを再生する間に、前記位置を識別することに応答して、前記第2のコンテンツ・ストリーム内の前記位置をユーザに表示するためのモジュール、をさらに備える請求項36に記載の装置。
【請求項３８】
前記インバンド・データは、字幕データであって、前記決定するモジュールは、前記字幕データからハッシュ値を算出し、かつ、前記特定のパターンは、ハッシュ値のシーケンスである、請求項36に記載の装置。
【請求項３９】
ユーザは、前記第2のコンテンツ・ストリームを再生する間に、識別された位置にスキップ可能である、請求項36に記載の装置。
【請求項４０】
前記第2の装置は、ユーザに対し前記第2のコンテンツ・ストリームを再生するとき、識別された位置に到達すると、自動的に前記第2のコンテンツ・ストリームのセグメントをスキップする、請求項36に記載の装置。
【請求項４１】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの前記セグメントをスキップするように指示する、請求項40に記載の装置。
【請求項４２】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの二個以上のセグメントを再整理するように指示する、請求項36に記載の装置。
【請求項４３】
前記第2の装置で、前記二個以上の再整理されたセグメントを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成するためのモジュールと、
ユーザに前記カスタマイズされたコンテンツ・ストリームを表示するためのモジュールと、
をさらに備える請求項42に記載の装置。
【請求項４４】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの一つ以上のセグメントを記憶装置に格納するように指示し、かつ、前記記憶装置は、一つ以上の異なるコンテンツ・ストリームから一つ以上の抽出されたセグメントを含む、請求項36に記載の装置。
【請求項４５】
前記第2の装置で、前記記憶装置に格納されるセグメントの任意の組合せを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成するためのモジュールと、
ユーザに前記カスタマイズされたコンテンツ・ストリームを表示するためのモジュールと、
をさらに備える請求項44に記載の装置。
【請求項４６】
前記第1のコンテンツ・ストリームは、テレビジョン放送ストリームである、請求項24に記載の装置。
【請求項４７】
カスタマイズされたマルチメディア・ストリームを作成しかつ視聴するための命令の一つ以上のシーケンスを担持しているコンピュータ可読媒体であって、
これらの命令が、一つ以上のプロセッサによって遂行されるとき、前記一つ以上のプロセッサに、
第1の装置で、インバンド・データを含む第1のコンテンツ・ストリームを受信するステップと、
前記第1のコンテンツ・ストリーム内の一つ以上の位置を選択する前記ユーザからの入力を受信するステップと、
前記第1のコンテンツ・ストリーム内の位置と関連したインバンド・データのパターンを識別するステップと、
前記位置と関連したメタデータを識別するステップと、
記憶装置にイベント識別データとして前記パターンおよび前記関連するメタデータを格納するステップと、
を実行させるコンピュータ可読媒体。
【請求項４８】
前記インバンド・データは、字幕データである、請求項47に記載のコンピュータ可読媒体。
【請求項４９】
インバンド・データのパターンを識別することは、前記字幕データからハッシュ値のシーケンスを計算することを包含する、請求項48に記載のコンピュータ可読媒体。
【請求項５０】
前記インバンド・データは、エンハンスト・テレビジョン（ETV）信号データである、請求項47に記載のコンピュータ可読媒体。
【請求項５１】
第2の装置に前記イベント識別データを送信する命令をさらに備える請求項47に記載のコンピュータ可読媒体。
【請求項５２】
前記ユーザは、前記第2の装置を指定する、請求項51に記載のコンピュータ可読媒体。
【請求項５３】
サーバに前記イベント識別データを送信する命令をさらに備え、かつ、
前記サーバは、前記イベント識別データを他の装置に配布する、請求項47に記載のコンピュータ可読媒体。
【請求項５４】
前記記憶装置は、ハード・ディスクである、請求項47に記載のコンピュータ可読媒体。
【請求項５５】
前記記憶装置は、任意型の取外し可能な記憶媒体である、請求項47に記載のコンピュータ可読媒体。
【請求項５６】
前記記憶装置は、任意型の不揮発性および／または揮発性記憶媒体である、請求項47に記載のコンピュータ可読媒体。
【請求項５７】
前記ユーザは、各選択された位置と関連したアクションを指定し、かつ、各選択された位置と関連した前記アクションは、前記イベント識別データのメタデータとして保存される、請求項47に記載のコンピュータ可読媒体。
【請求項５８】
パターンと関連したメタデータは、一つ以上の位置に関するアクションを記載可能である、請求項57に記載のコンピュータ可読媒体。
【請求項５９】
第2の装置で、前記イベント識別データを受信する命令と、
前記第1のコンテンツ・ストリームに含まれる前記インバンド・データの少なくとも一部を含んでいる第2のコンテンツ・ストリームにおいて、前記第2の装置で、前記第2のコンテンツ・ストリームを受信する命令と、
前記第2の装置で、前記第2のコンテンツ・ストリームの前記インバンド・データを処理する命令と、
前記第2のコンテンツ・ストリームの前記インバンド・データの少なくとも一部が、複数のパターンの中の特定のパターンに適合すると決定する命令であって、前記イベント識別データは、前記特定のパターンを前記第2のコンテンツ・ストリームの位置と関連させる、命令と、
前記第2のコンテンツ・ストリーム内の前記位置を識別する命令と、
をさらに備える請求項47に記載のコンピュータ可読媒体。
【請求項６０】
前記ユーザに前記第2のコンテンツ・ストリームを再生する間に、前記位置を識別することに応答して、前記第2のコンテンツ・ストリーム内の前記位置をユーザに表示する命令、をさらに備える請求項59に記載のコンピュータ可読媒体。
【請求項６１】
前記インバンド・データは、字幕データであって、前記決定するステップは、前記字幕データからハッシュ値を算出し、かつ、前記特定のパターンは、ハッシュ値のシーケンスである、請求項59に記載のコンピュータ可読媒体。
【請求項６２】
前記第2のコンテンツ・ストリームを再生する間に、ユーザは識別された位置にスキップ可能である、請求項60に記載のコンピュータ可読媒体。
【請求項６３】
前記第2の装置は、ユーザに前記第2のコンテンツ・ストリームを再生するとき、識別された位置に到達すると、自動的に前記第2のコンテンツ・ストリームのセグメントをスキップする、請求項60に記載のコンピュータ可読媒体。
【請求項６４】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの前記セグメントをスキップするように指示する、請求項63に記載のコンピュータ可読媒体。
【請求項６５】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの二個以上のセグメントを再整理するように指示する、請求項59に記載のコンピュータ可読媒体。
【請求項６６】
前記第2の装置で、前記二個以上の再整理されたセグメントを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成し、かつ、
ユーザに前記カスタマイズされたコンテンツ・ストリームを表示する
命令をさらに備える請求項65に記載のコンピュータ可読媒体。
【請求項６７】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの一つ以上のセグメントを記憶装置に格納するように指示し、かつ、前記記憶装置は、一つ以上の異なるコンテンツ・ストリームから一つ以上の抽出されたセグメントを含む、請求項59に記載のコンピュータ可読媒体。
【請求項６８】
前記第2の装置で、前記記憶装置に格納されるセグメントの任意の組合せを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成する命令と、ユーザに前記カスタマイズされたコンテンツ・ストリームを表示する命令と、をさらに備える請求項67に記載のコンピュータ可読媒体。
【請求項６９】
前記第1のコンテンツ・ストリームは、テレビジョン放送ストリームである、請求項47に記載のコンピュータ可読媒体。
【請求項７０】
カスタマイズされたマルチメディア・ストリームを作成し、視聴する方法であって、
第1の装置で、取外し可能な記憶媒体からインバンド・データを含む第1のコンテンツ・ストリームを読み込み、
ユーザに前記第1のコンテンツ・ストリームを表示し、
前記第1のコンテンツ・ストリーム内の一つ以上の位置を選択する前記ユーザからの入力を受信し、
前記第1のコンテンツ・ストリーム内の位置と関連したインバンド・データのパターンを識別し、
位置と関連したメタデータを識別し、かつ、
記憶装置にイベント識別データとして前記パターンおよび関連したメタデータを格納すること、を備える方法。
【請求項７１】
前記インバンド・データは、字幕データである、請求項70に記載の方法。
【請求項７２】
インバンド・データのパターンを識別することは、前記字幕データからハッシュ値のシーケンスを計算することを包含する、請求項71に記載の方法。
【請求項７３】
前記インバンド・データは、エンハンスト・テレビジョン（ETV）信号データである、請求項70に記載の方法。
【請求項７４】
第2の装置に前記イベント識別データを送信すること、をさらに備える請求項70に記載の方法。
【請求項７５】
前記ユーザは、前記第2の装置を指定する、請求項74に記載の方法。
【請求項７６】
サーバに前記イベント識別データを送信することをさらに備え、かつ、
前記サーバは、前記イベント識別データを他の装置に配布する、請求項70に記載の方法。
【請求項７７】
前記記憶装置は、ハード・ディスクである、請求項70に記載の方法。
【請求項７８】
前記記憶装置は、任意型の取外し可能な記憶媒体である、請求項70に記載の方法。
【請求項７９】
前記記憶装置は、任意型の不揮発性および／または揮発性記憶媒体である、請求項70に記載の方法。
【請求項８０】
前記ユーザは、各選択された位置と関連したアクションを指定し、かつ、各選択された位置と関連した前記アクションは、前記イベント識別データのメタデータとして保存される、請求項70に記載の方法。
【請求項８１】
パターンと関連したメタデータは、一つ以上の位置に関するアクションを記載可能である、請求項80に記載の方法。
【請求項８２】
第2の装置で、前記イベント識別データを受信し、
前記第1のコンテンツ・ストリームに含まれる前記インバンド・データの少なくとも一部を含んでいる第2のコンテンツ・ストリームにおいて、前記第2の装置で、取外し可能な記憶媒体から前記第2のコンテンツ・ストリームを読み込み、
前記第2の装置で、前記第2のコンテンツ・ストリームの前記インバンド・データを処理し、
前記第2のコンテンツ・ストリームの前記インバンド・データの少なくとも一部が、複数のパターンの中の特定のパターンに適合すると決定し、前記イベント識別データは、前記特定のパターンを前記第2のコンテンツ・ストリームの位置と関連させ、かつ、
前記第2のコンテンツ・ストリーム内の前記位置を識別すること、
をさらに備える請求項70に記載の方法。
【請求項８３】
前記ユーザに対し前記第2のコンテンツ・ストリームを再生する間に、記位置を識別することに応答して、ユーザに前記第2のコンテンツ・ストリーム内の前記位置を表示するステップをさらに備える請求項82に記載の方法。
【請求項８４】
前記インバンド・データは、字幕データであって、
前記決定するステップは、前記字幕データからハッシュ値を算出し、かつ、
前記特定のパターンは、ハッシュ値のシーケンスである、
請求項82に記載の方法。
【請求項８５】
前記第2のコンテンツ・ストリームを再生する間に、ユーザは、表示された位置にスキップ可能である、請求項82に記載の方法。
【請求項８６】
ユーザに前記第2のコンテンツ・ストリームを再生するとき、前記第2の装置は識別された位置に到達すると、自動的に前記第2のコンテンツ・ストリームのセグメントをスキップする、請求項82に記載の方法
【請求項８７】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの前記セグメントをスキップするように指示する、請求項86に記載の方法。
【請求項８８】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの二個以上のセグメントを再整理するように指示する、請求項82に記載の方法。
【請求項８９】
前記第2の装置で、前記二個以上の再整理されたセグメントを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成し、かつ、
ユーザに前記カスタマイズされたコンテンツ・ストリームを表示すること、
をさらに備える請求項88に記載の方法。
【請求項９０】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの一つ以上のセグメントを記憶装置に格納するように指示し、かつ、前記記憶装置は、一つ以上の異なるコンテンツ・ストリームから一つ以上の抽出されたセグメントを含む、請求項82に記載の方法。
【請求項９１】
前記第2の装置で、前記記憶装置に格納されるセグメントの任意の組合せを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成し、ユーザに前記カスタマイズされたコンテンツ・ストリームを表示すること、をさらに備える請求項90に記載の方法。
【請求項９２】
前記第1のコンテンツ・ストリームは、テレビジョン放送ストリームである、請求項70に記載の方法。
【請求項９３】
カスタマイズされたマルチメディア・ストリームを作成し、かつ視聴する装置であって、
第1の装置で、取外し可能な記憶媒体からインバンド・データを含む第1のコンテンツ・ストリームを読み込むためのモジュールと、
前記第1のコンテンツ・ストリーム内の一つ以上の位置を選択する前記ユーザからの入力を受信するためのモジュールと、
前記第1のコンテンツ・ストリーム内の位置と関連したインバンド・データのパターンを識別するためのモジュールと、
前記位置と関連したメタデータを識別するためのモジュールと、
記憶装置にイベント識別データとして前記パターンおよび関連するメタデータを格納するためのモジュールと、
を備える装置。
【請求項９４】
前記インバンド・データは、字幕データである、請求項93に記載の装置。
【請求項９５】
インバンド・データのパターンを識別することは、前記字幕データからハッシュ値のシーケンスを計算することを包含する、請求項94に記載の装置。
【請求項９６】
前記インバンド・データは、エンハンスト・テレビジョン（ETV）信号データである、請求項93に記載の装置。
【請求項９７】
第2の装置に前記イベント識別データを送信するためのモジュール、をさらに備える請求項93に記載の装置。
【請求項９８】
前記ユーザは、前記第2の装置を指定する、請求項97に記載の装置。
【請求項９９】
サーバに前記イベント識別データを送信するためのモジュールとをさらに備え、かつ、
前記サーバは、前記イベント識別データを他の装置に配布する、請求項93に記載の装置。
【請求項１００】
前記記憶装置は、ハード・ディスクである、請求項93に記載の装置。
【請求項１０１】
前記記憶装置は、任意型の取外し可能な記憶媒体である、請求項93に記載の装置。
【請求項１０２】
前記記憶装置は、任意型の不揮発性および／または揮発性記憶媒体である、請求項93に記載の装置。
【請求項１０３】
前記ユーザは、各選択された位置と関連したアクションを指定し、かつ、各選択された位置と関連した前記アクションは、前記イベント識別データのメタデータとして保存される、請求項93に記載の装置。
【請求項１０４】
パターンと関連したメタデータは、一つ以上の位置に関するアクションを記載可能である、請求項103に記載の装置。
【請求項１０５】
第2の装置で、前記イベント識別データを受信するためのモジュールと、
前記第1のコンテンツ・ストリームに含まれる前記インバンド・データの少なくとも一部を含んでいる第2のコンテンツ・ストリームにおいて、前記第2の装置で、取外し可能な記憶媒体から前記第2のコンテンツ・ストリームを読取るためのモジュールと、
前記第2の装置で、前記第2のコンテンツ・ストリームの前記インバンド・データを処理するためのモジュールと、
前記第2のコンテンツ・ストリームの前記インバンド・データの少なくとも一部が、複数のパターンの中の特定のパターンに適合すると決定するためのモジュールであって、前記イベント識別データは、前記特定のパターンを前記第2のコンテンツ・ストリームの位置と関連させる、モジュールと、
前記第2のコンテンツ・ストリーム内の前記位置を識別するモジュールと、
をさらに備える請求項103に記載の装置。
【請求項１０６】
前記位置を識別することに応答して、前記ユーザに前記第2のコンテンツ・ストリームを再生する間に、ユーザに前記第2のコンテンツ・ストリーム内の前記位置を表示するためのモジュール、をさらに備える請求項105に記載の装置。
【請求項１０７】
前記インバンド・データは、字幕データであって、前記決定するモジュールは、前記字幕データからハッシュ値を算出し、かつ、前記特定のパターンは、ハッシュ値のシーケンスである、請求項105に記載の装置。
【請求項１０８】
前記第2のコンテンツ・ストリームを再生する間に、ユーザは、識別された位置にスキップ可能である、請求項105に記載の装置。
【請求項１０９】
ユーザに前記第2のコンテンツ・ストリームを再生するとき、前記第2の装置は識別された位置に到達すると、自動的に前記第2のコンテンツ・ストリームのセグメントをスキップする、請求項105に記載の装置。
【請求項１１０】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの前記セグメントをスキップするように指示する、請求項40に記載の装置。
【請求項１１１】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの二個以上のセグメントを再整理するように指示する、請求項105に記載の装置。
【請求項１１２】
前記第2の装置で、前記二個以上の再整理されたセグメントを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成するためのモジュールと、
ユーザに前記カスタマイズされたコンテンツ・ストリームを表示するためのモジュールと、
をさらに備える請求項111に記載の装置。
【請求項１１３】
前記識別された位置と関連したメタデータは、前記第2の装置に前記第2のコンテンツ・ストリームの一つ以上のセグメントを記憶装置に格納するように指示し、かつ、前記記憶装置は、一つ以上の異なるコンテンツ・ストリームから一つ以上の抽出されたセグメントを含む、請求項105に記載の装置。
【請求項１１４】
前記第2の装置で、前記記憶装置に格納されるセグメントの任意の組合せを含んでいるカスタマイズされたマルチメディア・コンテンツ・ストリームを作成するためのモジュールと、
ユーザに前記カスタマイズされたコンテンツ・ストリームを表示するためのモジュールと、
をさらに備える請求項113に記載の装置。
【請求項１１５】
前記コンテンツ・ストリームは、テレビジョン放送ストリームである、請求項93に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチメディア・コンテンツ・ストリームのインバンド・データを認識し、かつマルチメディア装置でマルチメディア・コンテンツ・ストリーム内のポイントの位置を決めることに関する。
【背景技術】
【０００２】
ここに記載される方法は、必ずしも既に考えられたか、実行された方法ではないが、実行できる方法である。したがって、特に明記しない限り、ここにおいて記載されるあらゆる手法が、単に、この項に包含される既知の発明として限定されるものとみなしてはならない。
【０００３】
テレビ視聴者は、ビデオカセット・レコーダ（VCR）を使用して、放送されたテレビ・プログラムを録画することができる。このように、VCRユーザは、テレビ・プログラムが放送される時に特定のテレビ・プログラムを録画することができ、後で同じ録画されたテレビ・プログラムを再生することができる。これを達成するために、VCRは、テレビ・プログラムを表す電気信号を磁気信号に変え、その磁気信号を磁気テープに保存する。磁気テープは、通常、VCRユーザによってVCRに挿入されるビデオカセット・テープの形式である。VCRのユーザがテレビ・プログラムを再生することを決めるとき、その処理は逆で、VCRは、ビデオカセット・テープに保存された磁気信号を電気信号に変えて、電気信号をテレビ受像機に送信する。
【０００４】
デジタル技術の発達とともに、VCRは、デジタル・ビデオテープ・レコーダ（DVR）に取って代えられている。DVRは、テレビ・プログラムの電気信号をデジタル情報に変え、デジタル情報をハード・ディスクに格納することによって、後の再生のために放送されたテレビ・プログラムを録画する。ユーザが録画されたテレビ・プログラムを再生するとき、DVRは、デジタル情報をアナログ信号へ変えて、テレビ視聴者にテレビ・プログラムを表示するテレビ受像機に信号を送信する。また、デジタル・テレビの出現によって、DVRは、デジタルおよびアナログの信号を受信することができ、デジタル形式のテレビ・プログラムを表示するデジタル・テレビ受像機に直接デジタル信号を送信することができる。多くのコンテンツ・プロバイダは、現在、デジタル・プログラミングを放送するために、デジタル・ケーブルおよび衛星技術を使用する。デジタル・プログラミングは、表示画面にユーザへのデジタル・プログラミングを表示するために使用されるケーブルボックスおよび／または衛星トランシーバによって受信される。このように、DVRは、この種の装置に組み込まれるだけでなく、録画および表示のためにケーブルボックスまたは衛星トランシーバからデジタル・プログラミング信号を受信する能力を有する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願09/665,921号
【特許文献２】米国特許6,233,389号
【特許文献３】米国特許出願11/284,487号
【特許文献４】米国特許6,215,526号
【特許文献５】米国特許6,850,691号
【特許文献６】米国特許出願10/915,990号
【特許文献７】米国特許10/220,558号
【特許文献８】米国特許出願10/741,596号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
DVRは、テレビ・プログラムを録画するのに、ますます普及し、広く使用されるようになった。より重要なことに、テレビ番組を録画するためのDVRの使用は、DVRユーザに内容を提示し、ビデオ・プログラムの経験を拡充する異なる手段をコンテンツ・プロバイダに探索させることになった。カスタマイズされた放送コンテンツは、コンテンツ・プロバイダおよびDVRコミュニティにおいて不足するようになった。出願人によって所有される米国特許出願09/665,921号は、字幕エリアを使用する放送コンテンツにタグを付ける方法について記載する。また、出願人によって所有される米国特許6,233,389号は、字幕データの特定の語を認識する方法について記載する。
【０００７】
未修正のビデオ・プログラム内の、異なったイベントを認識するための技術が望まれる。
【図面の簡単な説明】
【０００８】
本発明は、添付図面において、一例として示され、かつ、限定されるものではなく、また、参照番号は、同種の要素を示す。
【図１】図1は、実施例に従って、インバンド・データの認識および同期するためのシステムを例示するブロック図である。
【図２】図2は、実施例に従って、インバンド・データの認識および同期のための装置の構成要素の全体的な概要を例示するブロック図である。
【図３Ａ】図3Aは、実施例に従って、ハッシュ値シーケンス・データを生成するための方法を示すフローチャートである。
【図３Ｂ】図3Bは、実施例に従って、ハッシュ値シーケンス・データを生成するための方法を例示するブロック図である。
【図３Ｃ】図3Cは、実施例に従って、さまざまな字幕方式を使用するハッシュ値シーケンス・データを生成するための方法を例示するブロック図である。
【図３Ｄ】図3Dは、実施例に従って、表示画面に現れるアイコンを例示するブロック図である。
【図４】図4は、実施例に従って、マルチメディア装置で字幕の認識および同期するための方法を表すフローチャートである。
【図５Ａ】図5Aは、実施例に従って、インバンド・データパターンに適合するステートマシンを例示するブロック図である。
【図５Ｂ】図5Bは、実施例に従って、ハッシュ値シーケンス・データを例示するブロック図である。
【図６】図6は、実施例に従って、インバンド・データに同期するための方法を例示するブロック図である。
【図７】図7は、実施例に従って、ビデオ・プログラム内のマルチメディア・セグメントを作成し、視聴するための方法を例示するブロック図である。
【図８】図8は、本発明の実施例を実行できるシステムのブロック図である。
【発明を実施するための形態】
【０００９】
以下の説明では、説明の必要上、本発明の完全な理解を提供するために、具体的な詳細の多くが記載される。しかしながら、本発明がこれらの具体的な詳細なしで実行できることは、明らかである。他の場合では、本発明を不必要にあいまいにすることを避けるため、周知の構造及び装置が、ブロック図の形式で示される。
【００１０】
実施例は、以下の概略によって本願明細書に記載される。
【００１１】
1.0  全体的な概要
2.0  構造的な概要
3.0  インバンド・データの認識および同期の方法
3.1  字幕データ
3.1.1  ハッシュ値シーケンス・データの生成
3.1.2  ハッシュ・シーケンス・メタデータ
3.1.3  マルチメディア装置によるハッシュ・シーケンスの認識
3.1.4  字幕データの同期
3.2  エンハンスト・テレビジョン・信号データ
4.0  カスタマイズされたマルチメディア・セグメントを作成し、視聴する方法
4.1  マルチメディア・プログラム・セグメントのユーザ選択
4.2  マルチメディア・プログラムのユーザ起動イベント識別データの作成
4.3  タグ付けされたマルチメディア・プログラム・コンテンツの作成
4.4  マルチメディア・プログラムの共有イベント識別データ
5.0  実施メカニズム
1.0  全体的な概要
上記の背景において確認されるニーズ、および、以下の説明により明らかになる他のニーズと目的は、一態様において、インバンド・データの認識および同期システムを備える本発明で成し遂げられる。
【００１２】
上記したように、テレビ・プログラムを録画するためのDVRの使用は、DVRユーザにコンテンツを提示し、ビデオ・プログラムの経験を拡充する異なる手段をコンテンツ・プロバイダに探索させることになった。例えば、オリジナルのビデオ・プログラム内に付加的なマーケティングおよびプロモーション・コンテンツを提示することを望むコンテンツ・プロバイダは、特定のアイコン、メッセージまたはインタラクティブ要素にビデオ・プログラムの特定の部分でユーザに表示させることができる。
【００１３】
出願人が所有し、本願明細書に参照によって完全に組み込まれている、「ブランド・ビデオ・タグを表示するための方法と装置（Method and Apparatus for Displaying Branded Video Tags）」と称される米国特許出願11/284,487号に記載されるように、DVRは、ビデオ・プログラムの放送の間、アイコンまたは関連した内容を表示することによって、ビデオ・プログラムのブランド部分を表示することができる。これにより、コンテンツ・プロバイダが、これから放送されるビデオ・プログラムのプロモートを望む場合、そのビデオ・プログラムを詳述するコマーシャルの表示の間、インタラクティブ・アイコンを表示させることができる。コマーシャルを視聴すると共に、視聴者は、DVRに自動的にプロモートされた、これから放送されるビデオ・プログラムを録画させるために、リモコンを使用してアイコンとインタラクトすることができる。
【００１４】
これらの付加的な特徴の多くが機能するようにするために、DVRは、正確な時間に付加的なコンテンツ・データを表示するために、マルチメディア・コンテンツ・ストリームと同期しなければならない。通常は、コンテンツが放送される前に、付加的なコンテンツはマルチメディア・コンテンツ・ストリームに直接埋め込まれる。このように、DVRは、マルチメディア・コンテンツ・ストリーム内のオーディオおよびビデオ・データとともに付加的なコンテンツを処理する。マルチメディア・コンテンツ・ストリームに直接コンテンツを埋め込むことによって、コンテンツ・プロバイダが、表示することを要求した所で、付加的データが正確にユーザに提示されることをコンテンツ・プロバイダは、確保する。さらに、マルチメディア・コンテンツ・ストリームは、DVRと同期して補助するために、ユーザの目に見えない付加的情報を埋め込んでもよい。上記の特徴は、出願人によって所有され、各々が本願明細書に参照によって完全に組み込まれている、「字幕のタグ付けシステム（Closed-Caption Tagging System）」と称される米国特許出願09/665,921号、および、「アナログ・ビデオのタグ付けおよび符号化システム（Analog Video Tagging and Encoding System）」と称される米国特許6,215,526号に、より詳細に記載されている。
【００１５】
本発明の実施例は、DVRおよび他のマルチメディア装置が、マルチメディア・コンテンツ・ストリーム内のインバンド・データに同期するのを可能にする。インバンド・データは、データ送信に使用されるものと同じチャネルまたは「バンド」上で、付加的データ（この場合、オーディオおよびビデオ・データ）の信号に使用される。同期のためにインバンド・データを使用することの1つの利点は、インバンド・データが通常コンテンツ・ストリーム内で完全な状態のままであるということである。このため、インバンド・データは、通常完全かつ変化しないので、マルチメディア・コンテンツ・ストリームにとって同期の信頼性が高いソースとなる。
【００１６】
インバンド・データの実施例は、字幕データおよびエンハンスト・テレビジョン（ETV）信号データを包含する。字幕ストリームは、ビデオ・プログラム（例えば、視聴者に表示するコマーシャル、ホームコメディ・プログラム、長編の映画および他のマルチメディア・コンテンツ）と関連した字幕データ（通常は字幕コマンド・データおよびテキスト）を包含する。ETV信号データは、ETVビデオ・プログラムに同期されるインタラクティブ・アプリケーションのコマンド・アンド・コントロール信号を定義する。
【００１７】
マルチメディア装置がビデオ・プログラムおよびインバンド・データを含むマルチメディア・コンテンツ・ストリームを受信すると、装置は、インバンド・データを処理する。マルチメディア・コンテンツ・ストリームは、コンテンツ・プロバイダによる無線の放送、または、マルチメディア装置によって既に録画されたものでもよい。ビデオ・プログラムの録画または再生の間、マルチメディア装置は、インバンド・データパターンを認識することを試みる。インバンド・データパターンは、イベント識別データとして、他の装置またはサービス・プロバイダから提供されたものでもよい。イベント識別データは、マルチメディア・コンテンツ・ストリームの特定のイベントと関連するインバンド・データパターンを識別する。イベント識別データは、記憶装置に格納され、インバンド・データを処理するときにアクセスしてもよい。
【００１８】
マルチメディア装置は、適合アルゴリズムを利用することによってインバンド・データパターンを認識することを試みる。一実施例によれば、適合アルゴリズムは、有限ステートマシンで具体化される。マルチメディア・コンテンツ・ストリーム内でインバンド・データをリスンすると共に、マルチメディア装置は、インバンド・データがインバンド・データの特定のパターンに適合するかどうかを決定するためにステートマシンを利用する。
【００１９】
一実施例によれば、マルチメディア装置でローカルに格納されるイベント識別データは、メタデータも包含する。メタデータは、マルチメディア・コンテンツ・ストリームのインバンド・データをリスンすることによって、パターンを識別することに応答してとるための、一つ以上のアクションを特定する。適合が生じる場合、マルチメディア装置はパターンと関連したメタデータを処理し、そのメタデータで特定される適切なアクションを実行する。例えば、マルチメディア装置は、表示画面上に、ユーザに対してアイコンを表示してもよい。ユーザがそのアイコンに反応する場合、メタデータは、必要なあらゆる応答に対して、マルチメディア装置に指示することができる。さらに、インバンド・データパターンを認識することに応答して、マルチメディア装置は、そのパターンに関連したビデオ・セグメントを記憶装置に格納することができる。マルチメディア装置は、ビデオ・セグメントが、どこで始まり、どこで終わるか、または、特定のイベントがビデオ・プログラム内のどこで生じるかについて決定するために、認識されるパターンと関連したメタデータを使用してもよい。このようにして、インバンド・データを認識し、同期するための方法が可能となる。
【００２０】
別の態様において、カスタマイズされたマルチメディア・セグメントを作成し、かつ視聴する方法が提供される。格納または再生にビデオ・プログラム内のイベントまたは部分を選択することができる方法が、マルチメディア装置によってユーザに提供される。第1のマルチメディア装置で、ユーザは、制御インタフェース（例えば、リモコン）を使用し、ビデオ・プログラム内の一つ以上の位置を選択する。マルチメディア装置は、制御インタフェースから信号を受信し、ビデオ・プログラムのどの位置が選択されたかを決定する。マルチメディア装置は、選択された位置に関するインバンド・データパターンを計算し、上記と同じ方法で、イベント識別データのように、インバンド・データパターンを格納する。
【００２１】
選択された位置に関するイベント識別データは、他のマルチメディア装置に提供してもよい。イベント識別データを使用して、他のマルチメディア装置は、ビデオ・プログラム内で位置を認識するために、ビデオ・プログラムと関連したインバンド・データパターンに適合することを試みる。
【００２２】
一実施例によれば、ビデオ・プログラムの選択された位置は、イベントまたはビデオ・セグメントを表す。さらに、他の実施例によれば、ビデオ・セグメントが認識されるとき、ビデオ・プログラムの再生の間、ユーザが、選択された位置に直接スキップできるように、ビデオ・タグをマルチメディア・コンテンツ・ストリーム内の適当な場所に入れるようにしてもよい。
【００２３】
さらに、他の実施例では、一旦ビデオ・プログラムの選択された位置を表すビデオ・タグが生成されると、字幕データをコンテンツ・ストリームから取り除いてもよく、かつコンテンツ・ストリームを携帯機器に提供してもよい。携帯機器は、ビデオ・プログラム内の特定の位置またはセグメントを明示するために、ビデオ・タグを使用する。これに代えて、マルチメディア・コンテンツ・ストリームにビデオ・タグを入れる代わりに、コンテンツ・ストリームの未編集のバージョンを、選択された位置を表すデータとともに、マルチメディア装置に提供してもよい。選択された位置を表すデータは、マルチメディア・コンテンツ・ストリームから分離して提供してもよい。携帯機器は、ビデオ・プログラム内の関心を引く位置を特定し、ユーザに位置を表示するためのデータを使用してもよい。これに代えて、携帯機器は、何らかの適切な方法で選択された位置を表すデータを使用してもよい。
【００２４】
他の実施態様の場合、本発明は、装置およびコンピュータ可読媒体を含む。
【００２５】
2.0  構造的な概要
本記載を通して、多数の用語は特定の概念を言及するために使用され、これらはここで定義される。具体的には、「インバンド・データ」は、オーディオおよび／またはビデオ・データを送信するために使用されるのと同じチャネルまたは「バンド」上で送信される信号データである。集合的に、インバンド・データは、「インバンド・データストリーム」に含まれる。一実施例によれば、インバンド・データストリームは、マルチメディア・コンテンツ・ストリームの字幕データまたはエンハンスト・テレビジョン（ETV）信号データを包含することができる。「インバンド・データパターン」は、インバンド・データストリームの特定のセグメント上で生じるインバンド・データを包含する。インバンド・データパターンは、一部のインバンド・データストリームから選択されるインバンド・データのシーケンスを識別する。例えば、インバンド・データパターンは、インバンド・データストリームの特定のセグメントにまたがる一まとまりの字幕データまたはETV信号データとしてもよい。「イベント識別データ」は、一つ以上のインバンド・データパターンを識別するデータである。さらに、イベント識別データは、インバンド・データパターンの認識に応答してアクションを実行するためのコマンド・データと同様に、マルチメディア・コンテンツ・ストリーム内のイベントを記載するメタデータのような付加的データを包含することもできる。イベント識別データは、マルチメディア・コンテンツ・ストリームのインバンド・データを認識し、マルチメディア・コンテンツ・ストリーム内のポイントを配置するために、イベント識別データを使用するマルチメディア装置に提供することができる。
【００２６】
図1を参照すると、一実施例によれば、インバンド・データの認識および同期するためのシステムが示される。システムは、任意型の適当な通信インタフェース（例えば、イーサネット（登録商標）または無線通信ポート）によるネットワーク105に各々通信で接続されたDVR 102および104を含む。さらに、システムは、サーバ106A、コンテンツ・プロバイダ106B、パーソナル・コンピュータ101Aおよび携帯機器101Bを包含する。
【００２７】
パーソナル・コンピュータ101Aは、デスクトップまたはラップトップコンピュータのようなパーソナル・コンピューティング装置でもよく、任意型の適当なインタフェースによってネットワーク105に接続されてもよい。パーソナル・コンピュータ101Aは、携帯機器101Bにも接続される。携帯機器101Bは、ハンドヘルド・コンピューティング装置、携帯電話、携帯用のメディアプレーヤまたはマルチメディア・コンテンツを表示することができるその他の携帯機器である。ネットワーク105を通して、DVR 102および104、パーソナル・コンピュータ101Aおよび携帯機器101Bの各々が、サーバ106Aおよびコンテンツ・プロバイダ106Bと通信する。
【００２８】
ネットワーク105は、通信システムの装置間でのデータ交換を提供する任意型の媒体またはメカニズムによって、実施することができる。ネットワーク105の例としては、ローカル・エリア・ネットワーク（LAN）、ワイド・エリア・ネットワーク（WAN）、イーサネット（登録商標）、またはインターネットのようなネットワーク、または一つ以上の地上、衛星、無線リンクが挙げられるが、これらに限定されるものではない。代わりに、または、加えて、ネットワーク105に接続される多数の装置は、通信リンクを通して相互に直接接続してもよい。
【００２９】
一実施例において、DVR 102および104は、DVR 102および104が視聴者の興味を満たすためにサーバ106Aの中で独立して作動することを可能にするデータのプログラム・ガイド・データ、グラフィカルなリソース（例えばフォント、画像、その他）サービス情報、ソフトウェア、広告、イベント識別データおよび他の形式を提供するサーバ106Aと通信する。
【００３０】
コンテンツ・プロバイダ106Bは、無線の放送、衛星通信または同軸ケーブルによってDVR 102および104に、直接マルチメディア・プログラム・コンテンツを提供することもできる。マルチメディア・プログラム・コンテンツは、DVRユーザに表示するための、長編の映画、ホームコメディ、バラエティーショー、トークショー、広告、その他のコンテンツを包含する。さらに、コンテンツ・プロバイダ106Bは、また、サーバ106AがDVR 102および104を解釈し、提供するためにプロモーションのデータ、アイコン、ウェブ・データおよびその他の情報を包含するサーバ106Aに、付加的データを提供する。他の実施例によれば、コンテンツ・プロバイダ106Bは、また、処理のためにサーバ106Aに、マルチメディア・プログラム・コンテンツを提供する。サーバ106Aは、マルチメディア・プログラム・コンテンツを処理し、イベント識別データを作成し、DVRおよびその他の装置にイベント識別データを提供する。
【００３１】
マルチメディア装置は、マルチメディア・コンテンツ・ストリームに認識し、同期するために、イベント識別データを使用する。次に図2を参照すると、インバンド・データの認識および同期のための装置の構成要素を例示するブロック図が、一実施例に従って示される。特に図2は、DVR 200の構成要素を表す。実施例の必要上参照は、明細書を通してDVRになされる点に注意すべきである。しかしながら、本発明はこのように限定されるものではなく、インバンド・データへ認識し、同期する処理は、どのようなマルチメディア装置またはコンピュータ・システムのタイプでも実行することができる。
【００３２】
DVR 200は、一般に、（コンテンツ・プロバイダ106Bまたはサーバ106Aからマルチメディア・プログラム・コンテンツを受信するために、入力モジュール202Aによって示される）複数の構成要素を備える。一実施例によれば、マルチメディア・コンテンツ・ストリームを表す放送信号は、コンテンツ・プロバイダ106BからDVR 200に送信される。DVR 200は、入力モジュール202Aを介してアンテナ、有線テレビ・システム、衛星受信器またはその他の伝送システムからマルチメディア・コンテンツ・ストリームを表す放送信号を受信する。入力モジュール202Aは、受信と同時に録画するために、複数の信号を取り込めるように、複数のチューニング・モジュールを備えることができる。さらに、入力モジュール202Aは、例えば、全国テレビジョン標準方式委員会（NTSC：National Television Standards Committee）、または、PAL放送、および、デジタル衛星システム（DSS：Digital Satellite System）デジタル放送サービス（DBS：Digital Broadcast Services）または先進テレビジョン標準方式委員会（ATSC：Advanced Television Standards Committee）のようなデジタル形式などの多数の形式のTV入力ストリームをとる。DBS、DSSおよびATSCは、Moving Pictures Experts Group 2（MPEG2）およびMPEG 2トランスポートと呼ばれる標準規格に基づく。テレビ受像機が多重化信号のプログラムを見つけ出すために、入力ストリームを逆アセンブルできるように、MPEG2トランスポートは、TVソース送信器からデジタルデータストリームをフォーマットするための標準規格となっている。
【００３３】
DVR 200は、また、入力モジュール202Aから受信されるマルチメディア・コンテンツ・ストリームの一つ以上の部分を録画して、記憶装置214のデジタルデータストリームとしてマルチメディア・コンテンツ・ストリームを格納するために機能的な録画モジュール204を包含する。録画モジュール204は、デジタルデータストリームのセグメントを保持するように設計される記憶装置214のような、少なくとも一つの記憶設備上にデジタルデータストリームを格納することによって、着信マルチメディア・コンテンツ・ストリームを録画する。一実施例によれば、記憶装置214は、DVR 200上に設置されるハード・ディスク・ドライブでもよい。これに代えて、記憶装置214は、任意型の揮発性および／または不揮発性記憶媒体（例えば、フラッシュ・メモリ）でよく、さらに、取外し可能な記憶媒体（例えば、DVD-ROMディスク）で構成してもよい。DVR 200が、あらゆるそれらの組み合わせで、上記のタイプの複数の記憶装置、記憶媒体または取外し可能な記憶媒体を含むことができることに注意すべきである。
【００３４】
再生の間、信号が標準規格テレビ受像機に配信される出力モジュール202Bを介して、デジタルデータストリームは、アナログ信号に変換され、その時RF搬送波上へ変調する。これに代えて、出力モジュール202Bは、デジタル信号をテレビ受像機またはビデオモニタに配信してもよい。例えば、DVR 200は、デジタル・ビジュアル・インタフェースポート（DVI）をDVIケーブルを介してTVにデジタル信号を送信するために利用してもよい。これに代えて、出力モジュール202Bは、ケーブルを用いずに内部的にアナログおよび／またはデジタル信号をテレビ受像機に配信してもよい。例えば、DVR 200はテレビ受像機の一部としてもよく、DVR 200と表示画面間の通信は、テレビ受像機に配置されるシステムバスを介して内部的に行われる。
【００３５】
他のタイプのデータと同様に、マルチメディア・コンテンツ・ストリームを録画して、格納するために、DVR 200は、記憶装置214を包含する。記憶装置214は、ハード・ディスク、メモリまたはDVR 200に配置されるその他の形式の記憶域としてもよい。記憶装置214は、DVR 200に使用するために、プログラムの要素またはマルチメディア・コンテンツ・ストリームだけでなく、付加的データも格納するために使用することができる。例えば、将来の検索のために記憶装置214にイベント識別データを格納することができる。記憶装置214がDVR 200内のモジュールとして現れるが、記憶装置214は、DVR 200の外側に配置してもよく、DVR 200はインタフェース（例えば、通信インタフェース206）を使用して、記憶域と通信することができる。
【００３６】
また、DVR 200は、通信インタフェース206を包含し、イーサネット（登録商標）、ワイヤレス・ネットワーク、モデムまたはその他の標準規格の通信を介して、ネットワーク105と通信する。他の実施態様において、通信インタフェース206は、任意型の通信ポート（例えば、同軸ケーブル、赤外線、光ファイバ、シリアル・ポート）とすることができる。1つの例によれば、データは、ネットワーク105上のサーバ106Aから通信インタフェース206に接続されたイーサネット（登録商標）ケーブルを使用してDVR 200へ通信される。通信インタフェース206を使用して、DVR 200は、LANを通してPC101Aまたは携帯機器101Bと通信することができる。
【００３７】
入力モジュール202Aは、DVRユーザに録画および再生のためにマルチメディア・コンテンツ・ストリームを受信する。マルチメディア・コンテンツ・ストリームは、入力モジュール202Aで受信されると、録画モジュール204によって録画され、出力モジュール202Bを介してユーザに表示するために処理される。表示のためのマルチメディア・コンテンツ・ストリームの処理は、記憶装置214と、その後の表示のために出力モジュール202Bに、マルチメディア・コンテンツ・ストリームを送信することを包含する。実質的に、DVRは生再生の間、マルチメディア・コンテンツ・ストリーム部分を録画するので、全てのビデオ・プログラムを録画することなく、ユーザが一時中断して、生放送を巻き戻すことができる。マルチメディア・コンテンツ・ストリームの処理ついては、本出願人によって所有され、本願明細書に参照によって完全に組み込まれている、「マルチメディアの時間的歪みシステム」と称される米国特許6,233,389号においてさらに詳細に記載されている。
【００３８】
DVR 200の動作の間、解析モジュール210は、インバンド・データ（例えば、字幕データまたはETV信号データ）のためにリスンする。マルチメディア・コンテンツ・ストリームが録画されると共に、解析モジュール210はストリームのインバンド・データ部分を監視する。これに代えて、解析モジュール210は、その他の時間（例えば、マルチメディア・コンテンツ・ストリームの再生）の間、インバンド・データを監視してもよい。
【００３９】
一実施例によれば、マルチメディア・コンテンツ・ストリームはMPEGトランスポート・ストリームであり、インバンド・データはプライベートデータ・イベントとしてオーディオおよびビデオ・データによってインタリーブされる。インバンド・データがコンテンツ・ストリーム内の独立のイベントであるので、DVR 200のようなマルチメディア装置によって容易に認識される。さらに、オリジナル放送がアナログ形式の場合には、解析モジュール210によって処理されるとき、マルチメディア・コンテンツ・ストリームがMPEGトランスポート・ストリームの形式になるように、DVR 200は入力モジュール202Aでマルチメディア・コンテンツ・ストリームをデジタル化するために必要な複数の構成要素を含む。米国特許6,233,389号に詳しく記載されているように、ビデオおよびオーディオが、パッケタイズド・エレメンタリ・ストリーム（PES：Packetized Elementary Stream）に入れられるように、インバンド・データは抽出される。インバンド・データは、後に、解析モジュール210による処理、および、出力モジュール202Bによる表示のために、オーディオおよびビデオと結合される。
【００４０】
マルチメディア・コンテンツ・ストリームと同期するために、DVR 200は、また、パターン認識ステートマシン212を含む。実施例において、パターン認識ステートマシン212は、マルチメディア・コンテンツ・ストリーム内でインバンド・データパターンを識別するためのアルゴリズムを表す。インバンド・データを既知のインバンド・データパターンと適合させる試みで、パターン認識ステートマシン212は、周知のインバンド・データパターンを包含するイベント識別データを処理する。
【００４１】
一実施例によれば、パターン認識ステートマシン212は、記憶装置214に格納されたイベント識別データのインバンド・データパターンを有する解析モジュール210からのインバンド・データに適合させることを試みるステート・ベースのアルゴリズムである。適合が生じる場合、パターン認識ステートマシン212は、認識されるインバンド・データパターンと関連するメタデータを検査するDVR 200に、適合を報告する。メタデータに基づいて、DVR 200は、マルチメディア・コンテンツ・ストリームの同期に多くのアクションを実行することができる。
【００４２】
DVR 200の構成要素がDVRとの関係について記載されているが、モジュールがDVR 200の各モジュールの機能を実行することができるテレビ受像機に収容されるように、上記のモジュールをテレビ・システムに組み込んでもよいことに注意すべきである。さらに、他の実施例では、上記のモジュールは、記載された機能を実行することができる多くの装置の中で配置されてもよい。これにより、記載された構成要素の動作によって、DVR 200は、インバンド・データを認識することができ、インバンド・データにアクションおよびイベントを同期させることができる。
【実施例】
【００４３】
3.0  インバンド・データの認識および同期の方法
上記したように、インバンド・データは、多くの形式をとることができる。そのような二つの形式は、字幕データおよびETV信号データを包含する。しかしながら、本発明は、字幕およびETV信号データに限定されず、他のタイプのインバンド・データにも適用できる点に注意すべきである。
【００４４】
3.1  字幕データ
マルチメディア・コンテンツ・ストリーム内のインバンド・データの一つのタイプは、字幕データである。字幕データは、ユーザに表示するための字幕テキストとビデオ・プログラミングと連動する字幕制御を表すデータである。マルチメディア装置は、字幕データを認識することができ、かつ本願明細書に記載されるようなプロセスを用いて、さまざまな方法でアクションおよびイベントを字幕データに同期させることができる。
【００４５】
マルチメディア装置は、マルチメディア・コンテンツ・ストリームを認識しかつ同期させるために、字幕データパターンを使用してもよい。字幕データに利用可能なデータパターンのタイプは、非常に多くある。例えば、字幕データによって定義されるその他のイベントと同様に、異なったデータパターンが、実際の字幕テキスト（字幕制御データ）内に存在してもよい。字幕データ内の異なったパターンの認識によって、DVRは、マルチメディア・コンテンツ・ストリーム内のイベントを識別することができる。
【００４６】
字幕データ内のパターンを認識する1つの方法は、字幕テキストを表し、かつハッシュ値シーケンスのパターンを識別するハッシュ値を計算することである。これにより、一実施例によれば、マルチメディア装置（例えば、DVRまたはサーバ）で、字幕データは解析され、ハッシュ値は字幕データに対応して生成される。そして、ハッシュ値は、特定のビデオ・プログラムまたはセグメントと関連したハッシュ値シーケンスにコンパイルされ、さらにマルチメディア装置で処理するために、コマンド・アンド・コントロール情報を定義するメタデータと組み合わせられる。
【００４７】
このハッシュ・シーケンスおよびメタデータは、マルチメディア装置（例えば、ハッシュ値シーケンス・データの形式のDVR）に提供される。マルチメディア装置は、字幕データに認識、および、同期のためにハッシュ値シーケンス・データを使用する。適合アルゴリズムは、マルチメディア装置がローカルに格納した複数のハッシュ・シーケンスの字幕データから生成されたハッシュ値を、シーケンシャルに比較するために、マルチメディア装置により用いられる。一実施例によれば、適合アルゴリズムは、ハッシュ値シーケンス・データによって識別されるハッシュ・シーケンスで適合が生じたかどうか、生成されたハッシュ値および報告を処理するステートマシンによって実行される。
【００４８】
3.1.1  ハッシュ値シーケンス・データの生成
一実施例によれば、字幕データを認識し、コンピュータ・システムの字幕データにアクションおよびイベントを同期させるために、ハッシュ値シーケンス・データが生成され、DVR 102および104などの装置に提供さえる。また、DVR 102および104の各々は、ユーザに表示するためのビデオ・プログラムを含む一つ以上のマルチメディア・コンテンツ・ストリームを受信する。本明細書で定義されるように、ビデオ・プログラムは、DVRのユーザに再生される長編の映画、バラエティーショー、トークショー、音楽ビデオ、ホームコメディ・プログラム、コマーシャル、テレビジョンの生放送またはその他のマルチメディア・コンテンツでもよい。
【００４９】
字幕データは、一実施例によれば、マルチメディア・コンテンツ・ストリームと関連したデータの分離したストリームにおいて含まれてもよい。例えば、プログラムがデジタル形式の場合、字幕データはプレイベートデータ・チャネルの一部としてMPEG2ストリーム内で通信される。しかしながら、アナログフォーマットで通信するときは、字幕データは、代わりに多数の標準規格方式でアナログTV信号の垂直帰線消去時間（VBI：Vertical Blanking Interval）に調整される。例えば、北米基本テレテキスト標準（NABTS：North American Broadcast Teletext Standard）は、FCCが、字幕（CC：Closed Caption）および拡張データサービス（EDS：Extended Data Services）にライン21の使用を命令するとき、NTSC信号のライン10から20上に情報を調整するために使用することができる。しかしながら、アナログ字幕信号は、それらがMPEG2プライベートデータ・チャネルを介して配信されるかのように、DVRの入力モジュールによって復号化され、DVRのその他の構成要素へ渡される。したがって、上記の通りに、DVR 200の解析モジュール210は、もとがアナログまたはデジタル形式でも放送される字幕データを処理することができる。マルチメディア・コンテンツ・ストリームの字幕データの位置に関する詳細な情報は、出願人によって所有され、本願明細書に参照によって完全に組み込まれている、「字幕のタグ付けシステム（Closed-Caption Tagging System）」と称される米国特許出願09/665,921号に見つけることができる。
【００５０】
[0061] 他の実施例では、字幕データは、マルチメディア・コンテンツ・ストリーム内に検出可能な形式で含まれてもよい。サーバ106AおよびDVR 200は、字幕データを読み込み、解析することができる。
【００５１】
認識している字幕データおよび同期アクションの処理およびマルチメディア・コンテンツ・ストリームの字幕データのイベントの一部として、また、DVR 102および104の各々は、イベント識別データを受信する。一実施例によれば、イベント識別データは、ハッシュ値シーケンス・データである。ハッシュ値シーケンス・データは、多数のソース（例えば、サーバ106A）から着信してもよい。例えば、サーバ106Aは、マルチメディア装置に使用するために、ハッシュ値を計算して、ハッシュ・シーケンスを決定することによって、プログラム・コンテンツを前処理することができる。マルチメディア装置へ放送される前に、プログラム・コンテンツはコンテンツ・プロバイダ106Bによってサーバ106Aに提供してもよい。このように、マルチメディア装置が関連するプログラム・コンテンツを受信する前に、サーバ106Aはマルチメディア装置にハッシュ・シーケンスを提供してもよい。これに代えて、シーケンス・データは、他のコンピューティング装置（例えば、他のDVR）から着信してもよい。
【００５２】
次に図3Aを参照すると、一実施例によるハッシュ値シーケンス・データを生成するため
の方法を表すフローチャートが示される。ステップ302で、サーバ106Aは、コンテンツ・プロバイダ106Bから一つ以上のビデオ・プログラムを表すデータを受信する。データは、マルチメディア・コンテンツ・ストリームの形式、または、マルチメディア・コンテンツ・ストリームから分離した個々のビデオ・プログラムデータとしてもよい。ビデオ・プログラムデータとともに、コンテンツ・プロバイダ106Bは、サーバ106Aにビデオ・プログラムと関連した字幕データも供給する。実施例において、字幕データは、コンテンツ・プロバイダ106Bによって供給されるビデオ・プログラムを含めたマルチメディア・コンテンツ・ストリーム内に埋め込んでもよい。さらに、コンテンツ・プロバイダ106Bは、ビデオ・プログラムと関連したメタデータを含むイベント情報を提供してもよい。
【００５３】
サーバ106Aは、ユーザにビデオ・プログラムを表示すると共に、マルチメディア装置によって作動されるイベントまたはアクションを指定する情報を定義する。この情報は、ユーザに表示するためのグラフィカル・アイコンまたは付加的なコンテンツへの参照を包含してもよい。コンテンツまたはアイコンは、マルチメディア装置で提示され、または、インターネット、ネットワークまたはその他のDVRを介してマルチメディア装置によって得られる。さらに、その情報は、ビデオ・プログラム内の特定のイベントを表すデータを提示してもよい。例えば、スポーツ放送が別々の期間と休憩時間に分けられる場合、コンテンツ・プロバイダ106Bは、サーバ106Aに休憩時間がマルチメディア・コンテンツ・ストリームのどこで生じるかについて明示するイベント情報を提供することができる。この情報を使用して、サーバ106Aは、DVRがビデオ・プログラム内で自動的に休憩時間の始まりと終わりを識別することが可能となり、ハッシュ値シーケンス・データを生成することができる。休憩時間が識別されたことで、DVRユーザは、録画された放送を視聴するときに、DVRに自動的に休憩時間をスキップすることを要求することができる。
【００５４】
さらに、一実施例によれば、サーバ106Aは、DVRのような任意のマルチメディア装置から、ビデオ・プログラムの字幕データを得ることができる。例えば、DVR 102は、既に字幕データを含んだビデオ・プログラムを録画してもよい。DVR 102はネットワーク105の上のサーバ106Aに、サーバ106Aによる処理のために、ビデオ・プログラムと関連した字幕データを包含する録画されたビデオ・プログラムを送信することができる。
【００５５】
ステップ304で、サーバ106Aは、ハッシュ値シーケンス・データを作成するのに使用するハッシュ値に、ビデオ・プログラムの字幕データを解析する。サーバ106Aは、ハッシュ値を作成するために、多数の異なる方法を使用してもよい。字幕データのハッシュ値の作成に使用される方法は、ビデオ・プログラムの視聴者に字幕テキストを表示する字幕ストリームによって、使用される方法を変化させてもよい。
【００５６】
これにより、サーバ106Aは、どのように字幕モードが字幕データを表示するために使用されているか経過を追う。例えば、一実施例によれば、さらに本願明細書に記載されるように、字幕テキストはポップアップ・モード、ロールアップ・モードまたはペイントオン・モードを使用しているユーザに処理、および、表示されてもよい。使用されるモードに応じて、ハッシュ値は、ハッシュ関数をテキスト・ラインの多数の文字に適用する結果を表す。ハッシュ関数Hは、可変サイズの入力mをとり、h=H（m）となるハッシュ値hと称される、固定サイズの文字列を返す変換式である。さらに本願明細書に記載されるように、字幕データの可変サイズ入力は、使用される字幕方法による。さらに、一実施例によれば、字幕データのラインに入れることができる文字の量は、制限される。
【００５７】
しかしながら、構文解析部312は、異なるシステムに適応するためにテキスト・ラインの多くの文字を受け入れるように構成してもよい。これにより、後述するように、構文解析部312は、字幕データ内で独立したイベントを検出することに応答して、いつハッシュ値を生成するかを決定する。字幕データの範囲内の独立したイベントは、コマンド（例えば、「キャリッジ・リターン」コマンド）としてもよい。「キャリッジ・リターン」コマンドは、テキスト・ラインの終わりまたは始まりを定義するために使用してもよい。これにより、例えば、テキスト・ラインが完了するときに、「キャリッジ・リターン」はカーソル位置を次のラインにリセットするようにする。
【００５８】
ハッシュ関数は、テキストの変化するサイズから標準化されたハッシュ値を作成するのに役立つ。一実施例によれば、文字は、情報交換用米国標準コード（ASCII：American Standard Code for Information Interchange）によって定義されるのと同種の16進数を表すことができる。さらに、いくつかの字幕実施は、修正されたASCII標準規格を表示変形シンボル（例えば、ビデオ・プログラムのオーディオにおける楽音）に利用してもよい。
【００５９】
一実施例によれば、解析モジュール210は、ハッシュ値を製作するために、字幕データの16進表現にハッシュアルゴリズムを適用する。さらに、解析モジュール210は、使用される字幕方法よって、ハッシュ値を計算する方法を調整する。
【００６０】
図3Bを参照すると、一実施例に従って、ハッシュ値シーケンス・データを生成するための方法を例示するブロック図が示される。フレーム310A〜310Dは、106Aサーバで受信されるマルチメディア・コンテンツ・ストリーム内のビデオ・プログラムのフレームを表す。一実施例によれば、ビデオ・プログラムは、毎秒30フレームのレートで再生される。フレーム310A〜310Dの各々は、フレームレートに従って特定の時間で表示される。例えば、フレーム310Aは、時間=1:00で生じ、フレーム310Bは、時間=1:05で生じる。このため、毎秒30フレームのフレームレートとすると、フレーム310Bは、フレーム310A後、フレーム番号151または150のフレームで生じる。
【００６１】
ここで、フレーム310A〜310Dは、単にマルチメディア・コンテンツ・ストリーム内の多数のフレームの中の4つの独立したフレームにすぎず、多数のフレームが、310Aと310dの各々のフレームの間に存在してもよいことに注意すべきである。フレーム310A〜310Dにおいて、ハッシュ値は、それぞれ、テキストA〜Dに対して生成される。テキストA〜Dは、字幕ストリームの中に含まれるテキストであり、フレーム310A〜310Dは、ハッシュ値がテキストに対して生成される時間を表す。しかしながら、通常、字幕テキストが一度に一つ以上のフレームに対して表示する点に注意すべきである。一実施例によれば、字幕データのための転送レートはビデオの1フレームにつき2バイトであり、テキストの全ラインの伝送または受信は数フレームを必要とする。テキストBは、例えば、フレーム310Bに先行して複数のフレームを表示してもよい。しかしながら、フレーム310Bは、ハッシュ値がテキストBのために生成されるマルチメディア・コンテンツ・ストリーム内に位置する。
【００６２】
さらに、フレーム310A〜310Dの各々は、特定の時間に表示されるので、フレームが表示されているビデオ・プログラムまたはマルチメディア・コンテンツ・ストリーム内で、時間を表す相対的時間データを含むメタデータを作成することができる。したがって、フレーム310Bが1:05の時間にテキストBを表示すると共に、フレーム310Aは、1:00の時間にテキストAを表示している。構文解析部312は、それぞれ、フレームのハッシュ値と関連したハッシュ値314A〜314Dおよびメタデータを生成するために、フレーム310A〜310Dの各々からテキストA〜Dを読み込む。しかしながら、ハッシュ値が生成されるたびに、メタデータを作成する必要がない点に注意すべきである。
【００６３】
他の実施例では、何のテキストも表示していない付加的なフレームは、構文解析部312によって解析されてもよい。しかしながら、それらのフレームが字幕テキストを含まないので、ハッシュ値の生成は誘発されない。むしろ、より詳細に本願明細書に記載されているように、トリガー・イベントが生じるまで、構文解析部312は、ハッシュ値を生成しない。使用される字幕方法に応じて、トリガー・イベントは、場合により変化する。例えば、一実施例によれば、トリガー・イベントは、字幕データ内の「キャリッジ・リターン」コマンドの識別である。「キャリッジ・リターン」コマンドが字幕データ内で検出されるとき、構文解析部312は、字幕テキストの一つ以上のラインがビデオ・プログラム内で秒数にまたがることを表すハッシュ値を生成する。
【００６４】
表320は、ハッシュ値のリストがフレーム310A〜310Dによって表されるビデオ・プログラムから構文解析部312によって生成されることを表す。表320は、ハッシュ値列、時間列および時間オフセット列を包含する。ハッシュ値列は、フレーム310A〜310Dに対して構文解析部312によって生成されたハッシュ値を表す。時間列は、各ハッシュ値が適切な字幕方法に従って生成された相対時間を表す。時間値が、全マルチメディア・コンテンツ・ストリーム、特定のビデオ・プログラムを含んでいるフレーム310A〜310DまたはDVRの現実の時間と関連してもよい。
【００６５】
構文解析部312がフレームのハッシュ値を生成するとき、構文解析部312は、ハッシュ値が生成された時間を決定するために、DVR 200のタイミング・モジュール209に問い合わせる。構文解析部312が時間列の時間を生成に同じ相対時間ユニットを使用する限り、DVR 200はいつでも生成されたハッシュ値とハッシュ値シーケンス・データ間の相違を正確に追うことができる。時間オフセット列は、あるハッシュ値と関連した時間データとその後のハッシュ値と関連した時間データの違いを明示する。例えば、ハッシュ値「3D59」は、時間オフセット値を有しないことが報告される。この場合、ハッシュ値「3D59」がハッシュ・シーケンスの始まりであると決定され、したがって、時間オフセット値は必要ではない。しかしながら、ハッシュ値「2Z55」に対して、時間オフセット値の：05秒が報告（ハッシュ値「3D59」が生成されたあと、およそ：05秒でハッシュ値「2Z55」が生成されたことを明示する）される。この情報は、ビデオ・プログラムまたは、これに代えて、特定のイベントまたはDVRのビデオ・プログラム内の位置の開始を配置することに使用してもよい。ビデオ・プログラムにコンピュータ・システムを同期させるために、時間オフセット情報を使用する処理は、3.3節でより詳細に考察される。
【００６６】
このように、構文解析部312は、ビデオ・プログラム内の字幕データを解析する。図3Aに戻って参照すると、一旦、構文解析部312がハッシュ値にビデオ・プログラムの字幕データを解析すると、サーバ106Aはステップ306においてビデオ・プログラムと関連したハッシュ・シーケンスを生成し続ける。構文解析部312が、ビデオ・プログラムまたはビデオ・プログラムセグメントのハッシュ値の特定の番号を生成することを完了するとき、構文解析部312は、生成されたハッシュ値からハッシュ値シーケンス・データを作成する。
【００６７】
ハッシュ値によって表される時間の量と同様に、ハッシュ・シーケンスのハッシュ値の数は、構文解析部312、サーバ106Aまたはその他の装置これに代えてハッシュ値シーケンス・データの作成の制御を望むユーザによって任意にセットすることができる。例えば、コンテンツ・プロバイダ106Bがサーバ106Aに解析のために特定のビデオ・プログラムを供給した場合、コンテンツ・プロバイダ106Bは、5〜10秒の間に継続するビデオ・プログラムの特定の部分の間、アイコンがユーザ入力を要求する画面上に現れることを明示するようにしてもよい。図3Dは、一実施例に従って表示画面に現れるこの種のアイコンを例示している図表である。図3Dによれば、表示画面400は、アイコン404を示す。アイコン404は、ダイアログを要請するユーザ入力404Aを含む。この例では、コンテンツ・プロバイダ106Bは、サーバ106Aに、アイコン404がビデオ・プログラムの特定の部分の間、表示画面400上に現れることを要求する。ここで、構文解析部312は、ビデオ・プログラムの選択された部分の少なくとも10秒にまたがって、ハッシュ値を生成するように構成することができる。これは、コンピュータ・システムにハッシュ値の全シーケンスを認識し、ビデオ・プログラムまたは部分を明確に識別するのに十分な時間を与え、少なくともビデオ・プログラムの選択された部分に対してハッシュ値が生成されることを確保する。さらに、遅延または誤差の範囲を補償するために、構文解析部312は、ビデオ・プログラムの選択された部分より多くにまたがって、ハッシュ値を生成するように構成してもよい。
【００６８】
これに代えて、任意のハッシュ値シーケンス・データの長さは、ハッシュ・シーケンス内に生成した各ハッシュ値が、どれくらいユニークであるかによって決定してもよい。例えば、ある状況で、同じ字幕データは、結果として同じハッシュ値になる可能性がある。2つのビデオ・プログラムがきわめて類似の字幕データ（例えばごくわずかな字幕テキストを有する2つのコマーシャル）を含む場合、それらは最初にプログラムの前半部に対して同じハッシュ値を生成する可能性がある。しかしながら、構文解析部312が、より長い間特定のビデオ・プログラムに対してハッシュ値を生成するほどハッシュ・シーケンスは、よりユニークとなる。したがって、構文解析部312は、ビデオ・プログラムにハッシュ値シーケンス・データの適合の精度を制御するために、ハッシュ・シーケンスに包含する多くのハッシュ値を選択するように構成するようにしてもよい。さらに、構文解析部312がハッシュ値を生成するとき、サーバ106Aはメタデータをハッシュ値シーケンス・データと関連させてもよい。上記の実施例で考察するように、関連するメタデータはアイコン400が入力をユーザに要請して表示されることを明示してもよい。
【００６９】
ハッシュ値が生成されるとき、構文解析部312は各ハッシュ値が生成された時間と関連した時間データを包含する。しかしながら、同じ字幕データまたは同じハッシュ値も、使用される字幕方法に従って、異なる時間に生成されてもよい。
【００７０】
したがって、図3Cを参照すると、異なる字幕使用方法が、一実施例によって示される。それぞれ、字幕データは、ポップアップ・モード340、ロールアップ・モード342またはペイントオン・モード346でユーザに表示される。図3Cは、字幕ストリームおよび表示領域からのデータが、ユーザに出力または字幕テキストの実際の表示を表していることを表している着信CCデータ領域を示す。
【００７１】
3.1.1.1  ポップアップ・モード
ポップアップ・モード340において、一実施例によれば、1〜4のテキスト・ラインが同時に画面上に現れ、しばらくの間そこにとどまり、それから字幕テキストの次のラインに入れ替わる。
【００７２】
ポップアップ・モード340において、着信字幕データは、バック・バッファ350Bに入れられ、一旦特定のフレームまたはフレームのシリーズの完結したテキストが表示される準備ができるならば、単一の「フリップ・バッファ」コマンドによって表示される。このモードにおいて、「フリップ・バッファ」コマンドが発されるとき、ハッシュ値は表示されているテキストに対して生成される。「フリップ・バッファ」コマンドが発されるとき、バック・バッファ350Bのテキストは、テキストがディスプレイ360に表示されていることを表すフロント・バッファ350Aへ転送される。
【００７３】
ポップアップ・モードにおいて、ユーザにディスプレイ360上の可視テキストを変更する明確に定義されたイベントが二つのだけある。これらのイベントは、(1)バック・バッファ350Bのコンテンツがフロント・バッファ350Aに入れられるように、バッファをフリップすること、および、(2)表示画面360上に表示されたテキストを消去することを包含する。ポップアップ・モードにおけるハッシュ値の生成は、一旦、フリップ・コマンドまたはイレーズ・ディスプレイ・メモリ・コマンドが処理されると、単にバック・バッファに構成されるテキストの経過を追って、バック・バッファ350Bのテキストのハッシュ値を作成する事項である。
【００７４】
これにより、ポップアップ・モードで、構文解析部312は、バック・バッファ350Bにおいて構成されているテキストの経過を追う。構文解析部312は、バック・バッファ350Bを監視すると共に、バック・バッファ350Bのあらゆる蓄積されるテキストの十分な値に対応するハッシュ値を更新し続ける。最初は、バック・バッファ350Bは、空である。テキストが各々のラインに構成されると共に、「カーソル配置」コマンドが発されるまで、構文解析部312は待つ。カーソル配置コマンドは、新たなライン上へテキストカーソルを入れるために使用されてもよい。カーソル配置コマンドに基づいて、構文解析部312は、ラインが完結し、特定のラインに対してハッシュ値を計算することを決定することができる。
【００７５】
最終的には、フロント・バッファ350Aはクリアされ、バック・バッファ350Bはフリップ・バッファ・コマンドの発行によってフロントにフリップされる。バック・バッファ350Bが複数のテキストのラインを含んでもよいことに注意すべきである。複数のテキスト・ラインに対して単一のハッシュ値を生成するために、累積したハッシュ値は、フロント・バッファ350Aに現れているすべてのテキスト・ラインに対して生成される。一旦バック・バッファ350Bがフロント・バッファ350Aにフリップされると、累積したハッシュ値が作成される。これにより、テキストがバック・バッファ350Bにおいてコンパイルされると共に、構文解析部312は上記の通りに、各々のテキスト・ラインに対して個々のハッシュ値の経過を追う。フロント・バッファ350Aにフリップするとき、各々のラインのハッシュ値は累積したハッシュ値を作成するために合わせて結合される。
【００７６】
一実施例によれば、構文解析部312がハッシュ値を生成するとき、さらに構文解析部312は、タイミング・モジュール209からマルチメディア・コンテンツ・ストリームと関連した時間データを読み出す。タイミング・モジュール209は、マルチメディア・コンテンツ・ストリームの開始、カレンダー時間、最後のハッシュ値以降の時間またはマルチメディア・コンテンツ・ストリームの範囲内のビデオ・プログラムの始まりと関連する時間と関連して、マルチメディア・コンテンツ・ストリームのタイミングを明示するようにしてもよい。したがって、図3Bへ戻って参照すると、例えば、構文解析部312は、フレーム310AのテキストAが時間=1:00でフロント・バッファ350Aにフリップされ、「3D59」の対応するハッシュ値を有することを決定する。
【００７７】
3.1.1.2  ロールアップ・モード
字幕テキストを表示するための他のモードは、ロールアップ・モード342である。ロールアップ・モード342（ニュースまたはトークショーのような生放送で、より一般的である）において、テキストは、話すのと同程度にタイプされ、受信されるとすぐにテレビジョン上に現れる。一旦「キャリッジ・リターン」コマンド」を受信すると、テキストがスクロールアップする。キャリッジ・リターン・コマンドは、カーソルにラインの開始に戻らせるコマンドである。カーソルが新しいラインの開始に戻ると、キャリッジ・リターンは新しいラインが構成されていることを明示すために使用されてもよい。一実施例によれば、フレームXがこのようにテキスト・ライン1を包含するように、テキストはディスプレイ360に最初に構成されてもよく、その一方で、着信CCデータ350Cは、テキスト・ライン2〜4といった、その後に構成されるテキストを含む。テキスト・ライン2が表示される準備ができるとき、ディスプレイにテキスト・ライン2の「ロールアップ」によって、テキスト・ライン1がディスプレイ360のフレームYにおいてシフト・アップする。一実施例において、フレームYは、表示される時間で、2つだけのテキスト・ラインを可能にする。これにより、その後のフレームにおいて、テキスト・ライン3が表示される準備ができているとき、テキスト・ライン1は削除され、テキスト・ライン2はディスプレイ360上にあるテキストの第2の行を占めて上方へ移動する。これに代えて、多くのラインをロールアップ・モードでの字幕として供給することができる。
【００７８】
一実施例によれば、ロールアップ・モードにおいてハッシュ値を生成するために、構文解析部312は、テキスト・ラインを監視し、キャリッジ・リターン・コマンドのリスンをする。一旦、構文解析部312がこの種のイベントが生じたと決定すると、構文解析部312は対応するテキストのハッシュ値を生成する。これにより、テキスト・ラインが完結するときに、ハッシュ値は生成され、字幕データはラインの終わりを示す独立したユーザ可視イベントを含む。画面上に表示される全テキスト・ラインに対して累積的なハッシュ値を作成することとは対照的に、画面上に現れるたびに、ロールアップ・モードは可視テキスト・ラインの各々に対してハッシュ値を生成し、報告する。
【００７９】
例えば、一実施例によれば、構文解析部312は、テキストが1つのライン（例えばフレームYのテキスト・ライン1）により、上にスクロールしたとき、テキスト・ラインが完結していることを決定することができる。構文解析部312は、着信CCデータ350内で「キャリッジ・リターン」コマンドを検出するとき、テキスト・ラインが完結していることを検出することができる。したがって、図3Bへ戻って参照すると、例えば、構文解析部312は、テキストBと一致するテキスト・ラインがフレーム310Bで「キャリッジ・リターン」コマンドを検出した後に完結していることを決定し、時間=1:05での「2Z55」のハッシュ値を計算する。
【００８０】
3.1.1.3  ペイントオン・モード
他の字幕モードは、ペイントオン・モード344である。着信CCデータ350Dがフロント・バッファ上に直接構成されることを除いて、ペイントオン・モード344はポップアップ・モード340に同様であり、フロント・バッファのコンテンツがディスプレイに直接供給されるので、視聴者は構成されているテキストを見ることができる。一実施例において、ハッシュ値を生成するために、十分なテキスト・ラインが完結した後に、第1のユーザ可視イベントが生じるまで、構文解析部312は待つ。これにより、ペイントオン・モード344における、ハッシュ値を生成する一つの方法は、表示されているテキスト・ラインを蓄積することと、ラインがそのラインのハッシュ値の生成を完結した後に、第1のユーザ可視イベントを待つことを包含する。第1のユーザ可視イベントは、他のライン、画面のクリアリングまたはポップアップ・モードの新しいテキストを表示する「フリップ・バッファ」コマンドの始まりでもよい。
【００８１】
3.1.2  ハッシュ・シーケンス・メタデータ
使用されている字幕モードのタイプに関係なく、一旦構文解析部312がビデオ・プログラムと関連したハッシュ値を生成するならば、ハッシュ値は付加的データ（例えばハッシュ値の各々に対して時間および時間オフセットデータ）とともに表320に入れられる。表320の累積的なデータは、例えばハッシュ値シーケンス・データがサーバ106Aのような装置によって生成されることを表す。
【００８２】
一旦ハッシュ値シーケンス・データが生成されると、付加的なメタデータはハッシュ・シーケンスと関連することができる。一実施例によれば、付加的なメタデータは、ハッシュ・シーケンスの認識に応じて、いくつかのアクションを実行するためのコマンド・アンド・コントロール・データを包含してもよい。
【００８３】
したがって、図3Bへ戻って参照すると、表330は、ハッシュ・シーケンスと関連したハッシュ・シーケンスおよびメタデータを表している列を包含する。一実施例によれば、ハッシュ・シーケンス3D59、2Z55、A6E3および9Y95は、一つのイベントのイベント1を記載するメタデータを包含する。イベント1は、特定の時間で生じるマルチメディア・コンテンツ・ストリーム内のイベントとしてもよい。例えば、イベント1は、スポーツ・イベントの間の休憩時間のようなビデオ・プログラム内で、特定の位置を定義してもよい。イベント1を定義しているメタデータは、付加情報（例えば、イベントを認識した後にとるビデオ・プログラムの記載およびその後のアクション）を包含してもよい。例えば、イベント1は、イベント1の時にプログラム・ストリームにタグを挿入するためのタグ情報を包含することができる。タグは、ユーザがイベント1に直接閲覧し、または、代わりに、再生中にイベント1をこえてスキップすることができるように操作可能である。マルチメディア・コンテンツ・ストリームのタグの機能は、出願人によって所有され、本願明細書に参照によって完全に組み込まれている、「字幕のタグ付けシステム（Closed-Caption Tagging System）」と称される米国特許出願09/665,921号に詳述されている。
【００８４】
さらに表330に参照して、メタデータは、特定のアクション（例えばハッシュ・シーケンスA6E3、9Y95、E4E9および9F4Uと関連したアクション1）を指定してもよい。一実施例によれば、アクション1は、ハッシュ・シーケンスを認識した後にとるDVRの特定のアクションを記載することができる。例えば、アクション1は、DVRのユーザにアイコンを表示することを包含してもよい。メタデータを定義しているアクション1は、グラフィクスに関する情報およびDVRに接続している表示装置上のアイコン配置と同様に、アクションの長さに関するタイミング情報を包含してもよい。メタデータによって指定されるアクションは、ハッシュ・シーケンスを認識する時間と異なる時間に行ってもよい点に注意すべきである。例えば、メタデータは、アクションがハッシュ・シーケンスの認識の前に一度に行われることを明示してもよい。このように、プログラムが記憶域から再生する場合、DVRは、前方を走査し、ハッシュ比較を実行し、適当な時間にアクションを実行することを知っている。
【００８５】
他の実施形態では、アクション1は、処理にDVRのためのコマンド・データを包含してもよい。コマンド・データは、DVRにマルチメディア・コンテンツ・ストリームの一つ以上の部分を録画して、格納させてもよい。例えば、特定のビデオ・プログラムの生放送の間、DVRがC、D、E、Fのハッシュ・シーケンスを認識して、ハッシュ・シーケンスと関連したコマンド・データを処理する場合、コマンド・データは、直ちにDVRにプログラムの録画を始めさせる。他の実施態様において、コマンド・データは、DVRにハッシュ・シーケンスの認識の後、いつでも生放送の録画を始めさせてもよい。
【００８６】
さらに、ハッシュ・シーケンスと関連したメタデータは、指定されたイベントまたはアクションに限定されないが、DVRまたはメタデータを受信する装置によって理解され、処理することができるデータとしてもよい。
【００８７】
3.1.3  マルチメディア装置によるハッシュ・シーケンスの認識
サーバ106Aがハッシュ値シーケンス・データを蓄積するとき、サーバ106Aは、字幕データを認識し、字幕データを使用しているビデオ・プログラムに同期するためにハッシュ値シーケンス・データを使用するDVR、または、その他の装置にハッシュ値シーケンス・データを送信する。次に図4を参照すると、認識している字幕データの処理の概要を記述するフローチャート、および、字幕データに対する同期のアクションとイベントが示される。ステップ402で、DVR 102は、サーバ106Aから図3Bの表330によって表されるハッシュ値シーケンス・データを受信する。一実施例において、既知の「プル」処理において、DVR 102は、サーバ106Aにハッシュ値シーケンス・データの要求を始めた後に、ハッシュ値シーケンス・データを受信する。これに代えて、既知の「プッシュ」処理において、サーバ106Aは、DVR102にDVR102から要求のない、ハッシュ値シーケンス・データを自動的に送信することができる。DVR 102がハッシュ値シーケンス・データを受信するとき、記憶装置214にハッシュ値シーケンス・データを格納する。
【００８８】
ステップ404で、DVR 102は、ユーザへの表示のためのマルチメディア・コンテンツ・ストリームを受信する。一実施例によれば、マルチメディア・コンテンツ・ストリームは、入力モジュール202Aから受信され、コンテンツ・プロバイダ106Bによって現在放送されているマルチメディア・コンテンツを表してもよい。これに代えて、マルチメディア・コンテンツ・ストリームは、DVR 102の記憶装置214から再生されてもよい。さらに、他の実施例では、DVR 102は、ユーザにマルチメディア・コンテンツ・ストリームを表示せずに、放送またはインターネット経由でマルチメディア・コンテンツ・ストリームを受信してもよい。したがって、DVR 102は、コンテンツ・プロバイダ106Bからコンテンツを受信することができ、記憶装置214のコンテンツを格納することもできる。
【００８９】
マルチメディア・コンテンツ・ストリームが録画または再生する間、ステップ406で、DVR 102はマルチメディア・コンテンツ・ストリームと関連した字幕データの解析を始める。
【００９０】
解析モジュール210は、図3Bのサーバ106Aに関して上に述べた通りに同じようにして字幕データを解析する。これにより、解析モジュール210は、使用される字幕方法（すなわち、ポップアップ、ロールアップまたはペイントオン）に従って、複数のハッシュ値の字幕データを解析する。ハッシュ値を生成している間、解析モジュール210は、ダウンロード、格納、またはサーバ106Aまたはその他のソースからDVR 102によって受信されるハッシュ値シーケンス・データのいずれかに、ハッシュ値を比較し、適合するために使用されるパターン識別ステートマシン212に、各ハッシュ値と関連したハッシュ値およびタイム・スタンプを送信する。
【００９１】
ステップ408で、パターン識別ステートマシン212は、解析モジュール210によって生成されるハッシュ値を監視し、ハッシュ値をステップ402で受信されるハッシュ値シーケンス・データと比較するために使用される。一実施例によれば、パターン識別ステートマシン212は、ステップ402で受信されたハッシュ値シーケンス・データに準じて構成されたステートマシンである。
【００９２】
実施例のために、パターン識別ステートマシン212がノードおよび分岐を含んでいる木の構造をとると仮定する。木の各ノードは、一連のハッシュ値における特定のハッシュ値を表すことができ、木の各「枝」は十分なハッシュ・シーケンスがハッシュ値シーケンス・データによって識別されることを表す。後述するように、この構造は図5Aにおいてさらに参照される。パターン認識ステートマシン212は、木のノードを移動させることによって生成されたハッシュ値に適合させることを試みる。いくらかの与えられたノードで、適合が生じる場合、パターン識別ステートマシン212は次のノードへ進む。初期ノードがハッシュ値シーケンスの終わりを表す場合、適合が生じ、パターン識別ステートマシン212は、ハッシュ値シーケンスが識別されたことを明示することができ、本願明細書に詳細にて説明したように、次々に、DVR 200に適切なアクションを実行させる。
【００９３】
それゆえ、ステップ510で、パターン識別ステートマシン212は、解析モジュール210によって生成されるいくらかのハッシュ値がハッシュ値シーケンス・データ内に含まれるハッシュ値に適合するかどうか決定する。ハッシュ値が適合し、ハッシュ値イベント間の時間差が、予想されるハッシュ・シーケンスの閾値内にある限り、肯定的な適合が報告される。
【００９４】
次に図5Aに参照すると、一実施例によれば、パターン識別ステートマシンの形式のハッシュ値シーケンス・データが示される。ハッシュ値シーケンス・データは、ハッシュ値シーケンス内の個々のハッシュ値を表しているノードを含むステートマシン510によって表される。一実施例によれば、ステートマシン510は、ステートマシンの開始ステートを表すスタート・ノード502を含む。
【００９５】
一実施例によれば、ステートマシン510のノードは、ハッシュ値シーケンス・データにおいて識別される、いくらかのハッシュ・シーケンスの第1のハッシュ値に従ってインデックスを付けられる。ステートマシン510が初期化した後、第1のノード504のハッシュ値が解析モジュール210によって生成されるハッシュ値に適合するかどうか第1に決定してもよい。適合が生じない場合、ステートマシン510はインデックス501を移動させ続け、引き続いて次のノード520をテストする。まれであるが、異なるハッシュ値シーケンスが、同じハッシュ値から開始する可能性があることに注意すべきである。したがって、ハッシュ値「3D59」から開始するハッシュ・シーケンスを表しているノード504は、異なるハッシュ値シーケンス（(1) 3D59、2Z55、A6E3および9Y95、または、(2) 3D59、2Z55、E4E9および9F4U）を表している2つの異なった分岐を含む可能性がある。
【００９６】
一実施例によれば、ステートマシン500は、DVR 200上の軽量の構成要素であり、これは、ステートマシン500がDVR 200の動作の間、最小のシステム・リソースを占めるように設計されていることを意味する。したがって、ステートマシン500は、ハッシュ値シーケンスが認識されたかどうか決定するために、何万ものノードを移動させなければならない場合でさえ、ほんの少しのシステム・リソースしか、ステートマシン500を動作するために必要とされない。したがって、DVRユーザは、ステートマシン500の動作の間、マルチメディア・コンテンツの再生において少しの遅延または性能低下にも気づかないだろう。
【００９７】
一実施例によれば、ステートマシン500の効率は、インデックス501を使用することによりさらに進歩的となる。インデックス501の各ハッシュ・シーケンス内の第1のハッシュ値にインデックスを付けることによって、ステートマシン500は、多くのシステム・リソースを占めることなく比較のための大量のハッシュ・シーケンスを素早く除外することができる。
【００９８】
解析モジュール210から生成されたハッシュ値を処理を開始するために、ステートマシン500は、初期化されて、インデックス501に配置されるノードをテストし開始する。一実施例によれば、解析モジュール210によって生成される第1のハッシュ値は、図3Bのフレーム310AのテキストAに対応する「3D59」である。したがって、ステートマシン500は起動され、ハッシュ値「3D59」を表している第1のノード504をテストし、適合を見つけだし、肯定的な出力を与える。この実施例によれば、いくらかの不成立はステートマシンを下位レベルへ移動させると共に、いくらかの適合はステートマシンを右へ進ませる。しかしながら、他の実施例では、ステートマシン500は、ハッシュ値をテストするのに適しているいかなる方法でも構築されてもよい。
【００９９】
しかしながら、「2Z55」のハッシュ値が解析モジュール210によって最初に報告されたと仮定する。第1のノード504での適合を見つける代わりに、ステートマシン510は否定的な出力を報告し、ハッシュ値「2Z55」を表すインデックス501の次のノード520まで進む。これに代えて、適合が特定ノードで見つけられない場合、ステートマシン510は、ステートマシンをスタート・ノード502でもう一度リセットし、開始させるために失敗ノード515へ進むこともできる。
【０１００】
それゆえ、適合がインデックス501の第1のノードで生じたと仮定して、ステートマシン212は、それから解析モジュール210から次の生成されたハッシュ値を待つ。一実施例において、次の生成されたハッシュ値は、「2Z55」である。それゆえ、ステートマシン510は、「2Z55」を次のノード506の値と比較する。次のノードの値もまた「2Z55」であるので、ステートマシン510は適合を見つけて、ノード508へ進む。しかしながら、適合がノード506で見つけられない場合、ステートマシン500は、失敗ステートへ進まないが、代わりに、「E4E9」を表すノード507でハッシュ値に適合することを試みる点に注意すべきである。このように、それぞれ、2つのハッシュ値シーケンスが「3D59」および「2Z55」のハッシュ値から始めることができるように、ノード506はステートマシン500の分岐を表す。
【０１０１】
解析モジュール210によって生成されるハッシュ値を受信することに応答して、適合が生じないまで、または、ハッシュ・シーケンスの終わりが識別されるまで、ステートマシン500はシーケンシャルに、図5において表される各ノードを移動させる。さらに、ハッシュ値のシーケンスの各ハッシュ値にハッシュ値を適合する間、ステートマシン500は解析モジュール210によって生成されるハッシュ値とハッシュ・シーケンス内のハッシュ値との間で時間オフセットを比較するようにしてもよい。両方のハッシュ値が適合し、両方のハッシュ値の時間オフセット値が適合する場合、ステートマシン500は肯定的な適合が生じたと決定することができる。他の実施形態では、ステートマシン500は、「バッファ」または誤差の範囲を許容することによって、特定のハッシュ値がハッシュ・シーケンス内でハッシュ値の時間オフセットに適合したと決定してもよい。この特定の例によれば、ステートマシン500は、適合が図3Bの構文解析部312によって生成されるそれぞれのハッシュ値を受信した後に、3D59、2Z55、A6E3および9Y95のハッシュ・シーケンスに対して生じたと決定する。
【０１０２】
適合が見つけられないとき、次のハッシュ値が解析モジュール210から受信されると、ステートマシン500はスタート・ノード502および再初期設定の適合処理をリセットする。
【０１０３】
DVR 200の動作を通して、ステートマシン500は、ハッシュ値シーケンスとハッシュ値の適合することを連続的に試みている点に注意すべきである。肯定的な適合が、ステップ412で十分なハッシュ・シーケンスに作成されるとき、ステートマシン500は、適合の成功を報告し、DVR 200にハッシュ値シーケンス・データと関連したメタデータを検査させる。
【０１０４】
他の実施態様において、ステートマシン500は、ハッシュ値シーケンス・データとハッシュ値の適合することを試みるためにハッシュ表を利用する。ハッシュ表は、配列（または検索されるデータが格納されるテーブル）およびマッピング機能で構成されるデータ構造である。ハッシュ表は、サーチ・アルゴリズムで一般的に使用される、周知技術のデータ構造である。
【０１０５】
さらに、もう一つの実施例では、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は複数のステートマシンを含んでもよく、各ステートマシンはインバンド・データの異なるパターンを表すことができる。
【０１０６】
図5Bを参照すると、ハッシュ値シーケンス・データが、一実施例に従って示される。ハッシュ値シーケンス・データは、シーケンス・データ520Aおよびメタデータ520Bを含む。シーケンス・データ520Aは、ハッシュ値の発生の間の近似の時間差と同様に、ハッシュ値のシーケンスを表すデータに対応する。これにより、上記の通りに、ステートマシン500は、適合が特定のレベルで見つけられないまで、または、ハッシュ・シーケンスの終わりに遭う場合、図5Aにて図示するように、ノードを移動させる。一実施例によれば、パターン認識ステートマシン212は、ハッシュ値3D59、Z55、A6E3および9Y95、のシーケンスが、各生成されたハッシュ値間の時間差に基づいて解析モジュール210から同じハッシュ値の生成によって適合したことを決定する。
【０１０７】
3.1.4  字幕データの同期
DVRが、パターン適合が生じたと決定するとき、マルチメディア・コンテンツ・ストリームに同期するために上記のメタデータを使用する。特に、DVRは、マルチメディア・コンテンツ・ストリーム内のイベントまたはビデオ・プログラムの相対的位置関係を決定するためにメタデータを使用する。このように、DVR 102がハッシュ値の特定のシーケンスが生成したと決定するとき、DVR 200はとるべきアクションを決定するためにメタデータ520Bを参照する。メタデータ520Bは、情報（例えば、コマンド・アンド・コントロール情報、プログラム・タイミング、コンテンツ情報、表示命令およびグラフィック情報）を含んでもよい。さらに、メタデータ520Bは、コマンド・データ522を含むこともできる。
【０１０８】
一旦パターン認識ステートマシン212がマルチメディア・コンテンツ・ストリームからのハッシュ値が特定のハッシュ・シーケンスに適合すると決定すると、ステップ412で、DVRは、ハッシュ・シーケンスと関連したハッシュ・シーケンス・メタデータを検査し、それに応じて反応する。メタデータのコンテンツに従い、DVR 102のようなDVRは、一連のハッシュ値を認識することに、多数の異なる方法に反応することができる。例えば、メタデータは、DVRがビデオ・プログラム内のイベントの認識、ビデオ・プログラムまたは全マルチメディア・コンテンツ・ストリームの同期、ユーザへの情報の表示、または、今後のプログラムを録画することができる情報を含んでもよい。さらに、他の実施例では、メタデータは、DVRがマルチメディア・コンテンツ・ストリーム、ビデオ・プログラムまたはDVRの動作（例えば、コマーシャルのスキップおよびその他のコンテンツ）と関連するあらゆるアクションを実行することを可能にする情報を含んでもよい。
【０１０９】
これにより、次に図6を参照すると、インバンド・データにアクションおよびイベントを同期さるための方法を例示しているブロック図が、一実施例に従って示される。表608が特定のハッシュ・シーケンスと関連したメタデータを表すと共に、表606はハッシュ値シーケンス・データを表す。この特定の例では、表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は時間：00でハッシュ値「3D59」、時間：05でハッシュ値「2Z55」、時間：10でハッシュ値「A6E3」および時間：12（スライダ604によって明示される位置）でハッシュ値「9Y95」を生成する。
【０１１０】
生成されるハッシュ値および対応する時間データについて、DVRは、ハッシュ値が表606に配置されるハッシュ値シーケンス・データに適合することを決定する。一実施例によれば、DVRは、実際のハッシュ値だけでなく各々のハッシュ値の時間オフセットも比較することによって、ハッシュ値シーケンス・データにハッシュ値を確実に適合するようにしてもよい。
【０１１１】
適合を決定した後、DVRは、次に、プログラム内のどこに配置されるかを知る。具体的には、DVRは、スライダ604がハッシュ値シーケンス・データに従ってプログラムの指定された始まりの初めの12秒後に配置されると決定する。次に、DVRは、ハッシュ値シーケンス・データと適合することに応答してとるための適切なアクションを決定するために、表608に配置されるメタデータ情報を調べる。一実施例によれば、表608は、イベント1が時間：10で行われることを明示する。スライダ604の現在位置を調べることによって、DVR 102は、イベント1がスライダの現在位置の：02秒前に行われると算出することができる。イベント1が10秒間、ユーザにアイコンを表示していることを定義する場合、2秒過ぎてイベント1の始まりをすでに通過したことを知った時から、DVR 102は8秒間、直ちにアイコンを表示するようにしてもよい。再生されているプログラムが録画、または、ユーザが生放送を再生しているが、再生位置が実際の放送より遅れている場合、DVR 102は、現在の再生位置の前方のスキャンをし、現在の再生位置の前方のハッシュ値を算出してもよい。これによって、DVR 102がイベントと関連したいかなるアクションの作動もより正確であることができる。
【０１１２】
さらに、表608の検査後、DVR 102は、イベント2がビデオ・プログラムの時間：40で行われると決定することができる。ビデオ・プログラムの内の現在位置を調べた後に、DVR 102は、イベント2が最後のハッシュの：28秒後に行われると決定する。DVR 102がマルチメディア・コンテンツ・ストリーム内のイベント1および2の正確な位置を決定することができるので、DVR 102はいかなる方法でもそれらのイベントに反応するようにプログラムされることができる。例えば、一実施例によれば、DVR 102は、イベント2の間、ユーザにアイコンを表示するように指示させてもよい。他の実施形態では、DVR 102は、イベント2でマルチメディア・コンテンツ・ストリームを録画し始めるようにプログラムされることができる。このように、イベント1または2を識別する情報を、ビデオ・プログラム600内の異なったイベントを識別するために使用するようにしてもよい。さらに、他の実施例では、表608は、DVRがハッシュ・シーケンスの認識に応じてとるために、その他のイベントまたはアクションを定義してもよい。例えば、ハッシュ・シーケンス3D59、2Z55、A6E3および9Y95を認識した後に、テーブル608は、DVRがユーザに表示装置上のインタラクティブ・アイコンを直ちに表示することを明示してもよい。
【０１１３】
さらに、一旦DVR 102はビデオ・プログラムの範囲内でイベント1および2を認識すると、DVR 102はイベント1および2の位置でマルチメディア・コンテンツ・ストリームにビデオ・タグを挿入するようにしてもよい。一実施例によれば、ビデオ・タグは、ビデオおよび音声データ（例えばMPEG-2ストリーム）を含んでいるマルチメディア・コンテンツ・ストリームにインタリーブされるデータ・オブジェクトである。ビデオ・タグがマルチメディア・コンテンツ・ストリームに入れられたあと、マルチメディア・コンテンツ・ストリームは後の再生のために格納される。再生されるときに、DVR 102はマルチメディア・コンテンツ・ストリームを処理して、イベント1および2の正確な位置でビデオ・タグに遭う。このように、一旦、ビデオ・タグが、マルチメディア・コンテンツ・ストリームに入れられると、イベントまたはアクションが、再生中にビデオおよび音声データとともに自動的に処理されるビデオ・タグによって定義されたので、DVRはもはやマルチメディア・コンテンツ・ストリームに同期させるために字幕データを認識する必要はない。ビデオ・タグは、出願人によって所有され、本願明細書に参照によって完全に組み込まれている、「字幕のタグ付けシステム（Closed-Caption Tagging System）」と称される米国特許出願09/665,921号で考察されている。
【０１１４】
上記の処理がDVR 102に関して記載されているが、その方法は、このようなステップ（例えば、DVR104、PC101Aまたは携帯機器101B）を実行できる、その他の装置によって実行されてもよい。
【０１１５】
3.2  エンハンスト・テレビジョン・信号データ
インバンド・データパターンの認識に使用することができる他のタイプのインバンド・データは、エンハンスト・テレビジョン（ETV）信号データである。ETVは、インタラクティブ・アプリケーションの使用がマルチメディア・コンテンツ・ストリームのその他のビデオ・サービスで「インバンド」配信されることを可能にする。ビデオ・プログラムでインバンド・アプリケーションに同期するために、ETVは、ビデオ・プログラムのタイミングに対して調整されるコマンド信号を利用する。インバンド・データ伝送の信号性能に関する詳細な情報は、ビデオ・サービスのタイム・ラインに同期されたインバンド・データ伝送の信号性能を特定するOpenCable Enhanced TV Application Messaging Specification （ETV-AM-I02）において入手可能である。
【０１１６】
一実施例によれば、ETVが使用可能なマルチメディア装置は、ETVコマンド信号を受信し、処理するためのETVエージェントを包含する。ETVコマンド信号は、マルチメディア装置に特定の時間にETVアプリケーションを発見、ダウンロード、起動、終了させる。これにより、一実施例によれば、マルチメディア装置は、ETVマルチメディア・コンテンツ・ストリーム内のアプリケーションの始まりまたは終わりを定義するETV信号データのパターンを認識することができる。これは、ETV信号データをマルチメディア・コンテンツ・ストリームから識別し、抽出するために解析モジュール210を使用することにより実行させてもよい。さらに、ETVコマンド信号は、付加情報（例えば、ETVコンテンツまたはプログラミングを記載している情報）を包含してもよい。加えて、ETVコマンド信号は、適当な時間でETVアプリケーションを処理するための時間データと関連する。この時間データを使用して、マルチメディア装置は、マルチメディア・コンテンツ・ストリーム内の相対位置を識別することができる。したがって、マルチメディア装置は、(a) ETVイベントが生じていること、（b）ETVイベントがビデオ・プログラムの特定の部分またはセグメントと同期されること、を決定するためにETV信号データを解釈することができる。
【０１１７】
これにより、字幕データのハッシュ値シーケンスを認識することと同様に、パターン認識ステートマシン212は、ETVコマンド信号およびタイミング情報のパターンを認識するために使用してもよい。ETVアプリケーションが付随するビデオ・プログラムにすでに同期されているので、マルチメディア装置はETV信号データのパターンを認識することによって、マルチメディア・コンテンツ・ストリームに同期することができる。字幕データと同様に、一旦マルチメディア装置がパターンを認識すると、マルチメディア装置は字幕データに同期しているアクションおよびイベントに関して上記のそれらに類したアクションをとることができる。
【０１１８】
4.0  カスタマイズされたマルチメディア・セグメントを作成し、視聴する方法
4.1  マルチメディア・プログラム・セグメントのユーザ選択
一実施例によれば、マルチメディア・コンテンツ・ストリームのビデオ・プログラムは、表示装置（例えば、テレビジョン・スクリーンまたはコンピュータ・モニタ）で、DVRユーザに表示される。他の実施態様において、ビデオ・プログラムは、表示装置（例えば、携帯用マルチメディア視聴装置）に表示してもよい。DVRユーザは、制御インタフェース（例えば、リモコン）を使用してビデオ・プログラムの再生を制御してもよい。
【０１１９】
ユーザは、マルチメディア・プログラムのセクションをマークすること、または、マルチメディア・プログラム内のコンテンツに関して興味のあるポイントを入れることができる。例えば、ユーザは、フットボール・ゲームの録画で最高のプレイをマークすることを望んでもよい。一旦ユーザがそのプレイをマークすると、ユーザは友達のDVRに結果として生じるハッシュ・シーケンスを送信することができる。DVR間の転送データの1つの方法は、ともに出願人によって所有され、本願明細書に参照によって完全に組み込まれている、「パーソナル・テレビジョン・サービスへのインターネット接続のシステムと方法」と称される米国特許10/220,558号、および、「安全なマルチメディア転送システム」と称される米国特許出願10/741,596号に記載されている。その後、友達がユーザの録画されたそのゲームのコピーを再生するとき、友達のDVRはユーザの興味のあるポイントをその友達に表示することができる。例えば、友達のDVRは、彼の表示装置に表示されるプログラム・キャッシュ・バーに沿って興味のあるポイントを表示する。
【０１２０】
録画されたゲームのハッシュ値を算出して、ハッシュ値を受信したハッシュ・シーケンスと比較することによって、ゲームの再生を開始する前に、友達のDVRは録画されたゲームを前処理する。これは、DVRが録画されたゲームの興味のあるポイントの位置を見つけて、友達に興味のあるポイントを表示することを可能にする。その時、友達は、リモコンを使用して興味のあるポイントにスキップしてもよい。
【０１２１】
DVRユーザは、プログラムの興味のあるポイントの独自のセットを、その他のユーザに配布してもよい。ユーザは、さらに、DVRに視聴者へテキストを表示させることができる興味のある各々のポイントにメタデータを付けてもよい（例えば、「これは、激しいアクション・シーンではないか？」）。ユーザは、興味のあるポイントからプログラムにx秒スキップする、または、次の興味のあるポイントにスキップする前にプログラムのx秒表示するようDVRに命じるように、興味のあるポイントにメタデータを付けてもよい。これによって、ユーザが、彼らの友達、家族、同級生、生徒、利益団体、などに配布することができるプログラムの独自の凝縮されたバージョンを作成することができる。
【０１２２】
また、DVRは、マルチメディア・プログラム、または、全コンテンツ・ストリームのセグメントを再編成するために指示されてもよい。そうするための1つの目的は、放送業者がマルチメディア・コンテンツ・ストリームのセグメントにスクランブルをかける時である。その結果、権限のない視聴者は、確実にマルチメディア・コンテンツ・ストリームを視聴することができない。しかしながら、権限を与えられた視聴者のために、DVRは、適切な状態にセグメントを編成する。さらに、ユーザは、独自のカスタマイズされたマルチメディア・プログラムを作成するために、マルチメディア・コンテンツ・ストリームのセグメントを再編成することを求めてもよい。ユーザは、カスタマイズされたマルチメディア・プログラムを格納してもよく、または、カスタマイズされたマルチメディア・プログラムを彼らの友人および他のDVRユーザに配布してもよい。カスタマイズされたマルチメディア・プログラムは、異なるマルチメディア・コンテンツ・ストリームから読み出されるセグメント、または、DVRの記憶装置に既に格納されたセグメントのコンパイルを包含してもよい。
【０１２３】
上記に記載されるように、インバンド・データにコンピュータ・システムを認識して、同期させる方法を使用すると、DVRはこれらの機能を容易に実行することができる。
【０１２４】
例えば、ユーザがビデオ・プログラム内の特定のコンテンツの位置を保存、または、明示することを望むとき、DVRユーザはそのように明示する制御インタフェースのボタンを押すことができる。制御インタフェースはDVRに信号を送信し、DVRは、その信号をユーザ選択として解釈する。その時DVRは、ユーザが制御インタフェースから信号を送信したプログラム内の時間を決定し、そのポイントにつながるインバンド・データパターンを算出することができる。
【０１２５】
4.2  マルチメディア・プログラムのユーザ起動イベント識別データの作成
図7を参照すると、ビデオ・プログラム内のマルチメディア・セグメントを作成し、視聴する方法を例示するブロック図が、一実施例に従って示される。字幕（CC）データ702のようなインバンド・データを含んでいるマルチメディア・コンテンツ・ストリーム700Aが、DVRまたはその他の装置で録画、または、再生されるとき、タイム・スタンプの形式の時間情報は、インバンド・データと関連する。具体的には、上記の通りに、インバンド・データを含むマルチメディア・コンテンツ・ストリームは、独立したオーディオ、ビデオおよびデータフレームにパケット化される。パケット化のとき、各々のフレームは相対的なタイム・スタンプを与えられる。これらのタイム・スタンプは、マルチメディア・コンテンツ・ストリームまたはビデオ・プログラム内のインバンド・データの時間を追うために使用してもよい。
【０１２６】
ユーザがビデオ・プログラム（彼／彼女が保存したい、または、注目する）のセグメントを視聴するとき、ユーザは、ビデオ・プログラム内の位置を選択することによってDVR 102にセグメントをマークさせる。一実施例によれば、画面操作ソフトは、プログラム・キャッシュ・バー700Bおよびスライダ708を包含している表示画面に提示される。スライダは、プログラムの現在の再生位置を明示する。ユーザがビデオ・プログラム内の位置を選択したいと思うとき、スライダが望んだ位置に到達するまで、ユーザは待ち、リモコンのような制御インタフェースを使用して望んだ位置を選択する。ユーザがリモコンのボタンを押すと、リモコンからDVRまで信号が送信され、DVRはユーザに対してドロップダウン・メニューを表示する。ドロップダウン・メニューは、ユーザがビデオ・プログラムの望む位置に関連して選択するオプションを含んでもよい。一実施例によって、ユーザに利用可能なオプションは、ブックマークする、位置をスキップする、注を付ける、または、ビデオ・プログラムに関して実行することができるその他のアクションを包含する。
【０１２７】
一実施例によれば、ビデオ・プログラムを再生する間に、DVRユーザは制御インタフェースを使用して位置704を選択する。DVRが制御インタフェースから信号を受信すると、ユーザ−選択が生じ、時間：10で生じる選択の位置を録画することを認識する。このポイントで、DVRは、イベント識別データを作成する。上述の通り、イベント識別データは、インバンド・データ（マルチメディア・コンテンツ・ストリームの範囲内でアクションまたはイベントを識別するためのメタデータと同様に）のパターンまたはシーケンスを含んでもよい。
【０１２８】
また、インバンド・データの一つのタイプは、字幕データである。一実施例によれば、イベント識別データを作成するために、DVRは、ハッシュ値のユニーク配列を作成するのに位置704に先行して、充分な字幕データを捜す。表710は、ビデオ・セグメント700のハッシュ値シーケンス・データを表す。ハッシュ値シーケンス・データは、ハッシュ値、ハッシュ値の時間および各々のハッシュ値の時間オフセットを明示することができる。一実施例によれば、時間オフセットは、ハッシュ値の生成とビデオ・プログラムのその前のハッシュ値との間の時間の差異を明示する。
【０１２９】
これにより、表710は、位置704に先行するハッシュ値「W5W4」と「M5M5」を識別する。DVRは、各々のハッシュ値が字幕テキストを表示するために使用される特定の字幕方法およびハッシュ値の時間オフセットに従って生成された時間を録画する。ここで、ハッシュ値「W5W4」は、プログラムの始まりから時間：06で生じ、ゼロの時間オフセットを伴うシーケンスの第1のハッシュである。ハッシュ値「M5M5」は、プログラムの始まりから時間：08で生じ、ハッシュ値「W5W4」後の2秒である。DVRがハッシュ・シーケンス「W5W4、M5M5」を認識するときに、DVRは、アクションは、位置704の実際の再生の前に、ちょうど必要とされることを識別し、適切なアクション（例えばアイコンの表示）を実行してもよい。メタデータは、ハッシュ・シーケンス「W5W4、M5M5」の認識の2秒後にアイコンが表示されることを明示してもよい。
【０１３０】
さらに、ユーザは、時間：20で生じるビデオ・セグメントの望んだ部分の終わりを表す第2の位置706を選択することもできる。一実施例によれば、DVRは、時間：10と時間：20の間のCCデータを解析し、3つのハッシュ値「Z1B1、E5Y5およびA2R2」を生成して、各々のハッシュ値が生成された時間を録画する。このため、この特定の例において、ハッシュ値「Z1B1」は第1に（ここでは時間：12）生じ、ハッシュ値「E5Y5」は2秒後に生じ、ハッシュ値「A2R2」は「E5Y5」の4秒後に生じる。集合的に、ハッシュ値「Z1B1、E5Y5およびA2R2」は、第2の位置706のハッシュ・シーケンスを表す。プログラムと関連したメタデータは、これを明示する。
【０１３１】
これにより、表710において、ハッシュ値「Z1B1」は、シーケンスの第1のハッシュの時から時間ゼロで生じ、ハッシュ値「E5Y5」はハッシュ値「Z1B1」の2秒後に生じ、ハッシュ値「A2R2」はハッシュ値「E5Y5」の4秒後に生じる。これに代えて、時間オフセットが、ビデオ・プログラム、マルチメディア・コンテンツ・ストリーム、ビデオ・プログラムまたはストリームの位置またはビデオ・セグメントのいかなる部分と関連してもよい。
【０１３２】
DVRが、ステートマシンにハッシュ値シーケンス・データとして表710を使用し、マルチメディア・コンテンツ・ストリーム700Bを再生すると、CCデータ702を解析し、ハッシュ値を生成する。一旦DVRが、ハッシュ値「A2R2」を認識すると、ハッシュ・シーケンスを認識するために上記の方法に従って、DVRは、直ちにアクション（例えば、DVRに接続している表示画面にアイコンを表示する）を実行することができる。この場合、DVRが表710に位置するハッシュ・シーケンスを認識すると、DVRは位置704と706の間のビデオ・セグメントの正確な始まりおよび終わりの時間を決定することができる。この情報を与えられ、ハッシュ値シーケンス・データと関連したメタデータは、DVRに位置704と706の間のプログラム・セグメントをスキップするように指示してもよく、または、例えば、DVRに位置704と706の間のプログラム・セグメントを格納するように指示してもよい。
【０１３３】
DVRは、ハッシュ値シーケンス・データのタイム・スタンプを使用することにより、マルチメディア・コンテンツ・ストリームと関連してビデオ・セグメントを認識することができる。それゆえに、ビデオ・プログラムが、異なる位置の2つの異なる時間に放送、または、再生される場合であっても、同じビデオ・セグメントは、ハッシュ値と関連したタイム・スタンプを使用して認識される。より詳しくは、タイム・スタンプは、DVRのローカル時間または放送時間ではなく、ハッシュ値の生成と関連している。したがって、異なる位置において、または、異なる時間に再生した場合、ほとんどのプログラミングが等しいとすると、ビデオ・セグメントはハッシュ値のタイム・スタンプを使用して極めて正確に認識されることができる。なお、上記の考察は、字幕データを中心に説明するが、本発明はこのような実施例に限定されるものではなく、DVRは、どのようなタイプのインバンド・データ（例えば、ETV信号データ）使用してもイベント識別データを作成することができる。
【０１３４】
4.3  タグ付けさられたマルチメディア・プログラム・コンテンツの作成
ビデオ・プログラム内のイベントまたはセグメントの認識後、DVR 102は、セグメントまたはイベントに対応して、適当な位置でマルチメディア・コンテンツ・ストリームにそれらのタグを挿入するために、タグを生成することができる。各々のタグは、タグを処理する装置が変換し、作用するコマンド・アンド・コントロール情報を含んでもよい。例えば、一実施例によれば、ユーザが位置704と706の間のすべてのコンテンツをスキップすることを望む場合、ビデオ・セグメントと関連したハッシュ・シーケンスを認識した後に、DVRは、DVRを位置706へ自動的に10秒ジャンプさせるように、位置704でタグを簡単に作成することができ、このようにして、ビデオ・セグメントをスキップする。
【０１３５】
さらに、タグデータは、マルチメディア・コンテンツ・ストリームの一部として処理され、その結果、ビデオ・プログラムの再生と自動的に同期する。タグデータについては、マルチメディア・コンテンツ・ストリームを受信する装置は、選択された位置に自動的にスキップすることができる。これに代えて、タグは、ビデオ・プログラム内の位置に関するコンテンツを識別する情報を包含してもよい。例えば、マルチメディア・コンテンツ・ストリーム700Aの位置704に対応するタグは、スポーツ・プログラム内の休憩時間のような位置を識別する情報を包含してもよい。さらに、位置706は、休憩時間の終わりとしてもよい。ゆえに、DVRは、スポーツ・プログラム内の休憩時間が位置704または時間：10で行われ、位置706または時間：20で終わることを明示するユーザのためのユーザ・インタフェースを提示すことができる。この情報を使用して、ユーザは、DVRに位置704を通り越してスキップし、位置706に直接進ませることができる。
【０１３６】
また、特定のイベントまたはセグメントに対応するために、マルチメディア・コンテンツ・ストリームにタグを挿入すると共に、DVR 102はマルチメディア・コンテンツ・ストリームからインバンド・データを取り除くことができる。例えば、一実施例によれば、マルチメディア・コンテンツ・ストリームは、分離したオーディオ、ビデオおよびデータ・フィードを包含するMPEG 2トランスポート・ストリームである。オリジナル・インバンド・データは、マルチメディア・コンテンツ・ストリームのデータ部分に位置する。タグが生成されると、タグはマルチメディア・ストリームのデータ部分に挿入される。さらに、一旦インバンド・データが取り除かれると、例えば、PC 101はマルチメディア・コンテンツ・ストリームを携帯機器101Bへ転送することができる。タグがマルチメディア・コンテンツ・ストリームに入れられ、字幕ストリームが取り除かれたので、携帯機器101Bは、字幕データを表示する必要がない。その代わりに、マルチメディア・コンテンツ・ストリームがユーザに表示されると共に、マルチメディア・コンテンツ・ストリーム内のタグはマルチメディア・コンテンツ・ストリームとの同期において自動的に処理される。マルチメディア・コンテンツ・ストリームにタグを生成して、挿入することについては、出願人によって所有され、本願明細書に参照によって完全に組み込まれている、「字幕のタグ付けシステム」と称される米国特許出願09/665921号にさらに詳細に記載されている。
【０１３７】
他の実施形態では、DVR 102またはPC 101のようなマルチメディア装置は、携帯機器101Bに人の関心を引く位置のリストを簡単に提供してもよい。これにより、マルチメディア・コンテンツ・ストリームにタグを挿入する代わりに、コンテンツ・ストリームはそのままに、携帯機器101Bは、人の関心を引く位置のリストを使用して、ビデオ・プログラム内のイベントを識別することができる。人の関心を引く位置のリストは、マルチメディア・コンテンツ・ストリームから携帯機器101Bへ別々に提供させてもよい。一実施例によれば、人の関心を引く位置のリストは、イベントが生じる相対的な時間を識別する時間データを包含する。さらに、人の関心を引く位置のリストは、付加的データ（例えば、各々のイベントを記載するデータ）を包含してもよい。携帯機器101Bは、いくつかの適切な方法で、人の関心を引く位置のリストのデータの使用を決定することができる。
【０１３８】
一実施例によれば、人の関心を引く位置のリストは、ユーザ入力に応答してマルチメディア装置によって生成される。例えば、ユーザは、制御インタフェースを使用して、ビデオ・プログラム内の一つ以上の位置を選択してもよい。マルチメディア装置は、制御インタフェースから信号を受信して、選択された位置がビデオ・プログラム内のどこにあるか決定する。マルチメディア装置は、マルチメディア・コンテンツ・ストリームと関連した時間データを調べることによって、このような決定をすることができる。そして、マルチメディア装置は、人の関心を引く位置のリストで、その関連する時間データの各選択された位置を識別するデータを格納し、携帯機器101Bにリストを提供する。
【０１３９】
さらに、もう一つの実施例では、マルチメディア装置は、インバンド・データパターンを使用するビデオ・プログラム内のイベントまたはセグメントの認識後、人の関心を引く位置のリストを生成することができる。例えば、マルチメディア装置は、携帯機器101Bに提供する前に、全マルチメディア・コンテンツ・ストリームを処理するようにしてもよい。マルチメディア装置がインバンド・データパターンを認識すると、インバンド・データパターンと関連したメタデータを調べて、各イベントと関連した時間データを包含するビデオ・プログラム内のイベントを識別する。時間データを使用して、マルチメディア装置は、各イベントをリストする人の関心を引く位置のリストおよびイベントがビデオ・プログラムまたはマルチメディア・コンテンツ・ストリームと関連して行われる時間を生成する。そして、人の関心を引く位置のリストは、ビデオ・プログラム内の位置を識別するリストを使用できる携帯機器101Bに提供される。
【０１４０】
4.4  マルチメディア・コンテンツの共有イベント識別データ
上記したように、DVRユーザは、DVRから他のDVRへ、イベント識別データを転送することができる。これは、他のDVRにネットワークまたはインターネット全体の直接転送を経て達成させてもよい。一旦DVRがイベント識別データを受信すると、DVRユーザは、カスタマイズされたプログラム・インデックスが受信されたことを通知され、それがどのプログラムに関するものかも通知されるようにしてもよい。そして、ユーザは、インデックスを使用するプログラムの再生を選ぶことができる。
【０１４１】
さらに、DVRサービスは、イベント識別データの分布点としての役割を果たすことができる。プログラムと関連したイベント識別データは、DVRからサーバ106Aにアップロードされてもよい。サーバ106AがDVRからイベント識別データを受信すると、ローカルの記憶装置またはデータベースにイベント識別データを格納する。サーバ106Aは、ネットワーク105を介したダウンロードのための複数のDVRで作成されるイベント識別データを提供してもよい。他のDVR 104が特定のプログラムと関連したイベント識別データを読み出すことを望むとき、サーバ106Aはネットワーク105上のDVR 104にイベント識別データを送信する。このようにして、カスタマイズされたビデオ・セグメントを作成し、視聴するシステムは可能とされる。
【０１４２】
5.0  実施メカニズム
図8は、本発明の実施例が実装できるコンピュータ・システム800を示す、ブロック図ある。コンピュータ・システム800は、情報を通信するためのバス802または他の通信メカニズム、および情報を処理するためにバス802と結合されるプロセッサ804を含む。コンピュータ・システム800はまた、ランダムアクセスメモリ（RAM）または他の動的記憶装置といった主記憶装置806も含み、情報およびプロセッサ804によって実行される命令を記憶するため、バス802に結合される。806はまた、プロセッサ804によって実行される命令を実行中、一時的変数または他の中間情報を記憶するために使用してもよい。コンピュータ・システム800は、さらに、静的情報およびプロセッサ804に対する命令を記憶するためにバス802と結合される読み出し専用メモリ（ROM）808または他の静的記憶装置を含む。磁気ディスクまたは光ディスクといった記憶装置810が、提供され、そして情報および命令を記憶するためにバス802に結合される。
【０１４３】
コンピュータ・システム800は、コンピュータユーザに情報を表示するため、バス802を介して、陰極線管（CRT）といった表示812に結合してもよい。英数字および他のキーを含む入力デバイス814は、プロセッサ804への情報およびコマンド選択を通信するため、バス802に結合される。ユーザ入力デバイスの別のタイプは、マウス、トラックボールまたはカーソル方向キーといった、プロセッサ804への方向情報およびコマンド選択を通信するため、そして表示812上でカーソルの動きを制御するため、のカーソル制御816である。この入力デバイスは、通常、2つの軸において2つの自由度を有し、第1軸（例えば、x）および第2軸（例えば、y）により、このデバイスは、平面での位置を指定できる。
【０１４４】
本発明は、本明細書に説明される手法を実装するためのコンピュータ・システム800の使用に関する。本発明の一実施例によると、これらの手法は、主記憶装置806に含まれる1つまたは複数の命令の1つまたは複数のシーケンスをプロセッサ804が実行するのに応答して、コンピュータ・システム800によって実行される。このような命令は、記憶装置810といった別の機械可読媒体から主記憶装置806に読み込んでもよい。主記憶装置806に含まれる命令のシーケンスを実行すると、プロセッサ804は、本明細書に説明される処理ステップを実行する。別の実施例では、配線接続の回路を、ソフトウェア命令の代わりに使用するか、またはソフトウェア命令と組み合わせて使用して、本発明を実装してもよい。すなわち、本発明の実施例は、ハードウェア回路およびソフトウェアの何らかの特定の組み合わせに限定されない。
【０１４５】
本明細書で使用される用語「機械可読媒体」は、機械を特定のやり方で動作させるデータを提供するのに関与する任意の媒体である。コンピュータ・システム800を使用して実装される一実施例では、さまざまな機械可読媒体が、例えば、プロセッサ804が実行するための命令の提供に、関与する。このような媒体は、多くの形式をとることができ、不揮発性媒体、揮発性媒体、および伝送媒体を含むが、これらに限定されない。不揮発性媒体は、例えば、記憶装置810といった、光または磁気ディスクを含む。揮発性媒体は、主記憶装置806といった、動的メモリを含む。伝送媒体は、同軸ケーブル、銅線および光ファイバを含み、バス802を構成する線を含む。伝送媒体はまた、電波および赤外線データ通信中に生成されるものといった、音波または光波の形式をとることもできる。このようなすべての媒体は、媒体によって搬送される命令が、この命令を機械に読み込む物理的メカニズムによって検出できるようにするため、実体のあるものでなければならない。
【０１４６】
機械可読媒体の共通の形式は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハード・ディスク、磁気テープ、または他の何らかの磁気媒体、CD-ROM、他の何らかの光媒体、パンチカード、紙テープ、穴のパターンがある他の何らかの物理的媒体、RAM、PROM、およびEPROM、FLASH-EPROM、他の何らかのメモリチップまたはカートリッジ、以下に説明される搬送波、またはコンピュータが読み取れる他の何らかの媒体を含む。
【０１４７】
機械可読媒体のさまざまな形式は、実行のため、プロセッサ804に1つまたは複数の命令の1つまたは複数のシーケンスを搬送することに関与してもよい。例えば、この命令は、最初に、リモートコンピュータの磁気ディスクで搬送してもよい。このリモートコンピュータは、命令をその動的メモリにロードでき、そしてこれらの命令を、モデムを使用して電話線から送信できる。コンピュータ・システム800にローカルなモデムは、この電話線のデータを受信でき、そして赤外線送信器を使用して、データを赤外線信号に変換できる。赤外線検出器は、赤外線信号で搬送されるデータを受信でき、そして適切な回路が、このデータをバス802に配置できる。バス802は、主記憶装置806にデータを搬送し、ここから、プロセッサ804は、命令を呼び出し、そして実行する。主記憶装置806によって受信される命令は、オプションとして、プロセッサ804による実行の前これに代えて後で、記憶装置810に記憶させてもよい。
【０１４８】
コンピュータ・システム800は、また、バス802に結合される通信インタフェース818を含む。通信インタフェース818は、ローカルネットワーク822と接続されるネットワークリンク820と結合する双方向データ通信を提供する。例えば、通信インタフェース818は、対応する電話線タイプへのデータ通信接続を提供するサービス総合デジタル通信網（ISDN）カードまたはモデムでもよい。別の例として、通信インタフェース818は、互換LANへのデータ通信接続を提供するローカル・エリア・ネットワーク（LAN）カードでもよい。無線リンクが、実装してもよい。このような実装の何れでも、通信インタフェース818は、さまざまなタイプの情報を表すデジタルデータストリームを搬送する電気、電磁気、または光の信号を送信および受信する。
【０１４９】
ネットワークリンク820は、通常、1つまたは複数のネットワークにより、他のデータデバイスにデータ通信を提供する。例えば、ネットワークリンク820は、ローカルネットワーク822により、ホストコンピュータ824に、またはインターネットサービスプロバイダー（ISP）826によって動作されるデータ機器に、接続を提供してもよい。ISP826は、次いで、ワールドワイドパケットデータ通信ネットワーク（現在は一般に「インターネット」828という）によりデータ通信サービスを提供する。ローカルネットワーク822およびインターネット828は、両方とも、デジタルデータストリームを搬送する電気、電磁気、または光の信号を使用する。さまざまなネットワークを通じた信号、およびネットワークリンク820上および通信インタフェース818を通じた信号は、コンピュータ・システム800と双方向にデジタルデータを搬送し、情報をトランスポートする搬送波の代表的な形式である。
【０１５０】
コンピュータ・システム800は、ネットワーク（1つまたは複数）、ネットワークリンク820および通信インタフェース818により、メッセージの送信、およびプログラムコードを含むデータの受信ができる。インターネットの例では、サーバ830は、インターネット828、ISP826、ローカルネットワーク822および通信インタフェース818により、アプリケーションプログラムに対する要求コードを送信する可能性がある。
【０１５１】
受信コードは、受信された際にプロセッサ804によって実行させてもよいし、そして／または後で実行するため、記憶装置810、または他の不揮発性ストレージに記憶させてもよい。このようにして、コンピュータ・システム800は、搬送波の形式で、アプリケーションコードを取得してもよい。
【０１５２】
上記の明細において、本発明の実施例は、多数の特定の詳細を参照して説明されているが、実装ごとに異なってもよい。すなわち、本発明とは何か、および本出願人が意図する何をもって本発明とするか、についての唯一かつ排他的な指標は、本出願から発行される請求項一式であり、この特定の形式において、このような請求項は、何らかの後続する修正も含んで、発行される。このような請求項に含まれる用語について本明細書で明示的に説明される何らかの定義は、これらの請求項で使用される場合の、こうした用語の意味を規定する。そのため、一請求項で明示的に記載されない限定、要素、特性、機能、利点または属性が、如何なる場合も、こうした請求の範囲を限定すべきではない。本明細書および図面は、適宜、制限的な感覚でなく、むしろ説明的なものと見なされる。
【符号の説明】
【０１５３】
101A  パーソナル・コンピュータ（PC）
101B  携帯機器
102  DVR
104  DVR
106A  サーバ
106B  コンテンツ・プロバイダ
200  DVR
202A  入力モジュール
202B  出力モジュール
204  録画モジュール
206  通信インタフェース
209  タイミング・モジュール
210  解析モジュール
212  パターン認識ステートマシン
214  記憶装置
310B  フレーム
310C  フレーム
310D  フレーム
312  構文解析部
314A  ハッシュ
314B  ハッシュ
314C  ハッシュ
314D  ハッシュ
320  表
330  表
340  ポップアップ・モード
342  ロールアップ・モード
344  ペイントオン・モード
350A  フロント・バッファ
350B  バック・バッファ
350C  着信CCデータ
350D  着信CCデータ
360  フレーム
400  表示画面
404  アイコン
404A  ユーザ入力
500  ステートマシン
501  インデックス
502  スタート
512  シーケンス1
513  シーケンス2
515  失敗ノード
520A  シーケンス・データ
520B  メタデータ
522  コマンド・データ
600  コンテンツ
601  ハッシュ値
602A  クロック・タイム
602B  プログラム・タイム
604  スライダ
700A  マルチメディア・コンテンツ・ストリーム
700B  プログラム・キャッシュ・バー
702  CCデータ
704  位置
706  位置
800  コンピュータ・システム
802  バス
804  プロセッサ
806  主記憶装置
808  ROM
810  記憶装
812  ディスプレイ
814  入力装置
816  カーソル制御
818  通信インタフェース
820  ネットワークリンク
822  ローカル・ネットワーク
824  ホスト
826  ISP
828  インターネット
830  サーバ
【図１】
2009542088.tif 000003
【図２】
2009542088.tif 000004
【図３Ａ】
2009542088.tif 000005
【図３Ｂ】
2009542088.tif 000006
【図３Ｃ】
2009542088.tif 000007
【図３Ｄ】
2009542088.tif 000008
【図４】
2009542088.tif 000009
【図５Ａ】
2009542088.tif 000010
【図５Ｂ】
2009542088.tif 000011
【図６】
2009542088.tif 000012
【図７】
2009542088.tif 000013
【図８】
2009542088.tif 000014
【国際調査報告】
2009542088.tif 000015
2009542088.tif 000016