(57)【特許請求の範囲】
【請求項１】
ビデオ信号を捕捉及び記憶する方法であって、
当該ビデオ信号を捕捉しかつ当該ビデオ信号の多重化された成分を別々の成分に分離するステップと、
ブロックとして当該別々の成分を別々の線形キャッシュに記憶するステップであって、各線形キャッシュに記憶されているブロックが、各線形キャッシュに記憶されている線形キャッシュストリームを構成する、ステップと、
当該線形キャッシュからのストリーミング速度を制御するステップと、
特定の線形キャッシュ内に記憶されている特定の線形キャッシュストリームを、キーストリームに指定し、かつ前記特定線形キャッシュ以外の線形キャッシュからの線形キャッシュストリームの前記ストリーミングを、前記特定線形キャッシュからの前記キーストリームの前記ストリーミングに同期させることにより、当該線形キャッシュから当該線形キャッシュストリームをストリーミングするステップと、
を備える方法であって、
当該線形キャッシュが、時間のウィンドウに関連し、
当該線形キャッシュが、時間の当該ウィンドウの間に捕捉された当該ビデオ信号の部分を記憶し、そして  
当該線形キャッシュが、時間の当該ウィンドウの外で捕捉された当該ビデオ信号はいかなる部分も無視する、
ビデオ信号を捕捉及び記憶する方法。
【請求項２】
前記線形キャッシュを構成する前記ストリーミングされたブロックを表示装置に提示するステップをさらに含み、かつ
前記ストリーミングされたブロックが、当該表示装置に提示される前にデコードされる、請求項１に記載の方法。
【請求項３】
各ブロックは、そのブロックが提示されるべき時を示す提示タイムスタンプによりマークされる、請求項２に記載の方法。
【請求項４】
当該線形キャッシュに対するランダムアクセスをサポートするステップをさらに備える、請求項１に記載の方法。
【請求項５】
一時停止、巻き戻し、高速送り、再生、高速再生、低速再生、スキップ／ジャンプ、リプレイ、繰り返し及び逆再生のうちのいずれかを含む機能を実行するステップをさらに備える、請求項１に記載の方法。
【請求項６】
当該線形キャッシュから或る範囲の情報を捕捉するステップをさらに備える、請求項１に記載の方法。
【請求項７】
前記捕捉するステップが、当該範囲の情報を記憶装置に保存する、請求項６に記載の方法。
【請求項８】
前記捕捉するステップが、当該範囲の情報をデコードしかつ表示装置に表示する、請求項６に記載の方法。
【請求項９】
前記捕捉するステップが、当該範囲の情報を伝送に適するフォーマットに変換する、請求項６に記載の方法。
【請求項１０】
前記特定の線形キャッシュからストリーミングされつつある現在のブロックを識別する現在のブロックインジケータを、当該キーストリームの中で、前方に移動させることにより、順方向機能を実行するステップをさらに備える、請求項１に記載の方法。
【請求項１１】
当該現在のブロックインジケータが、各クロックイベントごとに、１ブロック移動する、請求項１０に記載の方法。
【請求項１２】
キーフレームとマークされたブロックのみが、前記デコーディングのためにデコーダに提示される、請求項２に記載の方法。
【請求項１３】
前記特定の線形キャッシュからストリーミングされつつある現在のブロックを識別する現在のブロックインジケータを、当該キーストリームの中で、後方に移動させることにより、巻き戻し機能を実行するステップをさらに備える、請求項１に記載の方法。
【請求項１４】
各クロックイベントごとに、当該現在のブロックインジケータを１ブロック移動させるステップをさらに備える、請求項１３に記載の方法。
【請求項１５】
現在のブロックインジケータを当該キーストリームにおける１つのブロックにロックすることにより一時停止機能を実行するステップをさらに備える、請求項１に記載の方法。
【請求項１６】
データストリームを処理する方法であって、
当該データストリーム内の各データストリームからの情報を、複数の線形キャッシュの内の対応する線形キャッシュ内にブロックとして記憶するステップと、
当該線形キャッシュからのストリーミング速度を制御するステップと、
当該線形キャッシュからの特定の線形キャッシュ内の特定のデータストリームを、キーストリームに指定し、かつ前記特定線形キャッシュ以外の線形キャッシュからの線形キャッシュストリームの前記ストリーミングを、前記特定線形キャッシュからの前記キーストリームの前記ストリーミングに同期させることにより、当該線形キャッシュから当該ブロックをストリーミングするステップと、
を備える方法であって、
当該線形キャッシュが、時間のウィンドウに関連し、
当該線形キャッシュが、時間の当該ウィンドウの間に受信された当該ビデオ信号の部分を記憶し、そして  
当該線形キャッシュが、時間の当該ウィンドウの外で捕捉された当該ビデオ信号はいかなる部分も無視する、
データストリームを処理する方法。
【請求項１７】
特定のデータストリームのタイプについての情報を捕捉するステップをさらに備える、請求項１６に記載の方法。
【請求項１８】
当該情報を前記線形キャッシュに記憶する前に当該情報をデコードするステップをさらに備える、請求項１７に記載の方法。
【請求項１９】
前記ストリーミングされたブロックを表示装置に提示するステップをさらに備える、請求項１６に記載の方法。
【請求項２０】
各ブロックは、そのブロックが当該表示装置に提示されるべき時を示す提示タイムスタンプによりマークされる、請求項１９に記載の方法。
【請求項２１】
前記ストリーミングされたブロックが、当該表示装置に提示される前にデコードされる、請求項１９に記載の方法。
【請求項２２】
前記ストリーミングされたブロックを記憶装置に提示するステップをさらに備える、請求項１６に記載の方法。
【請求項２３】
当該線形キャッシュへのランダムアクセスをサポートするステップをさらに備える、請求項１６に記載の方法。
【請求項２４】
一時停止、巻き戻し、高速送り、再生、高速再生、低速再生、スキップ／ジャンプ、リプレイ、繰り返し及び逆再生のうちのいずれかを含む機能を実行するステップをさらに備える、請求項１６に記載の方法。
【請求項２５】
当該線形キャッシュから或る範囲の情報を捕捉するステップをさらに備える、請求項１６に記載の方法。
【請求項２６】
当該捕捉するステップが、当該範囲の情報を記憶装置に保存する、請求項２５に記載の方法。
【請求項２７】
当該捕捉するステップが、当該範囲の情報を選択された伝送フォーマットに変換する、請求項２５に記載の方法。
【請求項２８】
前記特定の線形キャッシュからストリーミングされつつある現在のブロックを識別する現在のブロックインジケータを、前記キーストリームの中で、前方に移動させることにより前進機能を実行するステップをさらに備える、請求項１６に記載の方法。
【請求項２９】
各クロックイベントごとに、当該現在のブロックインジケータを１ブロック移動させるステップをさらに備える、請求項２８に記載の方法。
【請求項３０】
キーフレームとマークされたブロックのみが、前記デコーディングのためにデコーダに提示される、請求項２１に記載の方法。
【請求項３１】
特定の線形キャッシュからストリーミングされつつある現在のブロックを識別する現在のブロックインジケータを、前記キーストリームの中で、後方に移動させることにより巻き戻し機能を実行するステップをさらに備える、請求項１６に記載の方法。
【請求項３２】
各クロックイベントごとに、当該現在のブロックインジケータを１ブロック移動させるステップをさらに備える、請求項３１に記載の方法。
【請求項３３】
クロックイベントに応答して、前記現在のブロックインジケータを移動させるステップが、前記現在のブロックインジケータを最も古いブロックを越えて移動させる場合には、前記現在のブロックインジケータが、当該キーストリーム内で最も古いブロックに設定される、請求項３１に記載の方法。
【請求項３４】
現在のブロックインジケータを、当該キーストリームと指定されている前記特定の線形キャッシュからの前記ブロック内の１つのブロックに、ロックすることにより一時停止機能を実行するステップをさらに備える、請求項１６に記載の方法。
【請求項３５】
クロックイベントに応答して、前記現在のブロックインジケータを移動させるステップが、前記現在のブロックインジケータを最も古いブロックを越えて移動させる場合には、前記現在のブロックインジケータが、当該キーストリーム内で最も古いブロックに設定される、請求項３４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号処理に関する。より詳細には、本発明は、様々なフォーマットで表現されたデジタル情報の線形ストリームの受渡し或いは捕捉を行う一群の方法に関する。
【背景技術】
【０００２】
高機能のデジタル信号処理手法を用いた民生オーディオやビデオ製品の出現に伴い、デジタル技術の潜在能力をフルに活用する方策を見出すことが必要とされるようになっている。例えば、様々なフォーマットで表現されたデジタル情報の線形ストリームの受渡し或いは捕捉のための方法を提供するとともに、同時に、明らかに局所的なデジタルストリームの仮想セグメントの再位置決めや再生を可能にする局所的に記憶されたデジタルストリームを顧客に見せることが望まれている。
【０００３】
これら機能の一部を行う機械的装置として、磁気テープを使って情報を記憶するビデオカセットレコーダ（ＶＣＲ）がある。テープが本質的に線形であるという特性は、巻き戻し、早送り、一時停止等の機能をもたらす。しかし、ＶＣＲは、情報の捕捉と再生とを同時に行うことはできないため、この機能を実施するように使用することは不可能である。
【０００４】
情報の線形ストリームは現代生活に欠かせない存在である。ラジオ放送局、テレビ放送局、衛生放送、ケーブルテレビ、ビデオテープ、及びコンパクトディスクを考慮しなくてはならない。すると、このような情報は、ますます、コンピュータや媒体デコーダのような自動化された電子的ハードウェアによる操作に適した形に表現される。例えば、ダイレクトビデオ放送（ＤＶＢ）標準は、衛星、地上局、及びケーブルテレビシステムからの放送を扱う。おなじみの地方局からの普通のＮＴＳＣ（全国テレビジョン方式委員会）放送等のアナログ放送でさえ、近代な機器によってリアルタイムに捕捉してデジタル化され、それらを線形デジタルストリームのようにすることができる。
【０００５】
このようなストリームは終了することがなく、更にこのようなストリームをどのように配信するかを直接決めることはできないが、少し前のストリーム部分を何らかの方法で局所的に記憶させ、これにより一時停止、巻き戻し、早送り等の典型的なＶＣＲ類の機能をストリームに対して実行することが出来るという錯覚を顧客に与えることが望ましい。この機能に対する要望は、放送予定やタイミングがほとんどの各視聴者のニーズに合わないことから生じる。例えば、視聴者は、手に負えない子供に規律を守らせるために少しの間ストリームを停止させることを望むかもしれない。或いは、しばらくの間、視聴者の注意がストリームから離れてしまい、視聴者が大切なシーンを見逃してしまうことがあるかもしれない。このような場合、視聴者は見逃した部分にまで巻き戻しをしてもう一度それを見たいであろう。
【０００６】
理想的には、視聴者側の装置は、ストリームが放送されている際その全てを捕捉し、かつ何らかの方法でそれを記憶しておくべきである。例えば、２つのビデオテープレコーダが使えるとすると、２つの間で卓球にようにやりとりすることができるかもしれない。この場合、第1レコーダは対象番組の開始時点で起動する。視聴者が放送を巻き戻したい場合には、第２レコーダに録画を開始させると同時に、第１レコーダを停止させ、適切な位置に巻き戻して再生を始める。しかし、最初に巻き戻しが要求された後に視聴者がある位置に早送りしたいという場合には、少なくとも第３のビデオテープレコーダが必要となる。この場合、第３のレコーダが、放送ストリームの録画を開始するとともに、第２レコーダを停止させて適切な位置に巻き戻す。これを行い続けると、この装置が、不恰好で信頼性に欠けしかも高価で扱いにくいものとなり、更に望まれる機能の全てを満たすことが出来ないことは、即座に、理解できることである。更に、テープは、その長さが限られているので、都合の悪い時に終わってしまう可能性があり、この装置による解決法の有用性を大きく低下させてしまう。
【０００７】
デジタルコンピュータを使用してこの機能を実行することも可能である。この場合、デジタルストリームはビデオテープと類似した何らかの形で記憶させ、かつコンピュータは、様々な仮想テープデッキ間の切換えを実行する。デジタルコンピュータを使用しても、この方法は、上術した物理的システムと同じ問題を有している。情報ストリームを一時的に記憶する技術を提供することによって、このような問題を解決することが望まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
この機能を実現する如何なる技術をも実行するデジタルコンピュータを使用する場合、適切なオペレーションを行うために考慮しなくてはならない問題が多くある。この問題の１つは、放送ストリームの記憶にある。情報ストリームは、デジタルコンピュータ内においてデジタルデータのブロックシーケンスとして表現される。例えば、ＮＴＳＣテレビ放送ストリームをコード化する際、アナログデータの各フィールドは、そのフィールドを表現する８ビットのデジタルサンプルに変換される。アナログ信号が忠実に表現されるとすれば、各デジタルブロックは約０．５ＭＢのデータを含み、１秒のビデオには約３０ＭＢの記憶装置が必要とされ、更に、３０秒のビデオにはコンパクトディスクの容量を越える約９００ＭＢの記憶装置が必要とされる。記憶されたビデオの実用的な長さを想定すれば、この方法によりビデオを扱うことが、実行不可能となることは、明らかである。
【０００９】
一例として、放送テレビ伝送の記憶用に光磁気ディスクを使用する米国特許第５，６２５，４６号を、参照されたい。この種の媒体の利用可能な記憶量は現在約５〜１０ギガバイトであり、これは約５秒のビデオ記憶にしか対処出来ず、明らかに不適切なものである。更に、この装置では、同一番組の録画と再生とを同時に行うことはできない。
【００１０】
記憶容量が限定されている問題は、典型的には、多くの例において１００：１の有効な圧縮を行うことができるＭＰＥＧ（動画専門家グループ）標準アルゴリズムの１つのアルゴリズムを使って、ビデオストリームを圧縮することにより対処される。ＭＰＥＧビデオは、各ＧＯＰが、Ｉフレームと呼ばれるインデックスフレームで始まる画像群（ＧＯＰ: Group of Picture）のシーケンスとして表現される。このＩフレームは、静止画像の共同画像専門家グループ（ＪＰＥＧ: Joint Photographic Experts Group）標準と類似した離散余弦変換（ＤＣＴ: Discrete Cosine Transform）や他の手法を使って圧縮されるデジタルデータブロックである。
【００１１】
ＧＯＰは、マクロブロックと呼ばれるＩフレームの小さな部分が、時間によって如何に移動するかを示すはるかに小さなデジタルデータブロックを提供することによって、最高１５までの付加的フレームを表現することができる。このように、ＭＰＥＧは、画像の小さな一部分しか時間に対し変化しないと仮定することによって、このような付加的フレームの表現を極めてコンパクトにする、その圧縮を実現している。
【００１２】
従って、上述した非圧縮のデータ例、つまりビデオテープの記録に基づく例と異なり、各フレームは、長さが異なるバイナリデータブロックとして表現される。加えて、複数のＧＯＰは、相互に何の関係も持たないが、一ＧＯＰ内の各フレームは、最初のＩフレームから離れて作られた特定の関係を持つ。従って、デジタル化されたストリームを記憶しかつこの記憶された情報に対しランダムアクセスを可能とするいずれの方法も、関係する可変の（予測できない）データサイズを考慮しなければならず、更にストリームブロック間の関係を認識しておく必要がある。
【００１３】
このような方法をデジタルコンピュータベースで実施する際の第２の問題は、複数の情報ストリームを並行処理しなくてはならないことである。例えば、放送ストリームは、実際には、少なくとも２つの固有の情報ストリーム、即ち、視像を表現するデジタルブロックストリームと、可聴像を表現するデジタルブロックストリームとから成る。オーディオがステレオであるとすると、各々固有の２つのオーディオストリームが含まれる。放送信号は、情報ストリームがオーディオ信号を異なる言語に翻訳したものである副音声プログラム（ＳＡＰ）のような付加的データを持つことができる。提示される可能性のある他のストリームとしては、オーディオストリームに口語のテキスト表現を提示する字幕（ＣＣ）ストリームがある。従って、前述した簡単な放送ストリームは、少なくとも５つの異なる成分を持ち、この成分の各々は異なる手法により圧縮される。この複合ストリームを視聴者に提示する際、各ストリームブロックは、他の全てのストリームの提示と同期させかつ関係する圧縮方法に適した時間にデコードする必要がある。
【００１４】
ＤＶＢのようなデジタル放送技術にも関心が向けられている。ＤＶＢチャンネルは、時分割多重化（ＴＤＭ: Time Division Multiplexing）に基づく手法を使用してデジタル情報の如何なる数の離散ストリームでも単一のデジタルデータストリームにインターリーブするコード化スキームであるＭＰＥＧ２ Transport Multiplex（伝送多重）の形に形成される。上述した例としてのテレビ信号は、５つの離反ストリームを使い、他のストリームに対して付加的容量を残すようにＤＶＢチャンネルにコード化することができる。
【００１５】
標準的放送信号に付加的情報を加えることへの関心が高まっている。例えは、ビデオストリームと並行していくつかの異なる言語でオーディオチャンネルを伝送することが望ましいかもしれない。また、恐らくウェブページとして解釈される情報は、ビデオと同期化させることによりマルチメディア表現を提示するような方法で放送される。同期化させる必要があるストリームの数は任意であり、各々のストリームは、独自の同期要件及び内部フレーム関係を各々が持つような異なる固有の記憶及び圧縮の技術を使って表現することができる。
【００１６】
デジタルコンピュータの何らかの形式を使用した上述の方法と類似する機能性を提供する方法は、いずれも、これらの問題の解決法を備える必要がある。
【課題を解決するための手段】
【００１７】
本明細書において説明される方法及び装置は、それが、データストリームの顧客により要求されるランダムアクセスや可変速度提示をあたかもサポートしているかの如く、連続的デジタル情報ストリームの操作を行う新規で固有の機能を提供する。記憶装置がＤＲＡＭのような揮発性であろうと、ハードディスク記憶装置のような不揮発性であろうと、更にはこれらの組合せであろうと、データストリームに関する可能なオペレーションは、本装置及び方法を実施するシステムの記憶容量及びＩＯ帯域幅によってしか制限されない。本装置及び方法は、一時停止、巻き戻し、早送り及び再生のような、時に仮想ＶＣＲ機能と呼ばれるオペレーション、更に、高速再生、低速再生、逆方向再生のような、より高機能で固有のオペレーションをサポートする。加えて、本明細書に説明される装置及び方法は、機械的システムとは異なりこのようなオペレーションが、データストリームの顧客には、瞬時になされるように見えるメカニズムを提供する。また、本装置及び方法は、本装置により一時的に保持されているデータストリームの部分を捕捉する能力をサポートしているので、本装置により捕捉されたデータストリームのデータを、他の顧客に対しこのデータを提示する、或いは他のツール又は方法による編集や操作に好適なフォーマットで、記憶させる又はネットワークで送信させることができる。
【００１８】
本発明は、局所的に記憶されたストリームの画像を視聴させつつ、様々なフォーマットで表現された連続する線形デジタル情報ストリームの受け渡し又は捕捉を行う方法及び装置を提供する。本発明の好適な実施形態は、情報データストリームからのデータブロックをコピーする少なくとも１つの媒体キャッシュを備える。この媒体キャッシュ内のデータは、デジタル情報の連続ストリームのスナップショットとして見ることができる。また、本発明は再生ポインタを備える。再生ポインタの位置は、一時停止、巻き戻し、早送り、再生、高速再生、低速再生、及び逆方向再生を含む機能を提供するためにアクセスしなければならない媒体キャッシュの部分を選択する。
【発明を実施するための最良の形態】
【００１９】
本発明は、本明細書に説明された方法及び手法を使って、デジタル情報の連続ストリームを変換及び操作するための新規かつ独自の装置を提供する。
【００２０】
図１は、本発明の好適な実施形態が、どのように連続データストリームを処理するかについての全体的概要を示す。特に、１個以上の媒体キャッシュ１０は、情報ストリーム１２からのデータブロックをコピーする。再生ポインタ１４の位置が、アクセスされるべき媒体キャッシュの部分を選択し、これにより、一時停止、巻き戻し、早送り、及び再生、更に高速再生、低速再生、逆方向再生のような、より高機能で固有のオペレーションが可能となる。
【００２１】
本装置は、ベースとなるデジタルデータストリームのフォーマットとは無関係である。本発明を適用するために必要とされることは、ベースとなるデータストリームが、多数の離散データブロックから成り、かつ少数の属性セットしか各ブロックに関連していないという点のみである。データブロック自体のサイズ及びフォーマットは任意なもので良い。データソースに対して又はデコードオペレーションに特化されたプロセスは、本明細書に説明された方法により間接的に制御されるが、本発明の範囲内で自由に進めることができるものと仮定されている。
【００２２】
図２は、本発明の好適な実施形態を示す。図２の例は、ＭＰＥＧストリームに関連して示されているが、本発明は、如何なる情報ストリームにも簡単に適用することが出来ることは理解されるべきである。
【００２３】
本発明では、データストリームの操作や変換は、以下の要素の組合せにより実行される。
１．バッファ制御装置（２０１）は、主管理装置である。バッファ制御装置は、デジタルストリームのオペレーションに関する（例えば、遠隔制御装置によって生成された）外部からの要求を受入れ、次に本発明における他の装置のための適切な制御メッセージを生成する。
２．ストリームクロック（２０２）は、線形キャッシュセットのオペレーションを同期化するための一般的装置を提供し、これにより、同期された形で提示されなければならない複合データストリームが、正しく位置決めされ、かつそれらが一貫性のある伝送速度でデータを提示する。
３．線形キャッシュ（２０４）は、キャッシュ内のデータを連続デジタルデータストリームのスナップショットとして見ることができるように、デジタル情報ストリームに含まれる情報をバッファリングするための一般的装置である。
４．クリップ捕捉（２０３）装置は、キャッシュされた情報ストリームセットの全体又は一部を捕捉し、かつ結果としてのデータを、系統立ったデータストリームとして、コンピュータファイルシステム又は他の表示装置のようなデータ受信装置に提示するための一般的装置である。
【００２４】
以下の各欄において上述の構成部品の各々が説明され、更にそれらがどのように相互作用し合うかが詳細に説明される。
【００２５】
バッファ制御装置
バッファ制御装置（ＢＣ: Buffer Controller）モジュールは、本発明のオペレーションが如何なる特定のデータストリームに対しても行なわれる方法を実現させるものである。本発明の好適な実施形態は、１つのストリームクロック（ＳＣ:Stream Clock）モジュール、ゼロ以上のクリップ捕捉（ＣＣ:Clip Capture）モジュール、及び１つ以上の線形キャッシュ（ＬＣ:Linear Cache）ストリームモジュールを含む。本発明のオペレーションは、ＬＣストリームの１つをキーストリームに指定することを基にするのが好ましい。ＬＣからの再生を全て位置付けすることは、まずキーストリームを位置決めし、次にそのストリームの最終位置を使用して、他の全てのストリームを適切に位置決めすることに基づいている。例えば、キーストリームがＭＰＥＧビデオストリームであれば、位置決めは、最新のブロックポインタを最初のＭＰＥＧ画像グループ（ＧＯＰ）に合わせることに基づく。キーストリームが位置決めされると、ＢＣは、キーストリームと同期すべき他の全てのストリームを再配置する。
【００２６】
また、ＢＣは、後述するようにオペレーションを行うストリームクロックのクロック速度を制御するよう機能する。ＳＣがクロックイベントを線形キャッシュに配信する速度は、ＢＣによって特定された速度に基づく。このように、ＢＣは、ＳＣにそのクロック速度を調整するように要求することによって、全ての収集ストリームの再生速度を早めたり遅くしたりすることができる。
【００２７】
最後に、ＢＣは、クリップ捕捉方法を使ってクリップ捕捉オペレーションを開始するよう機能する。
【００２８】
ストリームクロック(Stream Clock)
ストリームクロックは、時間ベースのイベントを多くのＬＣに配信する中央同期機能を提供する。放送番組内の各情報ストリームは、異なる手法を使ってコード化される。この手法の各々は、例えば、ブロックサイズ、データフォーマット、デコード用の提示タイムスタンプのような固有の概念を持っている。例えば、単一のＭＰＥＧビデオフレームをデコード化しかつ提示する場合、いくつかのＭＰＥＧオーディオフレームをデコード化しかつ提示することができる。ストリームクロックは、各ＬＣに対し、そのＬＣに適した速度でイベントを配信する。ストリームクロックは、時間ベースのソフトウエアシステムを構築する当業者には良く知られている標準の従来技術を使って、配信されるべきイベントを管理するために単一の待ち行列を使用する。
【００２９】
ストリームクロックのオペレーションを、以下に詳述する。
イベントは、絶対時間では待ち行列に入れられず、前回の待ち行列イベントから相対的なオフセットを持って行列に入れられる。待ち行列における第１イベントは、現在の時間からオフセットされた時間でマークされる。次に、ストリームクロックは、その量の時間が経過した時（例えば、ＳＣがタイマーイベントを待ち行列に入れる時）、ベースとなるオペレーティングシステムが呼出しを行うよう要求する。この呼出しが行なわれると、ＳＣは第１クロックイベントを発信し、次いで、オフセットゼロの後続イベント、つまり、前回のイベントと同じ時間に生じる各イベントを各々発信する。
【００３０】
また、待ち行列での各イベントは、時間間隔と次のイベントが起るべきデータストリームの絶対時間によりマークされる。待ち行列に入れられたイベントが配信された後、次のイベントの絶対時間は、この時間間隔を前回の絶対時間に加えることによって構成される。この時間と現在の絶対時間との差が、このイベントが繰り返されるべき前の遅れを決定する。次に、イベントの次回の発生についての適切な位置で、イベントが待ち行列に加えられる。この方法により、何らかの遅延がイベントの発信時に確実に生じ、続いて、イベントが適切な時間に確実に起こる。全てのイベントをオフセットゼロで処理した後、ＳＣは、第１待ちイベントに対しオフセットを持たせて新たなタイマーイベントを待ち行列に入れ、その後上述プロセスを繰り返す。
【００３１】
絶対クロック値とクロックイベントを実際に発信することとを切り離すことは、本発明の独特で新規な観点のいくつか、つまり、ストリーム再生が起こる速度を簡単に制御する機能、を実施する上で重要である。初めて生成される時、ＳＣは、最初は１に設定される速度乗数と呼ばれる値を記録する。ＳＣが、基本オペレーティングシステムにタイマーイベントを待ち行列に入れるよう要求する時は常に、要求された実時間遅れには速度乗数が乗算される。１を越える速度乗数はストリーム再生をより高速にし、１より小さな速度乗数はストリーム再生をより低速にする。
【００３２】
ＬＣ自体を適切に位置決めするには（以下を参照）、位置決めを計算する際に各ブロックに記憶される提示タイムスタンプ（ＰＴＳ:Presentation Time Stamp）を変更するために、同じ速度乗数を使わなければならない。従って、ＳＣは、これらの値をＳＣ内に記憶された速度乗数と適切に同期させた後、ＰＴＳ値に比較及び演算を行うＬＣに、小さな関数セットを使用可能にする。
【００３３】
各ＬＣに対し独立してイベントを生成し、かつ全てのイベントが単一値を用いて配信される速度を論理的に変更することができることにより、ストリームクロックを結合することは、共通の時間ベースのソフトウエア設計手法の新規で固有のアプリケーションを提供する。
【００３４】
線形キャッシュ
本発明の主要構成部品は、線形キャッシュ（ＬＣ:Linear Cache）である。ＬＣは、適切なシークエンスで、デジタル情報の単一ストリームを記憶する。ＬＣは、ストリームを構成するデジタルブロックのリストとしてこのストリームを保存し、かつ各ブロックが固有のサイズ及び属性を持つものとみなす。ストリーム内の各ブロックは、そのブロックがいつデコードプロセスに提示されるべきかを示し、ハードウェア又はソフトウエアである提示タイムスタンプ（ＰＴＳ:Presentation Time Stamp）によりマークされる。ＰＴＳは、最初ＬＣがストリームに関するオペレーションを開始する時にゼロ値に設定される漸増値であり、かつＬＣがオペレーションを開始し、ＬＣに記憶されたＰＴＳとコード化デジタルブロック内に記憶されたタイムスタンプのどれかとの間に一定のオフセットが存在する場合を除き、ベースとなるストリームコード化手法によって定義されたどのタイムスタンプとも関連性を持たない。デコード化プロセスは、組込まれたタイムスタンプを適切に扱うものと仮定されている。図３は、線形キャッシュの好適な実施形態の全体概要図である。
【００３５】
特定のストリーム形式に対する捕捉メカニズムは、それが到達する際に各コード化デジタルブロックをＬＣに提示する（３０１）。ＬＣは、そのブロックをストリームの現在のＰＴＳを使ってマークする。ＬＣは、到達したＬＣにおける最新のブロックとＬＣが保存する最古のブロックとの間のＰＴＳ値に基づく最大時間として定義されたウィンドウ（３０２）を維持する。従って、ウィンドウは、タイムスパンをストリームの過去のヒストリの中に表現している。ＬＣは、ウィンドウの外に落下するブロック（３０３）を無視するので、ウィンドウは、ストリームの過去のヒストリに固定された距離を見ることを可能にする。このメカニズムにより、使用可能な記憶スペースと過去の情報を視聴する可能性との間での選択及びトレードオフを可能とする。
【００３６】
捕捉メカニズムは、新しい各ブロック（３０４）に特定の属性を付与するよう機能する。第１の属性はキーフレーム属性であり、これは、このブロックが相互関係を持つブロックのシーケンスで始まることを知らせる。ストリームにランダムアクセスオペレーションを実行する場合、ＬＣは、キーフレームとしてマークされたブロックに対してのみ、ストリームの位置決めを可能とする。第２の属性は、セグメント終了（ＥＯＳ:End of Segment）属性であり、これはストリームが終了し、これ以上のデータは提示されないことを意味する。例えば、ＭＰＥＧ ＧＯＰのＩフレームは、捕捉メカニズムによってキーフレームによってマークされるが、他の全てのブロックはそのようにマークされない。
【００３７】
ＬＣは、デコード化プロセスに提示されるべき次のブロックのインジケータを保存しており、このインジケータは現在のブロックインジケータ（３０５）と呼ばれる。通常の視聴に関しては、このブロックは、捕捉メカニズムによりＬＣに最後に加えられたブロックである。従って、ストリームは、捕捉と提示との間に多くても１フレームの時間遅れしかない状態で、ライブで、提示される。
【００３８】
情報ストリームに対するランダムアクセスは、ＬＣ内における他のあるブロックに対し現在のブロックインジケータを移動させることにより実現される。インジケータを移動させるようにＬＣが要求され、かつ現在のブロックインジケータがキーフレームにない場合には、ＬＣは、デコード化プロセスにそのデコード化状況をリセットするよう指示し、部分的に作られた提示データを消去する。例えば、現在のフレームがＭＰＥＧ予測フレーム（Ｐ−ｆｒａｍｅ）であるとすれば、デコード化プロセスは、Ｐ−ｆｒａｍｅにより変更された現在の画像を含む状況情報を持つ。このデータは、デコーダが適切な状況で起動するように、消去されなくてはならない。
【００３９】
再度、図２を参照すると、ＢＣは、ＰＴＳ値を特定することによってＬＣの再位置決めを要求する。ＬＣは、ＢＣにより要求されたＰＴＳ値に最も近いＰＴＳを含むブロックを見付ける。再位置決めについては、２つの固有の状況があり、第１は、ＬＣがキーストリームとしてマークされている場合で、第２はそうでない場合である。
【００４０】
ＬＣがキーストリームとしてマークされているとすれば、ＬＣは、要求されたＰＴＳ値に最も近いキーフレームを見付けるためにキャッシュ内のブロックを走査し、所望値の前後のいずれもサーチする。適切に位置決めされると、ＬＣは、識別されたキーフレームのＰＴＳをＢＣに戻す。
【００４１】
キーストリームの位置決めに続いて、ＢＣは、各残りのストリームに、キーストリームによって戻されたＰＴＳに対し残りのストリームの各々を位置決めするよう、指示する。各ＬＣは、この問題を、如何なるデコード化状況も消去するようデコード化プロセスに要求することによりに対処し、次にＬＣが実際にデコード化プロセスにブロックを提示しないとするインジケータを記憶する。
【００４２】
これに続いて、ブロックが実際にデコード化プロセスに提示されない場合を除いて、ＬＣは、通常、クロックイベントを受入れ、かつ現在のブロックインジケータをマッチさせるために前進させるようなオペレーションを行う。ＬＣがキーフレームに出会うと、ＬＣは、ブロックを提示させないインジケータを削除し、デコード化プロセスに現在のブロックを提示する。これにより、ストリームはキーストリームに完全に同期されることになる。
以下の章で、如何にして位置決めオペレーションがＬＣによって扱われるかを詳細に説明する。
【００４３】
順方向
順方向機能は、ストリームクロックにより生成されたクロック毎に、キャッシュの中で、現在のブロックインジケータを１ブロック前方に移動させることによって行なわれる。クロックイベントがＳＣによって配信される際、キャッシュ内の後続するブロックの各々は、提示のためにデコード化プロセスに与えられる。１の速度乗数により、現在のブロックインジケータは、新しいブロックが捕捉プロセスによりＬＣに加えられるのと同じ速度で、ＬＣ内を１ブロック前方に移動する。概念的には、現在のブロックインジケータは、キャッシュ内の同じ位置を指し、一方でキャッシュされたブロックのウィンドウは、その下方に移動する。ストリームの顧客の観点からすると、これは、リアルタイムの状態から固定された遅れを持って再生されることになる。
【００４４】
次のブロックのデコード化が始まる前に、デコード化プロセスが顧客にブロックを提示することができない、つまり、デコーダが、要求された再生速度について行くことができない可能性がある速度が存在する。ＬＣは、この状況を認識すると、中間ブロックをスキップし、キーフレームのみをデコーダに提示するキーフレームベースの方法に戻る。
【００４５】
現在のブロックインジケータは、キャッシュされていないブロックに位置付けることはできない。速度乗数が１を越える場合には、現在のブロックインジケータは、最終的にはキャッシュの前に移動する。この場合、キーフレームＬＣは、ブロックがもはやキャッシュ内に存在しないＢＣに指定される。ＢＣは、ＳＣ速度乗数を１にリセットし、各ＬＣは、現在のブロックインジケータを最新のキャッシュされたブロックに位置決めする。このオペレーションの効果は、実際の情報ストリームから外れた遅れのない再生に戻すことにある。
【００４６】
逆方向
逆方向機能は、ＳＣにより生成されたクロック毎に、キャッシュ中で現在のブロックインジケータを１ブロック後方に移動させることによって行なわれる。ここでも、キーストリームＬＣは、位置決めを制御するために使用される。ＢＣは、各ＬＣに逆方向モードに移動するよう指示し、これにより、現在のブロックインジケータは、クロックイベント毎に１ブロック後方に移動する。更に、このモードは、ＬＣが、デコード化プロセスに対しキーフレーム以外のフレームを全く提示しないようにさせる。現在のブロックインジケータがキーフレームを移動させると、このブロックはデコード化プロセスに提示される。
【００４７】
デコード化プロセスに提示されるブロックの速度は、ストリームクロックにおける速度乗数によって制御され、逆方向オペレーションの速度を任意なものとすることができる。
【００４８】
現在のブロックインジケータは、キャッシュ内の最古のブロックを通り過ぎて移動することはできない。クロックイベントが、最先のブロックを通り過ぎて現在のブロックインジケータを移動するような結果になる場合には、インジケータは、そのブロックに設定され、かつ上述したように再生が続く。キーフレームＬＣは、最古のキャッシュされたブロックが到達したことをＢＣに知らせる。ＢＣは、ＳＣ速度乗数を１にリセットし、各ＬＣは、現在のブロックインジケータを最古のキャッシュされたブロックに位置決めする。外面的には、再びストリームの再生が順方向に始まり、時間がウィンドウサイズで遅延されているように見える。
【００４９】
一時停止
ＢＣは、キーストリーム内の現在のブロックインジケータを、キーストリームのブロックにロックすることにより、一時停止を実行する。ＬＣは、インジケータをキーフレームブロックにロックすることしか出来ないので、ＬＣは、キャッシュ内のこのようなブロックを順方向にサーチする。キーフレームが存在しない場合には、ＬＣは、ロックが要求されたインジケータを記憶する。捕捉プロセスがキーフレームを提示した場合には、ＬＣは、ロックが要求されたことを認識し、かつ現在のブロックインジケータをキーフレームにロックする。ＬＣは、このキーフレームをデコード化プロセスにも提示し、これによりデコード化プロセスの観点から見た適切な位置決めが維持される。これに続き、新しいブロックがキャッシュの前方に加えられると、指定されたブロックは、キャッシュ内を後方に移動する。加えて、ＬＣは、デコード化プロセスにこれ以上データを提示しないようにインジケータを設定する。
【００５０】
各非キーストリームＬＣに対し、ＢＣは、デコード化プロセスにデータブロックをこれ以上提示しないようにするのみである。ＢＣに一時停止を解除する（すなわち、ストリームを再生する）よう要求することができる。この場合、ＢＣは、（ＳＣ速度乗数により変更されたような）現在のブロックのＰＴＳをキーストリームＬＣから得て、かつ残りのＬＣの各々が、上述したように、適切に位置決めされるよう命令する。次に、ＢＣは、ブロックがデコード化プロセスに提示されるよう、各ＬＣのロックを解除する。
【００５１】
入来ストリームの捕捉は連続しているために、インジケータがロックされているブロックをウィンドウが通り過ぎて移動する可能性がある。この場合、インジケータは、アンロックの状態となり、左側がキャッシュ内の最先のブロックを指す。これは、外面的には、テープや再生ヘッドの過度の摩耗を避けるために一時停止を解除するＶＣＲのオペレーションと類似する、一時停止を自動解除する効果を提示する。
【００５２】
クリップ取得
この機能は、キャッシュからある範囲のブロックを抽出するために使用される。それを行うには、相対モードと絶対モードという２つのモードがある。
【００５３】
上述したように、キャッシュされたブロックは提示順序で、ブロックの線形リストとして現れる。クリップ取得機能は、ブロックの範囲を構成するブロック数のカウントを加えた状態で、ポインタをキャッシュされたブロックに戻す。この情報はクリップと呼ばれる。効率化のために、戻されたポインタは、直接キャッシュされたブロックを知らせ、かつ続くブロックは、キャッシュされた各ブロック内の次のブロックリンクに従うことによって取り出される。このリストは、呼出し者がクリップに関するオペレーションを完結するまで、指された第１ブロックと後続の全てのブロックが、キャッシュされた状態に維持されている場合にのみ有効である。
【００５４】
ＬＣは、クリップの一部であるブロックが無効となるのを避けるために、以下のようなオペレーションを行う。クリップ機能は、ウィンドウの外に落下するブロックを無視しないように、ＬＣ内のインジケータを設定する。このインジケータは、解除クリップ機能が呼出された時、消去される。また、解除クリップ機能は、キャッシュのサイズをウィンドウサイズに整える。
【００５５】
このシーケンスの結果は、ＬＣ内のブロックの数が一時的に増加し得る点にある。キャッシュされたブロックの記憶空間は限られているため、クリップ取得の呼出し者は、できるだけ迅速にクリップを操作しなければならない。しかし、この方法により、ＬＣからのブロックの再生に干渉することなくクリップを捕捉することが可能となり、ブロックの需要者に捕捉オペレーションの技巧を提示する必要がなくなる。
【００５６】
相対モードにおいて捕捉すべきクリップは、２つの数で特定される。第１のものは、現在のブロックインジケータからキャッシュ内の以前のブロックへのオフセットを表し、第２のものは、現在のブロックインジケータからキャッシュ内の次のブロックへのオフセットを表す。両者のオフセットは、現在のブロックに記憶されたＰＴＳからの時間差として表される。例えば、捕捉オペレーションは、現在のブロックの前５秒から現在のブロックの後の１０秒までに起こるかもしれない。キャッシュされていないブロックが存在しないことは、クリップ取得オペレーションによって知らせることができる。従って、ＬＣは、キャッシュ内で入手できるブロックにマッチするように、戻された実際のクリップのサイズを整える。
【００５７】
絶対モードにおいて、捕捉すべきクリップは２つの数に特定され、第１のものは、ＬＣがオペレーションを開始した時に基づく絶対時間スタンプを表し、第２のものは、その値からオフセットした時間を表し、それは（キャッシュ内の後方距離を示す）負のオフセット又は（キャッシュ内の前方距離を示す）正のオフセットであろう。クリップは上述のように戻され、必要に応じて整えられる。これは、キャッシュ内のブロックが上述された時間ウィンドウ内にない場合には、クリップ取得が空のブロックリストを戻す可能性のあることも意味している。
【００５８】
クリップ捕捉
クリップ捕捉モジュールは、ＬＣのセットからブロック範囲を選択し、それらを適切な記憶装置又は伝送フォーマットにし、更に必要に応じてそれらを保管又は送信する。また、複数のＬＣからの収集ブロックもクリップと呼ばれる。外部の要求に基づいてＢＣがクリップ捕捉オペレーションを行う。
【００５９】
この要求は、２つの方法で行うことが出来る。
第１としては、ＢＣが、捕捉がキーストリームＬＣの現在のブロックインジケータに基づいて起こるべきであることを知らせることができ、これは、捕捉の相対範囲が特定されている、相対捕捉と呼ばれる。
第２としては、ＢＣが、絶対範囲を示すことができ、その範囲に含まれるＰＴＳでマークされたブロックだけが捕捉される。これは絶対捕捉と呼ばれる。
【００６０】
クリップ捕捉モジュールのオペレーションは、簡単である。各ＬＣに関して、ＣＣモジュールは、ＢＣによって指定されたパラメータを使ってそのＬＣのクリップ取得機能を呼出す。次に、クリップ捕捉モジュールは、ブロックを、所望の最終的なクリップフォーマットに適する多重ストリームに線形化する。例えば、それは、必要に応じて様々なＬＣからブロックをインターリーブして、ＭＰＥＧシステムストリームを生成するかもしれない。
【００６１】
このインターリーブは、概念的には単純なものである。ＣＣは、全クリップの中から最先のＰＴＳを有するブロックを選定し、このブロックを適切なものとして出力し、更にこのクリップのブロックポインタを次のブロックに進めて、ＬＣから得られた各クリップをループ化する。全クリップからの全ブロックの処理が終了した時、捕捉オペレーションは完結する。次に、ＣＣは、解除クリップ機能を呼出す全ＬＣをループ化する。
【００６２】
本発明は、本明細書において好適な実施形態を参照し説明されたが、本発明の精神と範囲を逸脱することなく、本明細書に言及されたものの代替として他の用途も可能であることは当業者にとって容易に考え得ることである。従って、本発明は、特許請求の範囲によってのみ限定されるべきである。
【図面の簡単な説明】
【００６３】
【図１】本発明による連続的媒体の概略図である。
【図２】本発明による連続的媒体バッファを組込んだ概略的ブロック図である。
【図３】本発明による線形キャッシュのオペレーションを示すタイミング図である。
【図１】
0005059500.tif 000002
【図２】
0005059500.tif 000003
【図３】
0005059500.tif 000004