(57)【要約】【課題】コンピュータ・ベース・システムによってビデオ・ストリームのフレームを格納かつ提供する新規な方法を提供する。【解決手段】それぞれが異なるビューポイントからのビデオ・ストリームを格納し、ビデオ・ストリームの順方向への再生、逆方向への再生、またはあるビデオ・ストリームから別のビデオ・ストリームへの切り替えを含む垂直方向再生に使用される、前記ビデオ・ストリームのフレーム要求であって、ポインティング・デバイスによる再生速度、再生方向の指示を含むフレーム要求に応答して、該要求されたフレームを提供する。【選択図】図６
2008263648.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・ベース・システムによってビデオ・ストリームのフレームを格納かつ提供する方法であって、
それぞれが異なるビューポイントからのビデオ・ストリームを格納することと、
ビデオ・ストリームの順方向への再生、逆方向への再生、またはあるビデオ・ストリームから別のビデオ・ストリームへの切り替えを含む垂直方向再生に使用される、前記ビデオ・ストリームのフレーム要求であって、ポインティング・デバイスによる再生速度、再生方向の指示を含むフレーム要求に応答して、該要求されたフレームを提供することと
を含む方法。
【請求項２】
請求項１記載の方法において、
少なくとも一つのビデオ・ストリームがＭＰＥＧフォーマットであり、所定のフレームの復号化オペレーションに必要とされるフレームのセットを指定するフレーム従属性リストに基づいて要求されたフレームが提供される方法。
【請求項３】
請求項１記載の方法において、
前記少なくとも一つのフレーム要求は拡大鏡の表示要求を含んでおり、この拡大鏡は所定サイズの表示領域を含み、この拡大鏡によるビューポイントの拡大が、その表示部分の画像を、高解像度バージョンの画像の所定の部分で置き換えることにより達成される、方法。
【請求項４】
実行されたとき、コンピュータに、
異なるビューポイントからの対象のビデオ・ストリームを格納させ、
ビデオ・ストリームの順方向への再生、逆方向への再生、またはあるビデオ・ストリームから別のビデオ・ストリームへの切り替えを含む垂直方向再生に使用される、前記ビデオ・ストリームのフレーム要求であって、ポインティング・デバイスによる再生速度、再生方向の指示を含むフレーム要求に応答して、該要求されたフレームを提供させる
ことを行わせる命令を含むコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、インターネット・コマースのための対象を視覚的に提示するために使用することができる、ビデオ信号ストリームの作成およびそれとの対話のためのシステムおよび方法に関する。
【背景技術】
【０００２】
インターネット・コマース（Ｅコマース）は、顧客が店と対話するための刺激的な新しい可能性を開いた。顧客は現在、自分の都合のよいときに自宅で楽に買物をすることができる。さらに、彼らは地元の店をオンラインで訪れることに制限されず、実質的に世界中のどこでも買物をすることができる。同様に店側は、以前には夢みることしかできなかった巨大な顧客ベースへの新しい領域を探る絶好の機会を得ている。いくつかのよく知られている成功したＥコマースの店には、オンライン書店（たとえば、Ａｍａｚｏｎ．Ｃｏｍ）、旅行代理店（たとえば、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＣｏｒｐｏｒａｔｉｏｎのＥｘｐｅｄｉａ）およびソフトウェア・ベンダが含まれる。しかし、衣類、宝石、家具および不動産の店など、他の潜在的な大型の店が遅れをとっているようである。この理由は、これらの製品をオンラインで現在の技術を使用して提示することの困難さにある。たとえば、本またはコンピュータ・ソフトウェアはテキスト（および、場合によっては表紙の静止画像）によって十分に説明することができるが、静止画像およびテキストでは、宝石または衣服または家の詳細を潜在的な買い手向けに十分に提供することがほとんどできない。最新のオンライン・ファッション・モールでは、各アイテムを閲覧するために単一の画像しか提供していない。現在の物体／場面のプレゼンテーションは、テキスト、静止画像、またはイメージ・パノラマなどのイメージベース・レンダリング（ＩＢＲ）技術に依拠している。これらの技術は、視覚的なリアリズムの欠如、双方向性の欠如を欠点として有しており、限られた視覚的情報を提供し、かつ／または小さい部類の物体（たとえば、凸状の物体）のみに制限される。
【０００３】
製品のグラフィックス・モデルを構築することは可能である。利点は、グラフィックス・モデルが完全なユーザ双方向性を提供できることである。しかし、現在のグラフィックス・レンダリングおよびモデリング・アルゴリズムはなお実体の複製からやや隔たりがある。さらに、これらのモデルを作成するコストは相対的に高く、幾何形状の複雑さ、材料および動的特性ならびに照明条件に劇的に比例する。実のところ、クリスタル製の花瓶をインタラクティブに閲覧するための３Ｄモデルの作成は困難な作業である。これは花瓶との光の複雑な相互作用のためである。
【０００４】
商品のよりよい表現をインターネット上で提供するため、いくつかのオンライン不動産店（ｈｔｔｐ：／／ｗｗｗ．ａｐａｒｔｍｅｎｔ．ｃｏｍなど）が単純なＩＢＲ技術を使用しており、これは一般にＱｕｉｃｋＴｉｍｅ  ＶＲとしても知られている。ＩＢＲ技術は、デジタル画像を単純な３Ｄグラフィックス・モデルに埋め込み、リアリズムおよび双方向性を狙うものである。基本的な考えは、多数の画像（カメラを３６０度で回転中に撮影したもの）を合わせてステッチしてパノラマを形成することである。次いで、このパノラマがユーザの操作用に不可視の円柱上に「ペースト」される。ユーザは周囲の場面を（円柱の中心に立っているかのように）、グラフィックス・ウィンドウにおいて円柱をマウスにより「回転」させることによってインタラクティブに閲覧することができる。３６０度の周囲のインタラクティブな閲覧は、静止画像の受動的な閲覧よりも情報提供的であり、興味深いものである。加えて、パノラマは少数の画像のみで容易に構築される。これを行うための商用ソフトウェアはすでに、あるデジタル・カメラにバンドルされている。しかし、いくつかの欠点がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
（１）歪み：ＩＢＲパノラマは、平面画像を合わせて「ステッチ」し、次いでこれらをインタラクティブな検査のために円柱または球（あまり一般的ではない）上に「ペースト」することによって生成される。元の画像が撮影された範囲が狭いほど（円柱または球のより大きい曲率に対応する）、閲覧の歪みはより激しくなる。さらに、「ステッチング」アルゴリズムは、隣接した画像における「フィーチャ・セット」（しばしば正規のパターン）の発見および突き合わせに依拠する。これは、不規則性の高い場面ではアルゴリズムが失敗するか、あるいは少なくとも不十分に実行する可能性があることを意味する。
【０００６】
（２）制限されたティルト（上下）閲覧範囲：現在のパノラマは、激しい歪みが起こる前にむしろ制限されたティルト閲覧範囲を提供する。これにより、ユーザが入手可能な視覚的情報の量が制限される。
【０００７】
（３）ルック・アウト(looking out)対ルック・イン（アット）(looking in(at)）：商用ＩＢＲパノラマは、外および周囲を見る(looking out and around)ユーザ（部屋の中央に立っており、辺りを見渡すなど）に対応するビューしか提供しない。物体の中を見て調べる(looking in and at）ユーザに対応するパノラマのビューを構築することは、はるかに難しい。このような目的で調査者は、ライト・フィールド(light field）など、より高性能のＩＢＲアルゴリズムを調査してきている。これらのアルゴリズムは、物体の粗い、あるいは部分的な３Ｄモデルを、相互作用のための中間的なビューを作成するために、異なる閲覧角度で撮影された画像から構築しようと試みる。しかし、現在の技術には、物体の凸面が必要であることなど多数の制限があり、複雑または不規則な３Ｄ形状の物体では不十分にしか実行できない（穴や激しい歪みが、画像データの欠如または不適合により、あるビューにおいて現れる）。反射ガラスは複雑な物体の一例である。画像データの欠如は、物体の周囲で綿密に撮影されたより多数の画像を使用することによって回避できるが、これは較正アルゴリズムにおける複雑さが増大することになり（コンテンツ作成に負担がかかる）、なお歪みの問題を解決しない。
【０００８】
（４）移動する物体向きではない：ＩＢＲベースの技術は、動的な（移動する）物体を処理するときに有効ではない。これにより、衣類（理想的には、衣服をテーブルの上に平らに置くのではなく、通路を歩くモデルが身に付けるとどのように見えるかを見たいものである）、または生きているような玩具、ペット、機械部品など、多数のカテゴリの製品からのそれらの用途が制限される。
【課題を解決するための手段】
【０００９】
いくつかの実施態様では、本発明は、ビデオ・ストリームのフレームを格納かつ提供する方法を含む。この方法は、異なるビューポイントからの対象のビデオ・ストリームを格納することを含み、ビデオ・ストリームのうち異なるものがビューポイントのうち異なるものを含む異なる状態にある。この方法は、順方向、逆方向および状態変更方向におけるビデオ・ストリームのフレームのための要求に、使用可能な場合はフレームを提供することによって応答することも含む。
【００１０】
フレームをリモート・コンピュータへ、インターネットを介して提供することができる。
【００１１】
他の実施態様では、本発明は、ビデオ・ストリームを制御する方法を含む。この方法は、ビデオ・ストリームのフレームを表示することを含み、ビデオ・ストリームは異なるビューポイントからの対象のものであり、ビデオ・ストリームのうち異なるものが、ビューポイントのうち異なるものを含む異なる状態にある。ユーザ入力デバイスの活動化に応答して、使用可能な場合は少なくとも１つの追加のフレームを、活動化に応じて、フレームのうち現在表示されたものに関して、順方向、逆方向、または状態変更方向において表示する。
【００１２】
他の実施態様を記載し、主張する。
【発明を実施するための最良の形態】
【００１３】
本発明は、以下に挙げる詳細な説明から、かつ本発明の実施形態の添付の図面から、より十分に理解されるであろう。しかし、これらが本発明を、記載された特定の実施形態に限定するものと解釈されるべきではなく、これらは説明および理解のためのものでしかない。
【００１４】
Ａ．概観
本発明は、対象とカメラの間に相対的な動きがある場合の、対象の少なくとも１つのデジタル・ビデオ・ストリームの作成を含む。対象の例には、物体、場所（家またはアパートなど）、および場面（自然設定など）が含まれる。デジタル・ビデオ・ストリームは、インタラクティブな閲覧のために使用可能である。ビデオ・カメラは容易に、ＩＢＲパノラマと同じであるパノラマのビューを生成することができるが、大幅に歪みが少ない。さらに必然的に、提供することができるビューの種類（ルック・アウトまたはルック・アット、ティルト、パンなど）、または目標とされた場面および物体の複雑さにおける制限がない。対照してみると、ＩＢＲベースの技術は、限定された環境（たとえば、凸状の物体を有する）でしか十分に機能しない。
【００１５】
いくつかの実施形態では、多数のビデオ・ストリームが異なる基準（たとえば、異なるビューポイント）から作成される。有限状態機械に基づいたデータ構造が使用されて、異なるビデオ・ストリームの間の関係が取り込まれる。異なる基準からのビデオ・ストリームは、状態機械内で異なる状態として処理される。ユーザはビデオ・ストリームと、マウスなどのユーザ入力を介して対話して、対象をある状態内で時計回りまたは反時計回りに回転させる（あるいは、対象に関してカメラを回転させる）体験を得ることができ、対象の部分へズーム・インすること、または異なるビデオ・ストリーム（たとえば、異なる高度の基準から作成できるもの）に切り替えることができる。
【００１６】
本発明は、インターネット・コマース・ベースのマーチャンダイジングに適している。本発明を使用して、物体を、高品質および大幅なリアリズムを有して提示することができる。加えて、柔軟性のある双方向性が提供される。様々な実施形態において、本発明は以下の利点を提供する。閲覧されたビデオ信号のリモート表現が視覚的に真正（現実的）である。ビデオ信号と対話することが容易である（たとえば、マウスの動きが直観的であり、好都合である）。リモート表現を情報提供的にして、対象の十分な詳細を提供することができる。視覚信号を作成し、インターネット上でアクセスすることは相対的に安価である。
【００１７】
一例として、図１を参照すると、コンテンツ提供システム１２（たとえば、パーソナル・コンピュータ）が、メモリ１４におけるビデオ・ストリーム、ビデオ処理回路１８およびソフトウェア２０を含む。ビデオ処理回路１８は、専用ハードウェア（たとえば、グラフィックス・カード）およびプロセッサを含むことができる。リモート受信コンピュータ３０または３２によって要求されたとき、コンテンツ提供システム１２がビデオ信号を、１つまたは複数のビデオ・ストリームからコンピュータ３０または３２に供給する。コンピュータ３０はコンピュータ３２とは異なる信号を要求することができ、コンテンツ提供システム１２はこれらに異なるビデオ信号を、ストリーミング・ビデオ様式において、リンク２２を介して供給することができる。リンクはインターネットであろう。ビデオ・ストリームのサイズのため、大抵の状況では、リモート受信コンピュータに一度にビデオ・ストリームの小さい部分のみを供給することが好ましい。
【００１８】
上述のように、リンク２２はインターネットで代表される。このような場合、コンテンツ提供システム１２はインターネットへのホスティング・サーバを含むことができ、あるいはリンク２２が、コンテンツ提供システム１２によって使用されるホスティング・サーバを含むことができる。別法として、リンク２２を、電話回線またはある他の接続を介した直接接続にすることができる。なお別法として、ビデオ信号全体をディスクを介して移動させることができる。
【００１９】
いくつかの実施形態では、リモート受信コンピュータ３０が、メモリ３４、ビデオ処理回路３６、ソフトウェア４０、ユーザ・インターフェイス４２、およびビデオ信号のフレームを表示するディスプレイ４４を含む。ビデオ処理回路３６は、専用ハードウェア（たとえば、グラフィックス・カード）およびプロセッサを含むことができる。メモリ３４は、汎用メモリ、ならびに符号化されたＭＰＥＧビデオおよび復号化されたビデオ・フレーム用のメモリを含む。メモリ３４は様々なメモリを表し、これにはたとえば、ハード・ドライブ、メイン・メモリ、ビデオ・メモリ（たとえば、ビデオ静的ランダム・アクセス・メモリ（ＶＳＲＡＭ））、およびコンパクト・ディスク（ＣＤ）が使用された場合に含まれる（これらは、コンピュータ可読媒体を含む物品の例である）。ユーザ・インターフェイス４２は、キーボードおよび１つまたは複数の他のユーザ入力デバイスを含むことができ、これにはたとえば、マウス、ジョイスティック、トラックボール、キーボード、ライト・ペン、タッチ・パッド、タッチ・スクリーン、ジェスチャー認識機構などが含まれる。リモート受信コンピュータ３０は同様に、メモリ４８、ビデオ処理回路５０、ソフトウェア５２、ユーザ・インターフェイス５４およびディスプレイ５６を含む。
【００２０】
コンテンツ提供システム１２、および、リモート受信コンピュータ３０および３２は、様々なコンピュータのいかなるものも含むことができ、これにはたとえば、メイン・フレーム、デスクトップ、ポータブル、およびセットトップ・ボックス・ベースのコンピュータが含まれる。
【００２１】
本発明は、いかなる特定のデジタル・フォーマットにも制限されない。しかし、本発明のいくつかの実施形態は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）フォーマットに関連して記載される。現在の、かつ提案されているＭＰＥＧフォーマットには、ＭＰＥＧ−１（「Ｃｏｄｉｎｇ  ｏｆ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  ａｎｄ  Ａｓｓｏｃｉａｔｅｄ  Ａｕｄｉｏ  ｆｏｒ  Ｄｉｇｉｔａｌ  Ｓｔｏｒａｇｅ  Ｍｅｄｉａ  ａｔ  ｕｐ  ｔｏ  ａｂｏｕｔ  １．５  ＭＢｉｔｓ／ｓ」、ＩＳＯ／ＩＥＣ  ＪＴＣ  １  ＣＤ  ＩＳ−１１１７２（１９９２））、ＭＰＥＧ−２（「Ｇｅｎｅｒｉｃ  Ｃｏｄｉｎｇ  ｏｆ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  ａｎｄ  Ａｓｓｏｃｉａｔｅｄ  Ａｕｄｉｏ」、ＩＳＯ／ＩＥＣ  ＪＴＣ  １  ＣＤ  １３８１８（１９９４））、およびＭＰＥＧ−４（「Ｖｅｒｙ  Ｌｏｗ  Ｂｉｔｒａｔｅ  Ａｕｄｉｏ−Ｖｉｓｕａｌ  Ｃｏｄｉｎｇ」Ｓｔａｔｕｓ：ＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１、１９９９年３月）が含まれる。異なるバージョンのＭＰＥＧ−１およびＭＰＥＧ−２がある。ＭＰＥＧ以外の様々なフォーマットを使用することができる。ビデオ信号はインタリーブまたは非インタリーブ・フレームを有することができる。ビデオ信号を作成するための符号化に加えて、ビデオ信号の符号化および復号化がある可能性がある（たとえば、ＭＰＥＧにおける離散コサイン変換）。たとえば、ＭＰＥＧビデオ信号を、リンク２２を介した伝送のために符号化することができる。
【００２２】
Ｂ．ビデオ・ストリーム作成
様々な方法で、対象のビデオ信号を作成することができる。対象は、カメラが静止している間に移動することができる。これは特に、回転台上で回転させることができる物体には有用である。別法として、対象は、カメラが移動する間に静止したままでいることができる。単一のカメラを使用し、異なる位置に移動させて、異なるビデオ・ストリームを作成することができる。多数のカメラを同時に異なる位置から使用して、異なるビデオ・ストリームを作成することができる。
【００２３】
「ビューポイント」という用語は、カメラの位置と角度を指す。ズームなど、他のパラメータも、得られたビデオ信号に影響を及ぼすことができる。カメラが、ビデオ・ストリーム用のビデオ信号の作成中に静止しているとき、ビューポイントはビデオ・ストリーム中で一定である（しかし、ズームまたは他のパラメータは、ビデオ信号が作成されるときに変化する可能性がある）。カメラが移動したとき、ビューポイントがビデオ・ストリームにおいて変化する。少なくともいくつかのビューポイントが、異なるビデオ・ストリームにおいて異なるようになる。通常は、効果的なプレゼンテーションのためにビューポイントにおける違いが十分に選択され、制御される。ビデオ・ストリームが時間において連続して作成されている必要はないことに留意されたい。
【００２４】
対象が移動するシステムの一実施形態を図２に示す。図２を参照すると、システム６０が物体が載る回転台６４を含む。ビデオ・カメラ７０がカメラトラック・スタンド７２上のビューポイントＡで固定される。回転台６６が回転するとき、カメラ７０が対象６６のビデオ・ストリームのためのビデオ信号を作成する。いくつかの実施形態では、ビデオ信号を、物体６６が回転するときにその異なるビューポイントから作成するものは、１台のカメラ７０のみである。たとえば、１台のカメラしかなかった場合、これは最初にビデオ・ストリームをビューポイントＡから作成し、次いでビデオ・ストリームをビューポイントＢから作成し、次いでビデオ・ストリームをビューポイントＣから作成することができる（図２は、ビューポイントＡ．．．Ｅを例示するが、実際にはより少ないビューポイントを使用することができる）。他の実施形態では、各ビューポイントについて１台のカメラがあり、各カメラが同時にビデオ・ストリームを、物体６６が回転するときにその異なるビューポイントから作成する。多数のカメラを使用する利点は、異なるビューポイントからのビデオ信号のフレームを揃えることができることである。また、ビデオ信号作成を完了するために要する時間を短くすることもできる。ビューポイント間の動きは、カメラ・トラック・モータ７６を介するか、あるいは手動によるか、あるいは他の手段を介することができる。カメラの方向を制御するための機構が含まれる。
【００２５】
回転台６４を電動化することができる。電動化された回転台は、対象とカメラの間の一定の相対的な動きを保つことにおいて有用である。一定の相対的な動きの利点は、リモートで閲覧するユーザが、どの程度速くビデオ信号のフレームを進めるか、あるいはバックアップするかを測ることがより容易である点である。さらに、カメラが１台しかない場合、電動化された回転台を使用することは、異なるビューポイントからのフレームを揃えるための助けとなり、異なるビデオ・ストリームに切り替えたとき（状態遷移）、より正確なインデックス付けを対応するフレームに作成するための助けとなる。十分な結果を、典型的な三脚および／または手動で制御された回転台の使用を通じて得ることができる。
【００２６】
ビデオが、パーソナル・コンピュータ８０などのディスプレイ８４、キーボード８６およびマウス８８、または他のデバイスを含むコンピュータに送られる。カメラはデジタル・フォーマットであるいはアナログ・フォーマットで記録することができ、これが後にデジタル・ビデオ・フォーマットに変換される。ビデオ信号をコンピュータ８０へ、たとえば、Ｓ−Ｖｉｄｅｏ  Ｏｕｔ（シリアル）接続を介して供給することができる。特定の規格またはフォーマットは必要ではない。しかし、ビデオ信号を、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎが販売するＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（商標）ブラウザのうちの１つ、またはよく知られているＮｅｔｓｃａｐｅ（登録商標）ブラウザのうちの１つなど、普及しているインターネット・ブラウザによって理解されるフォーマットにすることが有用であろう。ビデオ信号をビデオ・カメラにおいて、コンピュータ８０にダウンロードする前にビデオ信号の作成の完了まで保持することができ、あるいはビデオを完了前にダウンロードすることができる。
【００２７】
図３はスタンド１００を例示す。スタンドはカメラ１０４を支持するためのプラットフォーム１０６を含む。プラットフォーム１０６はシャフト１０８で回転する。その高さは調節できる。オプションのモータ１１４が制御可能にプラットフォーム１０６を回転させることができる。機構１１６がプラットフォーム１０６の角度を制御することができる。
【００２８】
図４はスタンド１２０を例示し、これはシステム１００と類似しているが、追加のカメラ１２２を、機構１２８を介して傾くプラットフォーム１２４上で支持していることが異なる。機構１２８によって行われた傾きを、機構１１６に寄る傾斜と異なるようにすることができる。
【００２９】
図２ないし図４におけるスタンドの代替物として、手持ちのビデオ・カメラを使用することができ、あるいはカメラおよび単純な三脚を使用することもできる。
【００３０】
図５は、３つの異なるビデオ・ストリームＶＳ１、ＶＳ２およびＶＳ３のフレームＦ１、Ｆ２、．．．を例示する。
【００３１】
望むだけのビデオ・コンテンツをデジタル・ビデオ・カメラにより生成することができるが、選択的にするための理由がある。処理時間がビデオ・コンテンツの量に比例するので、理想的には手近に置くために必要であるだけのコンテンツのみを使用することができる。これは以下の問題に通じる。すなわち、どの種類の閲覧シーケンスがもっとも多くの視覚的情報をもっとも効果的に伝達するか、である。パノラマのビューは自然の選択であるように思われる。これは特に、我々が大抵は３Ｄの物体を処理しているからである。我々の脳が、完全な３Ｄの視覚的情報がなくても物体の十分なメンタル・モデルを構築できることにも留意されたい。異なる高度で撮影された多数のパノラマのシーケンスは、大抵の人々向けに十分な視覚的な手がかりを含んでいるように思われる（単一のパノラマのビデオ・シーケンスは通常、限定されたカメラ角度により十分ではない）。多数のティルト・シーケンスを追加の視覚的な手がかりとして含めることができる。
【００３２】
Ｃ．ユーザの対話
図１を参照すると、リモート受信コンピュータ３０のユーザ・インターフェイス４２を使用して、ビデオ信号のどの部分を閲覧するかを指示することができる。ユーザが、基準のビデオ信号の少なくとも最初のフレームの表示を活動化することができる。いくつかの実施形態ではユーザが開始基準を選択することができ、他の実施形態ではデフォルト基準がある。フレームがディスプレイ４４に表示された後、ユーザが再生の方向を変更することができ（たとえば、順方向から逆方向へ）、ユーザ・インターフェイス４２のユーザ入力デバイス（たとえば、マウス）を介してビデオ・ストリームを切り替えることができる。
【００３３】
いくつかの実施形態では以下の約束事が使用される。フレームは、マウスの主として右方向の動き（活動化）に応答して順方向に表示され、マウスの主として左方向の動きに応答して逆方向に表示される。フレームの変化の割合をマウスの動きの速度に関係付けることができ、フレームがマウスの動きに応答して変更される間の持続時間を、動きの距離に関係付けることができる。フレームが逆方向へ開始まで、あるいは順方向へビデオ・ストリームの終了まで移動したとき、これらはそれぞれ停止するか、あるいはビデオ・ストリームの終了または開始までラップ・アラウンドすることができる。たとえば、マウスが主としてユーザから離れるように（あるいは、表示ウィンドウにおいて上方に）移動された場合、ビデオ・ストリームが（ある場合は）上方向に変化し、マウスがユーザに向けて移動された場合、ビデオ・ストリームが（ある場合は）下方向に変化する。上方向によって、高い高度のビューポイントを意味し、下方向によって、より低い高度を意味する。他の慣例を使用することができる。
【００３４】
より詳細には、いくつかの実施形態では６種類のマウスの動きが使用される。すなわち、左、右、上、下、ズーム・イン、ズーム・アウトである。マウスが表示ウィンドウ内にある間に左マウス・ボタンが押されたとき、マウス・イベントが検出される。マウス・イベントのコールバック関数が、マウス位置のＸおよびＹウィンドウ座標を（Ｘｏｌｄ、Ｙｏｌｄ）として記録する。次のレンダリング・サイクルにおいて検出された新しいマウス位置を、（Ｘｎｅｗ、Ｙｎｅｗ）と呼ぶ。６つのマウスの動きは以下のように分類される（Ｙ軸が上であると仮定する）。
【００３５】
τはしきい値である。
左：（｜Ｘnew−Ｘold｜−｜Ｙnew−Ｙold｜）＞τかつ（Ｘnew＜Ｘold）の場合。
右：（｜Ｘnew−Ｘold｜−｜Ｙnew−Ｙold｜）＞τかつ（Ｘnew＞Ｘold）の場合。
上：（｜Ｙnew−Ｙold｜−｜Ｘnew−Ｘold｜）＞τかつ（Ｙnew＞Ｙold）の場合。
下：（｜Ｙnew−Ｙold｜−｜Ｘnew−Ｘold｜）＞τかつ（Ｙnew＜Ｙold）の場合。
ズーム・イン：シフト・キーが押され、マウスの「上」の動きが検出された場合。
ズーム・アウト：シフト・キーが押され、マウスの「下」の動きが検出された場合。
【００３６】
本発明はこれらの詳細に限定されない。
【００３７】
図６は、３つの異なるビデオ・ストリームからの典型的なフレームを例示する。フレーム１５０Ａ、１５０Ｂおよび１５０Ｃは、ビューポイント１（Ｖｐｎｔ１）からのビデオ・ストリームＶＳ１のフレームであり、フレーム１５４Ａ、１５４Ｂおよび１５４Ｃは、ビューポイント２（Ｖｐｎｔ２）からのビデオ・ストリームＶＳ２のフレームであり、フレーム１５８Ａ、１５８Ｂおよび１５８Ｃは、ビューポイント３（Ｖｐｎｔ３）からのビデオ・ストリームＶＳ３のフレームである。ビデオ・ストリームにおいて、例示されたフレームの間に例示されていないフレームがあることに留意されたい。例としてのみ、ビューポイント１、２および３を、図２におけるビューポイントＡ、ＢおよびＣにすることができる。図６のフレームは、異なる回転、高度および角度から、反射光をあてた３つのガラスの物体を示す。図６におけるビデオ・セグメントのための作成の時間は、約５分であった。これは、ＩＢＲでは効果的に行うことができなかった。さらに、適度に現実的なグラフィックス・モデルがガラスの装飾品から作成された場合、必要とされる時間および労力は、特に装飾品における複雑な照明効果を考慮するとはるかに大きくなっていたであろう。
【００３８】
各ビデオ・ストリームを有限状態機械における個別の状態としてモデリングすることができ、そこでは、ビデオ・ストリーム内のフレームが同じ状態にある。たとえば、図６を参照すると、ビデオ・ストリームＶＳ１のフレームが第１の状態であり、ビデオ・ストリームＶＳ２のフレームが第２の状態であり、ビデオ・ストリームＶＳ３のフレームが第３の状態である。各状態内で、ユーザは、順方向または逆方向に所望の速度で、ユーザ入力デバイスによって移動することができる。いくつかの実施形態では、以下に記載するように、フレーム毎に順方向または逆方向にランダムにアクセスされることがある。ユーザは、上述のように状態に切り替えることもできる。いくつかの実施形態では、ビューポイントＶＳ１とＶＳ２の間、およびビューポイントＶＳ２とＶＳ３の間で切り替えることができるが、ＶＳ１とＶＳ３の間をジャンプすることは、ＶＳ２における対応するフレームを表示して大きな閲覧変化を回避せずにはできない。図６は、従来技術に勝る本発明の著しい利点を例示する。すなわち、高速なコンテンツ作成、リアリズム、および単純ながら効果的なユーザの対話である。これらの利点は、人々が高性能のコンテンツを、他者による閲覧および対話のために高速かつ容易にインターネット上で取り込み、公開することを容易にし、助長するであろう。いくつかの実施形態では１つのフレームのみが一度に表示され、他の実施形態では多数のフレームを表示することができ、ユーザがそれらの間でインタラクティブにジャンプできるようにすることができる。
【００３９】
図７は、図６の実施形態の有限状態機械の特性を例示する。各円が異なる状態を表す。たとえば、図６および図７を参照すると、いくつかの実施形態では、ユーザが状態をビデオ・ストリームＶＳ１からＶＳ２へ、かつＶＳ２からＶＳ１へ、またＶＳ２からＶＳ３へ、かつＶＳ３からＶＳ２へ切り替えることができる。他の実施形態では、状態を直接ＶＳ１からＶＳ３へ、かつＶＳ３からＶＳ１へ、ＶＳ２におけるフレームを表示することなく切り替えることが可能である。他の実施形態のための状態機械表現を、図７のものより複雑にすることができる。
【００４０】
図６のフレームは、ナビゲーション支援１６０および１６２をフレームの左下隅に含む。乱雑になるのを避けるため、フレーム１５０Ａのナビゲーション支援のみにラベルが付けられている。支援の目的は、閲覧するための追加のフレームがある方向をユーザに示すことである。各フレームにおいて、ユーザは順方向または逆方向に移動することができ、そのため、水平支援１６２が右および左をポイントする（他の実施形態では、ユーザが状態の最初または最後のフレームに達していると、矢印が、ラップ・アラウンド機能があったかどうかに応じて右または左のみをポイントすることもある）。３つの状態しかない（図７を参照）ので、ユーザが最上の状態におけるフレーム（フレーム１５８Ａ、１５８Ｂおよび１５８Ｃ）を閲覧中であるとき、変更するための唯一の状態は下方向であり、垂直支援１６０が下方向をポイントする。ユーザが底部の状態におけるフレーム（フレーム１５０Ａ、１５０Ｂおよび１５０Ｃ）を閲覧中であるとき、変更するための唯一の状態は上方向であり、垂直支援１６０が上をポイントする。中央の状態（フレーム１５４Ａ、１５４Ｂおよび１５４Ｃ）では状態が上または下に変化でき、そのため垂直支援１６０が上および下をポイントする。
【００４１】
単純な場合の状態機械では、唯一のビデオ・ストリームがパノラマのビューであり、たとえば図８において、Ｖｐ０、Ｖｐ１、．．．Ｖｐｉが異なるパノラマのビデオ・ストリームを指す。現在の状態がＶｐｉであった場合、マウスの「上」の動きがＶｐｉ＋ｊへの遷移にマップされ、マウスの「下」の動きがＶｐｉ−ｊへの遷移にマップされ、ｊはマウスがドラッグされる速度に比例する。マウスの「左」および「右」の動きは、現在のビデオを順方向または逆方向に再生することに対応する。各マウスの対話により再生されるフレームの量は、マウスの動きの速度に比例する可能性がある。図８によって特徴付けられたビデオ・ストリームに関する対話モードは、「ライン」モードと呼ばれる。わずかにより複雑な遷移モードは、図９に例示されたように、パノラマのビューＶｐｉおよびティルト・ビューＶｔｉを含む。現在の状態がＶｐｉであった場合、マウスの「上」または「下」の動きが「もっとも接近した」ティルト・ビデオ・ストリームへの遷移に対応する。たとえば、図１０ではパノラマのビデオ・ストリームが分割され、異なるフレームがパノラマのビデオ・ストリームの異なるセクションにあるようにされる。たとえば、パノラマのビデオ・ストリームＶｐ２のフレームが、セクションＶｐ２−０（ティルト・ビデオ・ストリームＶｔ０に近接）、Ｖｐ２−１（ティルト・ビデオ・ストリームＶｔ１に近接）、Ｖｐ２−２（ティルト・ビデオ・ストリームＶｔ２に近接）、およびＶｐ２−ｉ（ティルト・ビデオ・ストリームＶｔｉに近接）に分割される。ティルト・ビデオ・ストリームもセクションに分割される。たとえば、ティルト・ビデオ・ストリームＶｔ１が、セクションＶｔ１−０（パノラマのビデオ・ストリームＶｐ０に近接）、Ｖｔ１−１（パノラマのビデオ・ストリームＶｐ１に近接）、Ｖｔ１−２（パノラマのビデオ・ストリームＶｐ２に近接）などに分割される。
【００４２】
現在の状態がＶｐ２であり、現在表示されたフレームがＶｐ２−１内に入った場合、マウスの「下」の動きが現在の状態をＶｔ１に設定する（ユーザにより継続されたマウスの「上」または「下」の動きが、Ｖｔ１の円滑な再生に対応する）。同様に、現在の状態がＶｔｉであった場合、マウスの「右」または「左」の動きが「もっとも接近した」パノラマのビデオ・ストリームへの遷移に対応する。図９の対話モードは「メッシュ」モードと呼ばれる。このモードは、各パノラマ（ティルト）のストリームがＮ（またはＭ）個のセクションにおいて表現されることを含む。Ｎ（Ｍ）はティルト（パノラマ）のビデオ・ストリームの数である。パノラマおよびティルトのビデオが生成されたとき、カメラがおおよそ同じ一定の速度で回転中であると仮定すると、遷移後に新しいビデオ・ストリームにおいてどのフレームにジャンプするかを計算することが簡単である。「ライン」モードの実施形態では、フレームの数が遷移前にＶｐｉの「ｎ」であった場合、Ｖｐｊへの遷移後、現在のフレームが「ｍ」に設定され、ただし以下のようになる。
ｍ＝ｎ*（ｔｏｔａｌＦｒａｍｅＮｕｍｂｅｒＯｆ  Ｖｐｊ／ｔｏｔａｌＦｒａｍｅＮｕｍｂｅｒＯｆ  Ｖｐｉ）
【００４３】
メッシュ・モードの場合、遷移をもっとも近い交差のビューへ行うことができる。たとえば、現在の状態がティルト状態であった場合、遷移をもっとも近い交差のパノラマの状態へ行うことができ、現在の状態がパノラマの状態であった場合、遷移をもっとも近い交差のティルト状態へ行うことができる。
【００４４】
いくつかの実施形態では、ズーミングを、画像操作を介して、表示されたフレームを単にスケーリングすることによって行うことができる。他の実施形態では、より高い解像度のビデオ（たとえば、６４０×４８０）を取り込むことができ、縮小バージョン（たとえば、３２０×２４０）を標準の表示および対話に使用することができるが、元のより高い解像度のビデオを、ズーミングが必要とされたときにのみ対応するフレームで復号化することができる。
【００４５】
もう１つのズーミング効果が、仮想拡大鏡を作成することによって達成される。仮想拡大鏡は実質的に、ある事前定義されたサイズの特殊な正方形の表示領域である。ユーザはこの拡大鏡を、表示ウィンドウにおけるいかなるところにも（マウスにより）配置することができる。拡大は、拡大鏡の下に表示された画像のセクションを、同じ画像のより高い解像度のバージョンの適切な部分によって置き換えることによって達成される。仮想拡大鏡を使用して、ユーザは、選択された閲覧領域から関心のある物体を詳細に検討することができる。図１１は、フレーム１７０、１７２および１７４を例示し、仮想拡大鏡１７６がフレーム１７２において使用され、仮想拡大鏡１７８がフレーム１７４において使用される。高解像度のビデオ・シーケンスからの単一のフレームのみを、拡大鏡が最初に呼び出されるたびに復号化する必要があるので、この方法は最低量の計算およびデータ転送を必要とする。多数の高解像度のビデオ・シーケンスが入手可能であった場合、対応する拡大の程度を有する多数の拡大鏡を作成して、ユーザがそこから選択するようにすることができる。
【００４６】
デジタル・ビデオ使用による一般のパラダイムは「クリック・アンド・プレイ」手法であり、順方向の再生のみが可能であり、通常は最初のフレームからのみである。本発明のいくつかの実施形態は、ＭＰＥＧ処理ライブラリ技術を、高速ランダム・アクセスおよびフレーム毎の逆方向再生のために、インデックス・テーブルの使用を介して使用することによって、この制限を克服する。このインデックス・テーブルは、ＭＰＥＧ符号化情報およびフレーム従属性に基づいて作成される。例としてのみ、いくつかの実施形態では、４００ＭＨｚのＰｅｎｔｉｕｍ（登録商標）ＩＩＩプロセッサを有するパーソナル・コンピュータ（ＰＣ）により、３５２×２４０解像度のＭＰＥＧ−１ビデオの逆方向復号化速度が約６０フレーム／秒であり、これは、通常３０フレーム／秒で取り込まれたビデオを表示するには非常に十分である。グラフィックス・エンジンでは、Ｓｉｌｉｃｏｎ  Ｇｒａｐｈｉｃｓによって開発されたＯｐｅｎ  Ｇｒａｐｈｉｃ  Ｌｉｂｒａｒｙ（ＯｐｅｎＧＬ）を使用して、ユーザにより制御されたマウスの動きを、適切なビデオ・ストリームの適切な再生モードに結合することができる。ＯｐｅｎＧＬの利点には、（１）ＯｐｅｎＧＬ用のハードウェア加速が幅広く使用可能であること、（２）ＯｐｅｎＧＬにより、画像操作のために貴重なフレーム・バッファの低レベルのオペレーションを可能にすること、（３）ＯｐｅｎＧＬユーティリティ・ライブラリ（ＧＬＵＴ）が、表示ウィンドウにおけるマウス・イベントを検出するための関数を提供すること、および、３Ｄグラフィックス・モデルをリアリズムおよび双方向性の拡張のためにビデオ・シーケンスに組み込むことが容易であることが含まれる。Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＤ３Ｄソフトウェアを、ＯｐｅｎＧＬの代替物として使用することができる。
【００４７】
図１２は、プロトタイプ・システムをブロック図、流れ図の形式において例示する。図１２を参照すると、符号化されたＭＰＥＧビデオ・シーケンスがバッファ１８０に格納される。コンテンツ提供システム１２は、要求されたフレームを提供することができるだけでなく、積極的に、要求されたフレームに密接に近接したフレームを要求側のリモート受信コンピュータ３０または３２（図１を参照）に提供する。いくつかの実施形態では、同じビデオ・ストリームにおけるフレームのみが積極的に提供される。他の実施形態では、隣接したビデオ・ストリームにおけるフレームも提供される。マウスの移動に応答して（判断ボックス１８４）、バッファ１８０のコンテンツが更新され、適切なフレームが復号化ボックス１８６において復号化される。復号化処理については以下でより詳細に記載する。復号化されたフレームがＯｐｅｎＧＬフレームバッファ・ブロック１９０に提供され、そこでフレームをズームについて操作することができる。フレームをモーフィングまたは他の技術によって操作することもできる。復号化されたフレームが、ＯｐｅｎＧＬ表示ウィンドウ１９４（たとえば、図１のディスプレイ４２）に提供される。
【００４８】
ＯｐｅｎＧＬ以外の様々な知られているソフトウェア・ツールを使用することができる。たとえば、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＤ３Ｄソフトウェアを、ＯｐｅｎＧＬの代替物として使用することができる。
【００４９】
Ｄ．フレームの高速ランダム・アクセスおよび逆方向のフレーム毎の再生
ＭＰＥＧ−１およびＭＰＥＧ−２ビデオは、３つの基本フレーム・タイプ、すなわちＩフレーム、ＰフレームおよびＢフレームからなる。Ｉフレームは、他のフレームとは無関係に符号化される。Ｐフレームは、先のＩまたはＰフレームに基づいて符号化される。Ｂフレームは、双方向フレームとしても知られており、先および／または次のＩまたはＰフレームに基づいて符号化される。フィールド符号化を使用して符号化されたＭＰＥＧ−２ビデオでは、Ｂフレームが、Ｂフレームとして符号化された異なるフィールドに従属する可能性もある。圧縮解除のコストは、異なるフレーム・タイプに渡って変わる。Ｉフレームが復号化するにはもっとも安価であり、その後にＰフレーム、次いでＢフレームが続く。ＰおよびＢフレームを復号化するには動き補償が必要とされる。Ｂフレームは通常Ｐフレームを復号化するよりも費用が高く、これは、これが２つのフレームに従属する可能性があるのに対して、Ｐフレームは１つのフレームにのみ従属するからである。
【００５０】
便宜上、以下の実施形態を、９フレームのピクチャ・グループ（ＧＯＰ）により記載する（これは、次のＧＯＰのＩフレームが含まれた場合、１０フレームを有する）。しかし、本発明は、ＧＯＰにおいて特定の数のフレームに限定されない。たとえば、ＧＯＰは通常１５または３０フレーム、またはある他の数のフレームを有することができる。
【００５１】
本発明は、いかなる特定の解像度またはバイト数を有するフレームによる使用にも制限されない。たとえば、ＭＰＥＧ１ビデオ（３５２×２４０解像度）では１つの圧縮解除されたフレームのサイズを、ＲＧＢモードでは１／４メガバイト（Ｍｂｙｔｅ）、ＹＵＶモードでは１／８ＭＢｙｔｅにすることができる。より大きい解像度により、サイズをはるかに大きくすることができる。
【００５２】
以下のＧＯＰのパターンが、フレームを表示する順序であると考察する。すなわち、Ｉ１（Ｆ１）、Ｂ１（Ｆ２）、Ｂ２（Ｆ３）、Ｐ１（Ｆ４）、Ｂ３（Ｆ５）、Ｂ４（Ｆ６）、Ｐ２（Ｆ７）、Ｂ５（Ｆ８）、Ｂ６（Ｆ９）、Ｉ２（Ｆ１０）である。フレーム番号は括弧内であり、フレーム・タイプの後の数字を使用して、同じ符号化タイプを有する異なるフレームの間で区別する。表示順序と対照的に、符号化および復号化の順序は、Ｉ１  Ｐ１  Ｂ１  Ｂ２  Ｐ２  Ｂ３  Ｂ４  Ｉ２  Ｂ１  Ｂ２である。
【００５３】
１．ランダム・アクセス
ＭＰＥＧビデオの任意のフレームへのランダム・アクセスは簡単ではなく、これはフレーム従属性のためである。たとえば、Ｐ１にアクセスするにはＩ１を最初に復号化する必要があり、Ｂ４にアクセスするには、これはＰ１およびＰ２に従属しており、最初にＩ１、Ｐ１およびＰ２を復号化する必要がある。
【００５４】
１つの手法は、ＧＯＰにおけるあらゆるフレームを復号化して、必要とされた復号化されたフレームが使用可能になるようにすることである。しかし、この強引な手法は無駄である。ランダム・アクセスのためのよりよい手法は、各フレーム用の直接フレーム従属性のリストを維持することである。直接フレーム従属性は、現在のフレームの復号化オペレーションのために直接必要とされたフレームのセットを指定する。上の実施形態では、以下が直接フレーム従属性である。
【００５５】
Ｉ１：なし
Ｂ１：Ｉ１、Ｐ１
Ｂ２：Ｉ１、Ｐ１
Ｐ１：Ｉ１
Ｂ３：Ｐ１、Ｐ２
Ｂ４：Ｐ１、Ｐ２
Ｐ２：Ｐ１
Ｂ５：Ｐ２、Ｉ２
Ｂ６：Ｐ２、Ｉ２
Ｉ２：なし
【００５６】
（フレーム従属性を、ルックアップ・テーブルによって設けることができ、これにはインデックスまたはフレーム番号によってアクセスすることができる。）
【００５７】
したがって、Ｂ５の復号化は、復号化されたＰ２を使用することを含み、Ｉ２が動き補償のために必要とされる。加えて、Ｐ２の復号化は、復号化されたＰ１を使用することを含み、これは復号化されたＩ１を必要とする。Ｂ５の復号化は、復号化されたＩ１、Ｉ２、Ｐ１およびＰ２を使用することを含む。Ｂ２の復号化は、復号化されたＩ１、および、動き補償のためにＰ１を使用することを含み、Ｐ１の復号化は、復号化されたＩ１を必要とする。したがって、Ｂ２が、復号化されたＩ１およびＰ１を必要とする。したがって、必要とされた復号化されたフレームが最初に復号化され、メモリに格納される。いくつかの場合では、復号化されたフレームが、それら自体が表示されない場合でも格納され、それらが他のフレームの復号化において使用可能となることに留意されたい。
【００５８】
２．フレーム毎の逆方向再生
ＭＰＥＧビデオの逆方向（リバース）再生をランダム・アクセス技術を使用して簡単に実施することができる。したがって、逆方向の１０を超えるフレームにアクセスするには、上のランダム・アクセス方法を使用してフレーム１０を復号化することができ、次いで、ランダムアクセス方法を使用してフレーム９を、これがすでにフレーム１０を復号化するために使用された事実を利用することなく復号化することなどができる。しかし、この手法は逆方向復号化の時間的コヒーレンスを活用しない。以下はコヒーレンスを活用するための新しい技術である。
【００５９】
復号化されたフレームが、復号済みフレーム・キャッシュに格納される。様々なタイプのメモリを復号済みフレーム・キャッシュとして使用することができる。メイン・メモリ・ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）が一例である。ビデオ・ランダム・アクセス・メモリ（ＶＲＡＭ）を使用することもできる。分離したメモリまたはメモリのセクションを、復号化されたフレームを保持することのみに専用にすることができる。復号済みフレーム・キャッシュは、すべてが連続した場所にある必要はない。
【００６０】
復号済みフレーム・キャッシュを固定または可変サイズにすることができる。これが固定サイズであった場合、出会う可能性のあるＧＯＰを考慮して、必要とされる最低数の復号化されたフレームを保持するために十分大きくするべきである。サイズは、ＧＯＰにおけるフレームの数が変化した場合、動的に変化することができる。１つのアプローチでは、復号済みフレーム・キャッシュが固定サイズであり、キャッシュが一杯であるとき最低使用頻度（ＬＲＵ）置換ポリシーが使用されて、アクセス頻度がもっとも低かったフレームが置換される。キャッシュが固定サイズでなかった場合、これは固定数のフレームを保持することができ、ＬＲＵ置換ポリシーを使用することができる。
【００６１】
フレーム１０から１への逆方向復号化のための以前の実施形態を使用すると、以下のことが、新しいアルゴリズムをフレーム１０から７において使用して起こる。
【００６２】
フレーム１０はＩ２フレームである。Ｉ２が復号化され、復号済みフレーム・キャッシュに格納される。キャッシュ＝［Ｉ２］である。
【００６３】
フレーム９はＢ６フレームである。Ｂ６はＩ２、Ｐ２、Ｐ１、Ｉ１を必要とする。Ｐ２、Ｐ１およびＩ１が復号化される。Ｂ６も復号化される。Ｉ２はすでにキャッシュにあり、そのためこれを再復号化する必要はない。復号化されたＰ２、Ｐ１、Ｉ１およびＢ６がキャッシュに格納される。キャッシュ＝［Ｉ２，Ｉ１，Ｐ１，Ｐ２，Ｂ６］である。
【００６４】
フレーム８はＢ５フレームである。Ｂ５はＩ２およびＰ２を必要とし、これらはすでにキャッシュにある。Ｂ５を復号化し、これをキャッシュに入れる。キャッシュ＝［Ｉ２，Ｉ１，Ｐ１，Ｐ２，Ｂ６，Ｂ５］である。
【００６５】
フレーム７はＰ２フレームである。Ｐ２はＰ１を必要とし、これはすでに復号化されている。Ｐ２を復号化し、キャッシュに入れる。キャッシュ＝［Ｉ２，Ｉ１，Ｐ１，Ｐ２，Ｂ６，Ｂ５］である。
【００６６】
ランダム・アクセスを、逆方向再生において使用された上述のフレーム・キャッシング技術を使用して、より効果的に実行することもできる。重要な点は、同じキャッシング機構を、最近復号化されたフレームを格納するために使用すること、および、これらのフレームが近い将来に要求された場合、これらを再使用することである。たとえば、以下のフレームのセットを復号化するように要求される可能性がある。すなわち、Ｉ１、Ｂ３、Ｂ５である。Ｂ３を復号化するには、Ｐ１およびＰ２が必要とされる。結果として、Ｐ１、Ｐ２およびＩ１が復号化され、復号済みフレーム・キャッシュに配置され、これらがすでにそこにあった場合、復号済みフレーム・キャッシュから使用される。次のＢ５を復号化するための要求では、これがＰ２およびＩ２に従属し、Ｉ２のみを復号化する必要があり、これはＰ２がすでにキャッシュにあるからである。
【００６７】
キャッシング技術を、ハードウェアまたはソフトウェア制御を介して実行することができる。この技術をソフトウェア擬似コードに関して記載するが、ハードウェアにおいて、あるいは異なる擬似コードに従ったソフトウェアを介して実施することができる。すなわち、キャッシュ技術を実施するための様々な方法がある。
【００６８】
上述のＩ１（Ｆ１）、Ｂ１（Ｆ２）、Ｂ２（Ｆ３）、Ｐ１（Ｆ４）、Ｂ３（Ｆ５）、Ｂ４（Ｆ６）、Ｐ２（Ｆ７）、Ｂ５（Ｆ８）、Ｂ６（Ｆ９）、Ｉ２（Ｆ１０）の実施形態を考察する。
【００６９】
以下の２つの関数があると仮定する。すなわち、（１）ＤｅｃｏｄｅＣｕｒｒｅｎｔＦｒａｍｅ（Ｎ，ＲｅｆｅｒｅｎｃｅＳｅｔ）および（２）ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（Ｎ）である。
【００７０】
ＤｅｃｏｄｅＣｕｒｒｅｎｔＦｒａｍｅ（Ｎ，ＲｅｆｅｒｅｎｃｅＳｅｔ）では、フレームＮが、ＭＰＥＧアルゴリズムに従って、フレームＮおよびＲｅｆｅｒｅｎｃｅＳｅｔを使用して復号化される。ＲｅｆｅｒｅｎｃｅＳｅｔは、フレームＮを復号化するために必要とされた参照されたフレームのセットである。たとえば、Ｐ１のためのＲｅｆｅｒｅｎｃｅＳｅｔは｛フレーム１｝であり、Ｂ４のためのＲｅｆｅｒｅｎｃｅＳｅｔは｛フレーム４，フレーム７｝である。復号化されたフレームＮが関数によって返される。復号化されたフレームを、ＲＧＢ、ＹＵＶ、または別のフォーマットにすることができる。ＲＧＢがこの実施形態で使用される。
【００７１】
ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（Ｎ）では、現在のフレームＮを復号化するために必要とされる参照フレームのリストが得られる。フレーム・インデックスのリストが返される。たとえば、ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（５）＝｛７，１０｝である。
【００７２】
以下の擬似コードでは、インデックスと実際のフレームの間の区別がある。たとえば、１０はインデックスであり、フレーム１０は実際のフレームである。ＭＰＥＧＦｒａｍｅＣａｃｈｅと呼ばれるデータ構造のアレイがあり、これが復号済みフレーム・キャッシュである。ＭＰＥＧＦｒａｍｅＣａｃｈｅは２つの属性を有する。すなわち、ＬａｓｔＴｉｍｅＵｓｅｄ（ＬＲＵ技術における使用向け）およびＦｒａｍｅＲＧＢである。
【００７３】
以下は、ＧｅｔＦｒａｍｅ（）を、いくつかの実施形態によるキャッシング技術を使用して実施するための擬似コード（行１〜２２）である。
１    フレームＧｅｔＦｒａｍｅ（Ｎ）
２          ＳｅｔｏｆＤｅｐｅｎｄｅｎｃｙＩｎｄｅｘ＝ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（Ｎ）
３          ＳｅｔｏｆＤｅｐｅｎｄｅｎｃｙＦｒａｍｅ＝｛｝
４          ／*必要な場合、従属性リストにおけるフレームを復号化する*／
５          ／*また復号化により、強制的にフレームを、復号済みフレーム・キャッシュへ行かせる*／
６          ＳｅｔｏｆＤｅｐｅｎｄｅｎｃｙＩｎｄｅｘにおける各ＦｒａｍｅＩｎｄｅｘについて以下を実行する
７                フレームＦｒａｍｅＩｎｄｅｘがＭＰＥＧＦｒａｍｅＣｈａｃｈｅ内にない場合
８                      ／*この呼び出しは再帰的である*／
９                      ＧｅｔＦｒａｍｅ（フレーム）をＳｅｔｏｆＤｅｐｅｎｄｅｎｃｙＦｒａｍｅへ挿入する
１０              ｅｌｓｅ
１１                    ＦｒａｍｅＩｎｄｅｘによって指示されたフレームをＭＰＥＧＦｒａｍｅＣａｃｈｅから検索する
１２                    ＦｒａｍｅＩｎｄｅｘによって指示されたフレームをＳｅｔｏｆＤｅｐｅｎｄｅｎｃｙＦｒａｍｅへ挿入する
１３                    ＭＰＥＧＦｒａｍｅＣａｃｈｅにおいてＦｒａｍｅＩｎｄｅｘによって指示されたフレームのＬａｓｔＴｉｍｅＵｓｅｄを更新する
１４              ｅｎｄ  ｉｆ
１５        ｅｎｄ  ｆｏｒ
１６        ｃｕｒｒｅｎｔＦｒａｍｅ＝ＤｅｃｏｄｅＣｕｒｒｅｎｔＦｒａｍｅ（Ｎ，ＳｅｔｏｆＤｅｐｅｎｄｅｎｃｙＦｒａｍｅ）
１７        ＭＰＥＧＦｒａｍｅＣａｃｈｅが一杯である場合
１８              ＭＰＥＧＦｒａｍｅＣａｃｈｅから、もっとも古いＬａｓｔＴｉｍｅＵｓｅｄを有する要素を除去する
１９        ｅｎｄｉｆ
２０        ｃｕｒｒｅｎｔＦｒａｍｅをＭＰＥＧＦｒａｍｅＣａｃｈｅへ挿入する
２１        ｃｕｒｒｅｎｔＦｒａｍｅを返す
２２  ｅｎｄ
【００７４】
上に挙げた実施形態に関して、以下のイベントのシーケンスが生じて、フレーム１０から逆方向に復号化する。ＭＰＥＧＦｒａｍｅＣａｃｈｅが最初に空であると仮定する。
＋ＧｅｔＦｒａｍｅ（１０）
ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（１０）＝｛｝
ＤｅｃｏｄｅＣｕｒｒｅｎｔＦｒａｍｅ（１０，｛｝）
ＭＰＥＧＦｒａｍｅＣａｃｈｅ＝｛フレーム１０｝
＋ＧｅｔＦｒａｍｅ（９）
ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（９）＝｛７，１０｝
フレーム７はＭＰＥＧＦｒａｍｅＣａｃｈｅ内にないので、ＧｅｔＦｒａｍｅ（７）を呼び出す
＋ＧｅｔＦｒａｍｅ（７）
ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（７）＝｛４｝
フレーム４はＭＰＥＧＦｒａｍｅＣａｃｈｅ内にないので、ＧｅｔＦｒａｍｅ（４）を呼び出す
＋ＧｅｔＦｒａｍｅ（４）
ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（４）＝｛１｝
フレーム１はＭＰＥＧＦｒａｍｅＣａｃｈｅ内にないので、ＧｅｔＦｒａｍｅ（１）を呼び出す
＋ＧｅｔＦｒａｍｅ（１）
ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（１）＝｛｝
ＤｅｃｏｄｅＣｕｒｒｅｎｔＦｒａｍｅ（１，｛｝）
ＭＰＥＧＦｒａｍｅＣａｃｈｅ＝｛フレーム１，フレーム１０｝
ＤｅｃｏｄｅＣｕｒｒｅｎｔＦｒａｍｅ（４，｛１｝）
ＭＰＥＧＦｒａｍｅＣａｃｈｅ＝｛フレーム１，フレーム１０，フレーム４｝
ＤｅｃｏｄｅＣｕｒｒｅｎｔＦｒａｍｅ（７，｛４｝）
ＭＰＥＧＦｒａｍｅＣａｃｈｅ＝｛フレーム１，フレーム１０，フレーム４，フレーム７｝
フレーム１０はすでにＭＰＥＧＦｒａｍｅＣａｃｈｅ内にある
ＤｅｃｏｄｅＣｕｒｒｅｎｔＦｒａｍｅ（９，｛７，１０｝）
ＭＰＥＧＦｒａｍｅＣａｃｈｅ＝｛フレーム１，フレーム１０，フレーム４，フレーム７，フレーム９｝
＋ＧｅｔＦｒａｍｅ（８）
ＧｅｔＤｅｐｅｎｄｅｎｃｙＦｒａｍｅＩｎｄｅｘ（８）＝｛７，１０｝
フレーム７および１０はＭＰＥＧＦｒａｍｅＣａｃｈｅ内にある
ＤｅｃｏｄｅＣｕｒｒｅｎｔＦｒａｍｅ（８，｛７，１０｝）
ＭＰＥＧＦｒａｍｅＣａｃｈｅ＝｛フレーム１，フレーム１０，フレーム４，フレーム７，フレーム９，フレーム８｝
．．．．
【００７５】
上のトレースでは、ＭＰＥＧＦｒａｍｅＣａｃｈｅのＬａｓｔＴｉｍｅＵｓｅｄ属性が指示されていない。しかし、ＬＲＵ技術を使用することができる。本発明がＬＲＵ技術に限定されないことに留意されたい。
【００７６】
ＭＰＥＧＦｒａｍｅＣａｃｈｅにおけるフレームは必ずしも整列されていない。再帰呼び出しを使用するよりもむしろ、上に挙げた擬似コード（行１〜２０）を修正してループを含むようにすることができ、終了条件は、フレームＮが従属するすべてのフレームが復号化されており、フレームＮの復号化において使用するために使用可能であることである。
【００７７】
Ｅ．追加の情報および実施形態
取り込まれたビデオを、効率的な伝送および格納のためにコンパクトに表現することが重要である。さらに通常は、大部分のデータが、復号化を行っているコンピュータのメモリに格納されている場合、プレゼンテーション時間中にはるかにより効率的にすることができる。これにより、過度のファイル読み取りが最小限になる。いくつかの実施形態では、本発明はＭＰＥＧ圧縮技術を、取り込まれたデジタル・ビデオを圧縮するために使用する。ＭＰＥＧ圧縮は、所与の視覚的品質のためのすぐれた圧縮率を提供する。これは２つの基本モードの圧縮に基づく。すなわち、ブロックベースのＤＣＴを使用するフレーム間符号化、および、時間において共に接近したフレームに渡るコンテンツの類似性を活用するフレーム間符号化である。ＭＰＥＧにおけるフレーム間符号化の使用は著しくビット・レートを低下させるが、このような従属性がランダム・アクセスを困難にする。
【００７８】
本明細書における「いくつかの実施形態」または「他の実施形態」への参照は、実施形態に関連して記載された特定の特徴、構造または特性が少なくともいくつかの実施形態に含まれるが、必ずしも本発明のすべての実施形態に含まれるのではないことを意味する。本明細書における「いくつかの実施形態」という用語の様々な出現は、必ずしもすべてが同じ実施形態を指しているのではない。
【００７９】
用語「反応する（ｒｅｓｐｏｎｓｉｖｅ）」および関係付けられた用語は、１つの信号またはイベントがある程度まで別の信号またはイベントによって影響を受けるが、必ずしも完全あるいは直接的ではないことを意味する。本明細書で、構成要素、イベントまたは特性が含まれる「可能性がある（ｍａｙ）」、「可能性がある（ｍｉｇｈｔ）」あるいは「ことができる（ｃｏｕｌｄ）」と述べた場合、この特定の構成要素、イベントまたは特性が含まれる必要はない。
【００８０】
本開示の利点を有する当業者には、多数の他の変形形態を、前述の説明および図面から、本発明の範囲内で行うことができることを理解されたい。したがって、それへのいかなる補正をも含む以下の特許請求の範囲が、本発明の範囲を定義するものである。
【図面の簡単な説明】
【００８１】
【図１】本発明のいくつかの実施形態による、コンテンツ提供システム、リンク、および２つのリモート受信コンピュータの概略的なブロック図である。
【図２】本発明のいくつかの実施形態による、異なる基準から回転される対象のビデオ・ストリームを作成するためのシステムの概略図である。
【図３】本発明のいくつかの実施形態による、カメラを回転させることができる、異なる基準からの対象のビデオ・ストリームを作成するためのシステムの概略図である。
【図４】本発明のいくつかの実施形態による、カメラを回転させることができる、異なる基準からの対象のビデオ・ストリームを作成するためのシステムの概略図である。
【図５】異なる基準から作成された３つのビデオ・ストリームにおけるフレームの図である。
【図６】本発明のいくつかの実施形態による、３つの異なるビデオ・ストリームからの異なるフレームを例示し、フレームをビデオ・ストリーム内で、かつ別のビデオ・ストリームへ変更することを例示する図である。
【図７】異なるビデオ・ストリームおよびそれらの間の遷移に対応する状態図である。
【図８】異なるパノラマのビデオ・ストリームを例示する図である。
【図９】異なるパノラマのビデオ・ストリームおよびティルト・ビデオ・ストリームを例示する図である。
【図１０】本発明のいくつかの実施形態による、異なるパノラマのビデオ・ストリームおよびティルト・ビデオ・ストリーム、およびフレームをそれらの間で変更することを例示する図である。
【図１１】本発明のいくつかの実施形態による、ビデオ・ストリームにおける３つのフレーム、およびそれらのいくつかの部分の拡大を例示する図である。
【図１２】インタラクティブにビデオ・ストリームを再生するためのプロトタイプ・システムのブロック図および流れ図である。
【符号の説明】
【００８２】
１２…コンテンツ提供システム、１４…ビデオ信号、１８…ビデオ処理回路、２０…ソフトウエア、２２…リンク、３０、３２…リモート受信コンピュータ
【図１】
2008263648.tif 000003
【図２】
2008263648.tif 000004
【図３】
2008263648.tif 000005
【図４】
2008263648.tif 000006
【図５】
2008263648.tif 000007
【図６】
2008263648.tif 000008
【図７】
2008263648.tif 000009
【図８】
2008263648.tif 000010
【図９】
2008263648.tif 000011
【図１０】
2008263648.tif 000012
【図１１】
2008263648.tif 000013
【図１２】
2008263648.tif 000014