説明

ビデオズーミングシステム及び方法

【課題】ビデオ画像のサイズを円滑に他のサイズに変更できるようにする。
【解決手段】コンピュータに供給されたビデオファイルを、このコンピュータ内に設けられたズーミング領域内にズーミングオブジェクトとして変換する。ユーザは、コンピュータ入力装置を介してズーミングオブジェクトを拡大及びパンする。ビデオファイルがコンピュータ内のビデオ再生ライブラリ内で再生されると、ズーミングエンジンがコンピュータ内で起動し、続いてズーミング領域がズーミングエンジンによって起動される。ビデオ再生ライブラリ内で再生されるビデオファイルのフレームは、ズーミング領域内に、ズーミングビデオオブジェクトとしてコピーされ、表示される。ユーザは、コンピュータ入力装置を介してズーミングビデオオブジェクトを囲んでいる文字枠のパラメータを操作することにより、ズーミング領域内のビデオ画像を拡大又は縮小及びパンすることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には画像表示方法及び装置に関し、特に、ビデオ表示に用いられる画像のズーミング技術に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータの処理能力は著しく向上しており、これにより、パーソナルコンピュータを用いて、非常に複雑な図形画像を生成して、表示することができるようになっている。また、ビデオ信号を圧縮するための効率的なアルゴリズムが開発されたことにより、ビデオストリームをデジタル化して、コンピュータファイルに変換し、比較的制限された帯域幅の伝送路を介してこのコンピュータファイルを伝送し、パーソナルコンピュータ上に画像を表示させることができることができるようになっている。しかしながら、伝送路及び処理装置には限界があり、このため、コンピュータ上に表示することのできるビデオ画像は、通常、利用可能な表示領域の例えば240×160画素等の狭い部分に制限されている。ユーザの観点から言えば、受信したビデオ画像をより大きいサイズで見ることができる方が好ましい。しかしながら、従来の技術では、限定された範囲内でのサイズ変更は可能であるが、あるサイズのビデオ画像を円滑に他のサイズに変更したり、パニングとサイズ変更を同時に行うことはできない。
【発明の概要】
【0003】
コンピュータに供給されるビデオファイルを、そのコンピュータ内に設けられたズーミング領域(zooming universe)内のズーミングオブジェクト(zooming object)に変換する方法を提供する。ユーザは、コンピュータ入力装置を介して操作を行い、このズーミングオブジェクトを拡大及びパニングすることができる。具体的には、ビデオファイルを、コンピュータ内にある既知のビデオ再生ライブラリ内で開き、同時に、ズーミングエンジンをコンピュータ内で起動させる。これにより、ズーミング領域が使用可能になる。ビデオ再生ライブラリ内でビデオファイルを再生するとき、そのビデオファイルのフレームは、ズーミングビデオオブジェクトとして、ズーミング領域にコピーされ、このズーミング領域内に表示される。ユーザは、コンピュータ入力装置を用いて、ズーミングビデオオブジェクトを囲む文字枠(bounding box)のパラメータを操作することにより、ズーミング領域内のビデオ画像を、所望の大きさ及び位置になるように、拡大又は縮小、及び上下にパンすることができる。
【0004】
本発明の他の実施例では、ユーザの操作に基づき、ズーミング領域内において、ビデオ画像に重なる(overlay)が、ビデオ画像ではないテキスト(text)又はその他の要素を拡大又は縮小せずに、そのビデオ画像のみを拡大又は縮小する方法を提供する。この実施例では、ズーミング領域内のビデオ画像オブジェクトに、ビデオ画像を再ペイント(repaint)してビデオ画像を表示する「ペイント(paint)」プログラムの動作を起こさせる「ダメージ(damage)」を周期的に与える。このようなビデオオブジェクトに対する周期的なダメージングは、見ている人が、このビデオ画像を連続的な画像として十分に認識できる頻度で繰り返し行われる。
【図面の簡単な説明】
【0005】
【図1】FIG.1は、従来のコンピュータシステムの構成を示す図である。
【図2】FIG.2は、ズーミングエンジンを備えるコンピュータシステムを示すブロック図である。
【図3】FIG.3は、ズーミングエンジンの構成を示すブロック図である。
【図4】FIG.4は、ズーミングスペース内に含まれる、ズーミングビデオオブジェクト等の様々なズーミング表示オブジェクトを示す図である。
【図5A】FIG.5Aは、拡大又は縮小される前のビデオ画像の一例を示す図である。
【図5B】FIG.5Bは、拡大されたビデオ画像の一例を示す図である。
【図5C】FIG.5Cは、縮小されたビデオ画像の一例を示す図である。
【図6】FIG.6は、本発明に係るビデオズーミング方法を説明するためのフローチャートである。
【発明を実施するための形態】
【0006】
本発明の更なる目的、特徴及び効果は、以下に述べる詳細な説明及びそれに付随した図面により、当該分野の技術者にとって明らかとなるであろう。
【0007】
コンピュータ上で実行されるビデオファイルは、「AVI(Audio Video Interleaved)」、「Quick Time」、「MPEG(Motion Picture Expert Group)」等の様々な符号化フォーマットで利用可能であり、これらの全ては、当該分野の技術者にとっては周知である。これらのビデオファイルをコンピュータ上で再生するためには、リアルネットワークス社(Real Networks, Inc.)のRealVideoやマイクロソフト社(Microsoft , Inc.)のDirectShow等の特殊なソフトウェアが必要でなる。以下に述べる本発明の実施例においては、グラフィックアプリケーションであるMicrosoft DirectXファミリの構成要素であるDirectShowを、ネイティブ(native)ビデオ再生ライブラリとして用いることとする。なお、その他のいかなるネイティブビデオ再生ライブラリを用いて本発明に係るビデオズーミング方法を実現してもよいことは、当該分野の技術者にとっては明らかである。
【0008】
本発明を適用したズーミングビデオインターフェースは、選択されたビデオオブジェクトを様々な倍率で表示することができる。このズーミングビデオインターフェースは、格納されている情報からビデオ(及びその他の)オブジェクトのグラフィック表示を構成し、ユーザは、このグラフィック表示を拡大、縮小及びパンすることができる。拡大、すなわち「ズームイン」することにより、オブジェクト又は複数のオブジェクトからなるオブジェクトグループを、大きく及び/又は詳細に表示することができる。また、縮小、すなわち「ズームアウト」することにより、オブジェクト及び複数のオブジェクトからなるオブジェクトグループを小さく及び/又は概略的に表示することができる。
【0009】
この実施例においては、本発明を適用したズーミングビデオインターフェースを実現するインストラクションは、JAVA(登録商標)でコーディング(coding)されている。なお、他の実施例として、このインストラクションを、PERL(登録商標)等のプラットフォームに依存しない言語、あるいはC++又はフォートラン等のプラットフォームに依存した言語を用いて実現してもよい。
【0010】
本発明に係るビデオズーミング方法を詳細に説明する前に、本発明を適用したコンピュータ環境及び本発明に係るズーミング方法を実現するための基本的なインフラストラクチャを提供するズーミングエンジンについて簡単に説明する。
【0011】
<コンピュータアーキテクチャ>
FIG.1は、本発明を適用したズーミングビデオインターフェースを実現するために適用されるコンピュータシステム100の具体例を示す図である。コンピュータシステム100は、本体120と、本体120に接続されたモニタ受像機130と、キーボード150及びマウス160等の対話形(interactive)入力装置とを備え、マウス160は、コンピュータシステム100に対する信号を生成するための正がオン及び負がオフの位置を有するマウススイッチ155,165を備える。本体120は、コンピュータシステム100において通常用いられている様々な構成要素(図示せず)を備える。これらの構成要素としては、例えばプロセッサ、ROM及びRAMからなるメモリ、キャッシュメモリ、ハードディスクストレージ装置、フロッピー(登録商標)ディスクドライブ、ストレージテープドライブ、グラフィックカード及びオーディオカード、ネットワークインターフェースカード、電源等があり、これらは、従来のアーキテクチャを用いて相互接続されている。
【0012】
コンピュータシステム100は、モニタ受像機130を介して映像を出力し、スピーカ(図示せず)を介して音声を出力し、キーボード150、マウス160、及び可能な場合はマイクロフォン(図示せず)を介して、ユーザからの入力を受信する。ユーザは、従来の方法、例えばマウス160等の対話形入力装置を用いて所望のオブジェクト上にスクリーンカーソルを移動させ、その対話形入力装置をクリックする(ボタンを押す)ことにより、コンピュータシステム100とインターフェースすることができる。このような操作を通じて、コンピュータシステム100は、所望のオブジェクトを識別/選択し、次の動作に備える。例えば、ユーザは、マウス160を用いて、スクリーンカーソルを、モニタ受像機130上のグラフィック表示画面上で動かして、グラフィック表示画面上の特定の画像に関連するに位置させる。そして、ユーザは、スクリーンカーソルを位置決めした状態で、マウススイッチ165をダブルクリックすることにより、コンピュータシステム100に入力を行う。このような操作により、通常、スクリーンカーソルが位置決めされた画像に対する所望の動作に関する情報を、コンピュータシステム100に供給することができる。このような表示と機能は、グラフィカルユーザインターフェースと呼ばれる。
【0013】
FIG.1に示すコンピュータシステム100は、デスクトップ型であるが、本発明は、ラップトップ型、パーム型等のその他の型のコンピュータシステムに対しても同様に適用することができる。また、この実施例では、スクリーンカーソルを移動して、入力を行うためにマウス160を用いているが、今後、入力を受け付け、出力を表示するための新たな技術が開発されることが予想され、本発明は、このような新たな技術も意図しているものである。例えば、マウス及びキーボードによるコマンドの代わりに、音声コマンドを用いて、表示を更新することもできる。このような及び他の代替例は、当該分野の技術者にとっては明らかである。
【0014】
FIG.2は、コンピュータ200(通常、本体120内に設けられ、コンピュータシステム100の一部をなす)の具体的な構成を示すブロック図であり、コンピュータ200は、CPU202と、ROM204と、メモリ206と、データストレージ装置208と、ビデオカード210と、オーディオカード212と、キーボード/マウスコントローラ214と、ネットワークインターフェース216とを備え、これらの各回路は、従来のバス218に接続されている。CPU202は、例えばカリフォルニア州、サンタクララのインテル社から供給されるペンティアム(登録商標)等の、従来のマイクロプロセッサからなる。CPU202は、ROM204及び/又はメモリ206に記憶されているインストラクションを実行する。ROM204は、読出専用メモリからなり、電源が切断されている間でも、格納している情報を保持する。ROM204は、例えばブートアップシーケンス用のインストラクションを記憶している。メモリ206は、例えば揮発性メモリからなり、コンピュータオペレーティングシステムにおいて実行される通常の動作中に用いられるインストラクション及び情報を記憶する。データストレージ装置208は、データを長期間保存するものであり、例えば磁気ディスク装置、光磁気ディスク装置等のハードディスク装置からなる。ビデオカード210は、コンピュータ200とモニタ受像機130とのインターフェースをとり、オーディオカード212は、コンピュータ200とスピーカとのインターフェースをとる。キーボード/マウスコントローラ214は、コンピュータ200と、コンピュータ200に入力を供給するキーボード150及びマウス160とのインターフェースをとる。ネットワークインターフェース216は、従来のネットワークインターフェースカードからなり、ローカルネットワークの線とコンピュータ200とのインターフェースをとる。このネットワークインターフェースカード216は、従来のイーサネット(登録商標)カード、あるいはイーサネット(登録商標)、ISDN及び/又はその他のネットワークと通信を行う多目的インターフェースであってもよい。インターネットへの接続は、このネットワークインターフェース216を介して行うことができる。
【0015】
なお、コンピュータ200は、上述した回路以外の構成要素を備えていてもよい。例えばプリンタやプロッタとのインターフェースをとる入出力ポート、フロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、その他様々な機能の回路を備えていてもよく、また、様々な回路はなくてもよい。同様に、インターネットへの接続をネットワークインターフェースカードを用いて行うと説明したが、モデムを従来の電話回線に接続し、インターネットサービスプロバイダを介して、インターネットに接続してもよい。このように、コンピュータ200に関しては、様々な代替例が考えられるが、それら代替例は、当該分野の技術者にとっては明らかである。
【0016】
また、FIG.2に示すように、メモリ206には、オペレーティングシステム220と、ズーミングエンジン222とが記憶される。オペレーティングシステム220は、通常、ブート中に、データストレージ装置(例えばハードディスク装置)208からメモリ206にロードされるプログラムである。オペレーティングシステム220は、コンピュータ200内のアプリケーションと呼ばれる他のプログラムを管理するとともに、直接又はアプリケーションプログラムインターフェースを介してアプリケーションによって用いられる特定のインストラクション及び動作を備えている。また、オペレーティングシステム220は、コンピュータ200に接続されている機器(例えばプリンタ、ディスクドライブ等)の交換を処理したり、メモリ206の使用状態を管理したり、あるいはマルチタスク環境における処理リソース(computing resource)の割当を行う。
【0017】
ズーミングエンジン222は、後述するように、ユーザ入力及びシステム入力に基づいてモニタ受像機130を更新するためのインストラクションを備えている。ズーミングエンジン222は、例えば、ズーミングスペース(zooming space)内に表示される様々なズーミングオブジェクトを管理し、利用可能な表示スペースを判別し、その利用可能な表示スペース内に表示されるズーミングオブジェクトを決定し、ユーザがズーミングスペースを指示することによって生成されるマウス及びキーボードイベント(event)等の様々なイベントに応じてモニタ受像機130を更新する。ズーミングエンジン222は、ソフトウェアからなることが好ましいが、ズーミングエンジン222の全て又は一部は、ハードウェア、ファームウェア、あるいはソフトウェア、ハードウェア及びファームウェアを組み合わせたものであってもよい。
【0018】
この実施例においては、コンピュータシステム100は、UNIX(登録商標)、WINDOWS(登録商標)95又はWINDOWS(登録商標)98等の既存のオペレーティングシステムを用い、これらは、メモリ206内のオペレーティングシステム220の領域に常駐する。本発明を適用したズーミングエンジン222は、コンピュータプロセッサ用のインストラクションセットとして実装されるときは、JAVAプログラミング言語によって書かれており、JAVA仮想マシン(JAVA virtual machine)を含むこれらのインストラクションは、コンピュータシステム100のメモリ206内のオペレーティングシステム220の領域に常駐している。JAVA仮想マシンは、演算機器用の抽象仕様(abstract specification)であり、JAVAアプリケーションと、JAVAアプリケーションが実行される特定のプラットフォーム(インテル、アップル)との間のインターフェースとして機能する。周知のように、JAVAは、プラットフォームに依存せず、オブジェクト指向プログラミング言語であり、その詳細は、サンマイクロシステムズ社(Sun Micro Systems, Inc.)によって、インターネットウェブサイトに掲載されている。ワールドワイドウェブ(World Wide Web:WWW)におけるサンマイクロシステムズ社のウェブサイトのユニフォームリソースロケータ(Uniform Resource Locator:URL)は、www.java.sun.comであり、JAVA、JAVA開発キット(development kit)及び関連する商品に関する情報も、このウェブサイト内に記載されている。
【0019】
また、コンピュータシステム100は、ワールドワイドウェブ又はローカルネットワークとの通信を行うハードウェア及びソフトウェアを備えてもよい。この場合、ソフトウェアは、Netscape Navigator(登録商標)等のJAVAを使用することのできるブラウザを備える。このようなソフトウェアを用いることにより、コンピュータシステム100は、ネットワークインターフェース216を介して、プラットフォームに依存しない言語で書かれたインストラクションを備えるウェブサイトからインストラクションを受信し、受信したインストラクションを実行することができる。
【0020】
<ズーミングエンジン>
FIG.3は、本発明に係るビデオズーミング方法を実現するズーミングビデオインターフェース機能を働かせるズーミングエンジン222の構成を示すブロック図である。例えば、ズーミングエンジン222は、上述したように、オペレーティングシステム220によって動作し、ズーミンググラフィカルユーザインターフェース機能を提供するためのCPU202によって実行される様々なインストラクションを含んでいる。
【0021】
また、ズーミングエンジン222は、プラットフォームに依存したインストラクションを含むインストラクションを実行する環境において動作してもよいが、ズーミングエンジン222は、通常、プラットフォームに依存しないインストラクションを実行する環境において、仮想マシン302上で動作するものであることが好ましい。この実施例においては、ズーミングエンジン222は、JAVAプログラミング言語によって書かれており、仮想マシン302は、JAVA仮想マシンからなる。ズーミングエンジン222とオペレーティングシステム220との間には、オペレーティングシステム220を用いてレンダリングを行うOSレンダリングインターフェース304とOSビデオインターフェース306が設けられている。これらのインターフェース304,306は、ダイナミックリンクライブラリ(DDL)ファイル、及び/又はWINDOWS(登録商標)の環境においてはマイクロソフト社のDirectDraw及びDirectShowのソフトウェア開発キット(software development kit:以下、SDKという。)等のオペレーティングシステム220とインターフェースするための従来の機能を備えている。
【0022】
ズーミングエンジン222は、領域モジュール(universe module)308を備え、領域モジュール308は、所定のズーミングスペースに対応する最上位(highest level module)のモジュールである。領域モジュール308は、ビューモジュール(view module)310と、オブジェクト管理モジュール312(object manager module)と、イベント管理モジュール(event manager module)314とを備える。これらのモジュール308〜314は、実行時において、それらに関連して記述された様々な機能を実行するインストラクションを含んでいる。これらのモジュール308〜314(これらのモジュールに直接的又は間接的に関連する付加的なサブモジュール(sub-module))は、ソフトウェアよりなることが好ましいが、これらの機能をハードウェア又はファームウェアを用いて実現してもよい。これらのモジュール308〜314は、例えば、1つの領域に対して1つだけ生成することができるクラスのインスタンス(instance of a class)用のJAVA単一クラス定義(Java(登録商標) singleton class definition)を用いて実現される。
【0023】
FIG.3に示す領域モジュール308及びそのサブモジュールの全ては、1つのズーミングスペースに関連している。複数のズーミングスペースのインスタンスを、自身の領域モジュール308とそれに適したサブモジュールからそれぞれなる複数のズーミングスペースを含むマルチバース(multiverse)328としてを設けてもよい。
【0024】
オブジェクト管理モジュール312は、ズーミングスペース内の全てのズーミングオブジェクト、すなわちズーミングオブジェクトモジュール316(zooming object module)によって定義される円形モジュール(circle module)318、矩形モジュール(rectangle module)320、テキストモジュール(text module)322、ビデオプレーヤモジュール(video player module)324等のそのサブクラスモジュールを含むズーミングオブジェクトを制御する。ズーミングオブジェクトモジュール316と、各サブクラスモジュール318〜324との間に示す分岐(branch)は、1対多(one-to-many)の関係を表している。例えば、円形モジュール318が複数存在するときは、それぞれの円形モジュール318は、スーパークラス(superclass)であるズーミングオブジェクトモジュール316の特性を継承している。
【0025】
ズーミングエンジン222は、様々な種類のオペレーティングシステム220とインターフェースをとることができる。この実施例においては、グラフィックモジュール323は、ズーミングエンジン222をOSレンダリングインターフェース304にインターフェースさせる。同様に、様々なオペレーティングシステムインターフェースに対するポートとして機能する様々な種類のビデオプレーヤモジュール324を設けてもよい。
【0026】
イベント管理モジュール314は、ユーザの操作によるマウス/キーボードイベント等のシステムイベント(system event、矢印330)に応答するイベントオブジェクト(event object)326を生成する。そして、イベントオブジェクト326は、イベント処理情報(event handling information)とともに、矢印332に示すようにビューモジュール310に送られ、及び/又は矢印334に示すようにオブジェクトモジュール316に送られ、表示が適切に更新される。
【0027】
ビューモジュール310は、オブジェクト管理モジュール312からのズーミングオブジェクトに関する情報の要求及び受信(矢印336)によって、ズーミングスペース内のズーミングオブジェクトから選択されたズーミングオブジェクトの少なくとも1組を含む。典型的には、ビューモジュール310は、これらのズーミングオブジェクトを含み、これらのズーミングオブジェクトは、主ズーミング表示領域(main zooming view)内に存在する。これらのズーミングオブジェクトは、オブジェクト管理モジュール312によって用いられる同一のインデックスに結び付けられる。これにより、ビュー内の様々なズーミングオブジェクトを、ビューモジュール310内で分離して編成することができ、したがって、ズーミングオブジェクトモジュール316を別々に呼び出す必要がなくなる。例えば、ビューモジュール310は、矢印338に示すように、コマンドを発行し、このコマンドは、オブジェクトモジュール316及び幾つかの関連するサブクラスモジュールを介して伝搬し、主ズーミング表示領域内に含まれる多くのズーミングオブジェクトのレンダリングに影響を与える。
【0028】
個々のズーミングオブジェクト又はズーミングオブジェクトのグループは、互いに独立して、イベント管理モジュール314によってズーミングオブジェクトモジュール316に直接供給されるイベント情報に応じた更新の対象とされ、レンダリングコマンドは、矢印340,342,344に示すように、各オブジェクトによってより直接的に発行される。このように行われる更新には、例えば、
【0029】
<ズーミングスペース>
FIG.4は、ズーミングスペース402に含まれる情報を表す様々な幾何学オブジェクトを示す図であり、ズーミングスペース402は、ズーミングオブジェクト406,408,410,412,414を含んでいる。FIG.4に示す外枠は、ズーミングスペース402を表している。図を簡単にするために、ズーミングスペース402の境界を示しているが、ズーミングスペース402は、必ずしも境界を有さなくてもよい。ズーミングスペース402は、利用可能なビュースペース(available view space)404を含んでいる。利用可能なビュースペース404は、典型的には、モニタ受像機130及びその構成に応じて変化する。したがって、利用可能なビュースペース404は、モニタ受像機130の最大表示領域であってもよい。また、ズーミングエンジン222がオペレーティングシステム220と関連して動作する場合、利用可能なビュースペース404は、オペレーティングシステム220によって提供される特徴(feature)に一致する。例えば、WINDOWS(登録商標)オペレーティングシステム220内で開かれているウィンドウの利用可能な表示領域が、利用可能なビュースペース404である。したがって、利用可能なビュースペース404は、ウィンドウを最大化したり、又はウィンドウのサイドの位置を変える等の従来の制御を用いることにより、変えることができる。
【0030】
ズーミングスペース402内のズーミング可能なオブジェクトには、円406、三角形408、星形410、四角形412及びMPEGビデオ画像414が含まれ、このようなオブジェクトは、特定のサイズ、形状及び色彩を有するグラフィカルオブジェクトである。ビデオオブジェクトは、MPEG、AVI、ストリーミングビデオ等の標準的なビデオフォーマットからなる。上述したズーミングオブジェクト及びオブジェクトフォーマットは、一具体例であり、これらに限定されるものではない。上述したズーミングオブジェクト及びオブジェクトフォーマットに代えて、他のズーミングオブジェクト及びフォーマットを用いてもよいことは、当該分野の技術者にとっては明らかである。
【0031】
ズーミングスペース402は、全てのズーミングオブジェクト406〜414を含んでおり、ユーザは、ズーミングスペース402を操作している間に、これらのズーミングオブジェクトを見ることができる。なお、利用可能なビュースペース404が全体のズーミングスペース402を囲むのに十分な大きさを有しないときは、ユーザは、ズーミングオブジェクト406〜414の全てを同時に見ることができない。例えば、この実施例においては、利用可能なビュースペース404には、三角形408、円406及びMPEGビデオオブジェクト414が含まれるが、他のオブジェクトは、オブジェクトの尺度及びパンされる位置に応じて、見えたり、見えなかったりする。
【0032】
ユーザは、ズーミングスペース402内において、マウス160を用いてオブジェクトを選択することにより、グラフィカルオブジェクトと直接対話することができる。この動作により、ズーミングエンジン222内でイベントが生成され、利用可能なビュースペース404内の見ることができる各オブジェクトに対して交差テスト(intersection test)が開始される。線、矩形又は楕円等の基本的なオブジェクト(primitive object)は、マウスカーソルの下のポイントがオブジェクトの形状と交差するかを調べるための単純な数学的テストを行う。文字枠によって定義されるオブジェクトがマウスカーソルの下のポイントと交差するときは、ユーザは、そのオブジェクトに対して次の操作を行うことができる。ズーミングオブジェクトのクラスは、それ自体の形状を有していないので、文字枠とマウスカーソルの下のポイントとが交差するかを判定するのには、様々な形状の文字枠を選択することができるが、特に、矩形の文字枠を用いることが好ましい。
【0033】
ユーザは、ズーミングスペース402を三次元的に操作することができる。例えば、表示装置の利用可能なビュースペースの二次元面に対応したX方向及びY方向の移動は、パニングと呼ばれ、これに対して、Z方向の操作は、「ズーミング」と呼ばれる。Z方向(表示画面の中へ又は外へ)の操作によって、利用可能なビュースペース404の視点(perspective)が、ズーミングスペース402内のズーミングオブジェクトに向かってズームインしたり、又はズーミングオブジェクトからズームアウトするように見える。
【0034】
表示画面の中へ(+Z方向)の操作を行うことにより、ズーミングオブジェクトは、見る者に近づくように、すなわちより大きく現れる。この操作を「ズームイン」と呼ぶ。また、この操作により、ズーミングオブジェクトの感知される間隔は増し、これによって、ズーミングオブジェクトは利用可能なビュースペース404から外れる。「ズーミングイン」を行うためには、ユーザは、マウスカーソルを用いて、より詳細に詳細に見たい情報をマークするとともに、所望の情報を拡大させる入力装置を操作する。
【0035】
表示画面の外へ(−Z方向)の操作を行うことにより、ズーミングオブジェクトは、ユーザから遠ざかるように、すなわちより小さく現れる。この操作を「ズームアウト」と呼ぶ。ユーザのズームアウトと同様に、ズーミングオブジェクトの感知される間隔は減少し、新たなズームオブジェクトが利用可能なビュースペース404内に入ってくる。「ズームアウト」を行うためには、ユーザは、マウスカーソルを用いて、小さく見たい情報をマークするとともに、所望の情報の大きさを縮小させる操作を行い、それによって、選択された情報のより広範囲な部分が表示される。全てのズーミング操作は、従来の対話形の入力コマンドを用いて行われる。例えば、マウス160を左クリックすることにより、ズームインを行い、キーボード150のシフトキーを押しながらマウス160を左クリックすることにより、ズームアウトを行う。
【0036】
FIG.5A乃至FIG.5Cは、本発明に基づいて操作されるビデオの表示画像の一例を示す図である。FIG.5A乃至FIG.5Cに示す各画像は、同一のズーミング領域上に表示される。FIG.5Aに示すズーミングビデオ画像(zooming video image)1は、ユーザがビデオファイルを開き、再生したときに表示される画像である。この実施例において、画像の左上にあるメニューの1つをプルダウンし、「再生」を選択することにより、再生コマンドが発行される(なお、このようなメニュープルダウン操作は、当該分野の技術者にとって周知の技術であり、ここでは、その詳細な説明を省略する。)。FIG.5Bに示すズーミングビデオ画像2は、同じビデオ画像をズームインしたときに表示される画像である。例えば、ユーザは、表示されているビデオ画像の任意の位置にマウスカーソルを置き、マウス160を左クリックすることにより、ズームイン機能を実行させる。なお、ズームインされる位置は、マウスカーソルの位置である。FIG.5Cに示すズーミングビデオ画像3は、同じビデオ画像をズームアウトしたときに表示される画像である。例えば、ユーザは、表示されているビデオ画像の任意の位置にマウスカーソルを置き、シフトキーを押しながらマウス160を左クリックすることにより、ズームアウト機能を実行させる。
【0037】
<ビデオズーミング方法(zooming video methodology)>
本発明に係るビデオズーミング方法に基ついて、ビデオ再生ライブラリ(video player library)は、オペレーティングシステム220のネイティブコード(native code)に設定され、選択されたビデオファイルは、このビデオ再生ライブラリ内で開かれる。また、ズーミングエンジン222は、例えばJAVAプログラミング言語で書かれており、コンピュータ200内で起動されており、ズーミングエンジン222のズーミング領域がコンピュータ200の表示装置(又は、このような表示装置上のアクティブウィンドウ内)に表示される。この実施例においては、ビデオ再生ライブラリはマイクロソフト社のDirectShowからなり、ビデオファイルフレームは、Microsoft DirectX固有の言語で、DirectDraw surfaceとしてメモリ領域に記憶される。
【0038】
JAVAに基づくズーミングエンジン222において、ズーミングエンジン222のOSビデオインターフェース306を介して、ズーミングビデオオブジェクトに再生が指示されると、ビデオフレームが記憶されるDirectDraw surfaceに関するキャプチャループ(capture loop)を生成するスレッド(thread)が生成され、このスレッドは、ビデオ再生ソフトウェアのネイティブコードに引き継がれる。この実施例においては、ビデオキャプチャは、ビデオストリームのフレームレート(frame rate)で実行され、ビデオフレームは、ループ毎にDirectDraw surfaceにコピーされて、記憶される。そして、コピーされたビデオフレームは、ズーミング領域内のビデオオブジェクトに変換され、このビデオオブジェクトは、ビデオフレームが表示されるズーミング領域内の画面(surface)を表している。従来のコンピュータ入力装置を用いて、ズーミング領域内のビデオオブジェクトを囲む文字枠の寸法及び位置を操作することにより、ビデオオブジェクトを拡大することができ、これにより、再生中のビデオファイルが、パン及び拡大された状態で、ユーザに表示される。なお、ビデオキャプチャループのコピーレートは、基本的には、見る者の目に連続した動きとして感知される視点から選択される。
【0039】
また、本発明の他の実施例は、テキスト等の他のオブジェクトと重なり合ったビデオオブジェクトのズーミング方法に関する。多くの場合、ユーザは、ビデオオブジェクトの大きさを、対応するテキストオブジェクトをズーミングせずに、ズーミングすることを欲する。ビデオオブジェクトは、フレームレート、例えば1秒間に30回の割合で、常にリフレッシュされる一方、重なり合っているテキストはリフレッシュされないので、この実施例におけるビデオズーミング方法では、ズーミング領域内にアニメーションが生成され、ビデオオブジェクトが、リフレッシュレートで、「ダメージング(damaging)」される。このようなビデオオブジェクトの「ダメージング」とは、画像を表示装置上で再ペイント(repaint)する動作も含むことを意図するものである。このようにズーミング領域内のビデオオブジェクトにダメージを与えることにより、ビデオオブジェクトを囲む文字枠は常にリフレッシュされるが、そのビデオオブジェクトの上部に他のオブジェクトがある場合、ズーミング領域は、その領域の部分、すなわちビデオオブジェクトをダメージを受けるものと認識して、(ダメージレート)で再ペイントしなくてはならず、ズーミング領域内の全ズーミングオブジェクトの正しいZ面平面の順番が維持されるように、再ペイントが行われる。
【0040】
FIG.6は、本発明に係るビデオズーミング方法を説明するためのフローチャートである。FIG.6に示すように、上述した動作は、境界線601を境に、JAVAプログラミング言語を用いて実装されるズーミングエンジン222内で実行される機能と、コンピュータシステム100のオペレーションシステムのネイティブコード(native code)を用いて実行される機能とに分けられる。ズーミングエンジン222は、JAVA仮想マシン600の制御の下で動作し、ズーミングエンジン222は、初期ステップとして、ビデオ再生が指示されると、ブロック603で示されるズーミングビデオ再生スレッド(zooming video play thread)を起動させる(ステップ602)。次のステップにおいて、ズーミングビデオ再生スレッドは、ネイティブコードに引き継がれ(descend)、ネイティブコード内で実行されるビデオストリームからのデータを用いてDirectDraw surfaceを生成するループに送られる(ステップ604)。そのネイティブコードのDirectDraw surfaceからのビデオフレームは、ズーミング領域内のビデオオブジェクトを構成するビデオDirectDraw surface606にコピーされる。このビデオDirectDraw surface606は、ビデオファイルの元の大きさを有している(なお、FIG.6において、図を簡単にするために、ビデオDirectDraw surface606は、ネイティブコードの一部として図示されているが、実際には、JAVAズーミング領域内のオブジェクトに含まれる。)。ビデオDirectDraw surface606のオブジェクトを囲む文字枠の大きさが、(ユーザからの入力により)、ズーミング領域内で縮小又は拡大されると、ビデオオブジェクトをペイントするように要求が発行され、これにより、ズーミング領域内のDirectDraw surfaceの、ズーミングビデオオブジェクトから要求される座標(coordinates)に、ビデオデータがコピーされ(ステップ605)、ズーミング領域ディスプレイ(zooming universe display)607上に、縮小又は拡大されたビデオ画像(video image)が表示される。
【0041】
また、FIG.6は、上述した他の実施例、すなわちズーミングビデオオブジェクトに、テキストオブジェクト等の他のオブジェクトが重なっていて、この他のオブジェクトを、ビデオオブジェクトと同じリフレッシュレートでリフレッシュする必要がない場合のビデオズーミング方法を、説明するためのフローチャートを示している。FIG.6に示すように、新たなスレッドが、ズーミングエンジン222によって、ブロック609内に示されるズーミングビデオダメージスレッド(zooming video damage thread)として起動される(ステップ608)。上述したようなビデオオブジェクトに関するアニメーション効果を実現するために、ズーミングビデオダメージスレッド609は、例えば1秒間に30回の割合で、ズーミングビデオオブジェクト611にダメージを与える(ステップ610)。このようにズーミングビデオオブジェクトにダメージを与えることによって、ネイティブビデオオブジェクトから、ダメージング毎に、ペイントが要求され(ステップ612)、ズーミングされるビデオオブジェクトの座標が、ビデオDirectDraw surface606上で再ペイント(repaint)を行うためのペイントプログラムに供給される。このとき、本発明に係る基本的なビデオズーミング方法によれば、このペイント要求により、ビデオデータは、ズーミング領域内のDirectDraw surface上のズーミングビデオオブジェクトの座標にコピーされ(ステップ605)、その結果、ズーミング領域ディスプレイ607上に、縮小又は拡大されたビデオ画像が表示される。
【0042】
以上、オペレーティングシステムのネイティブコードを用いて再生されるビデオファイルを、コンピュータ上で動作するズーミング領域に変換し、ビデオファイルの画像を、ユーザによって、ユーザが所望する大きさに拡大又は縮小する方法を説明した。ズーミングエンジンは、変換されたズーミングビデオオブジェクトが拡大及び縮小されるズーミング領域を備え、例えばJAVAプログラミングコードで実現される。また、本発明の他の実施例では、ズーミングビデオオブジェクトに所望のリフレッシュレートでダメージを与えることによって、アニメーションが生成され、ズーミングビデオオブジェクトと、ズーミングビデオオブジェクトの上部に重なるテキストオブジェクト等の他のオブジェクトとの間の適切なZ面平面の順番が維持される。
【0043】
以上、本発明に係るビデオズーミング方法及びビデオズーミング方法の具体例を詳述したが、特許請求の範囲に示す本発明の思想を逸脱することなく、上述の実施の形態を様々に変形及び修正することができる。

【特許請求の範囲】
【請求項1】
コンピュータ処理装置上で再生することができるビデオデータファイルとして構成されたビデオデータストリームに関する画像を所望の大きさに拡大/縮小する方法であって、
前記ビデオデータファイルのインスタンスを前記コンピュータ処理装置上で動作するビデオ再生ライブラリ内で再生させるステップと、
前記コンピュータ処理装置と関連して動作するズーミングエンジンを提供するステップと、
オブジェクト指向グラフィック環境において前記ズーミングエンジンを実行するステップと、
前記ビデオ再生ライブラリ内で再生されているビデオデータファイルのフレームを前記ズーミングエンジンによって設けられるズーミングオブジェクトにコピーするステップと、
前記ズーミングオブジェクトを所望のレベルに拡大/縮小するステップと、を備え、
前記ズーミングオブジェクト及び1又はそれ以上の追加のズーミングオブジェクトを別々に更新の対象とすることを特徴とする方法。
【請求項2】
前記追加のズーミングオブジェクトは、前記ズーミングエンジンのイベントマネージャによってズーミングオブジェクトモジュールへ直接供給されるイベント情報に応じて別々に更新の対象とされる、請求項1に記載の方法。
【請求項3】
前記ズーミングオブジェクト及び前記1又はそれ以上の追加のズーミングオブジェクトのそれぞれは、それぞれの文字枠によって定義され、前記ズーミングオブジェクト及び前記1又はそれ以上の追加のズーミングオブジェクトのためのそれぞれの文字枠が交差すると、そのズーミングオブジェクトについての操作が実行される、請求項2に記載の方法。
【請求項4】
前記ズーミングオブジェクトを含む前記ビデオデータファイルのフレームの外側の表示内容は、前記ズーミングオブジェクトに重なり、さらに、ユーザの指示に従って前記外側の表示内容を拡大/縮小せずに前記ズーミングオブジェクトを拡大/縮小するステップを有する、請求項1に記載の方法。
【請求項5】
前記外側の表示内容はテキストである、請求項4に記載の方法。
【請求項6】
前記ズーミングオブジェクトは周期的にダメージを受けて、前記ビデオデータファイルのフレームの再ペイントを行う、請求項1に記載の方法。
【請求項7】
前記ズーミングオブジェクトの周期的なダメージングは、見ている人が、このビデオデータファイルを連続的なものと認識できる十分な頻度で繰り返し行われる、請求項6に記載の方法。
【請求項8】
前記ズーミングオブジェクトの周期的なダメージングは、リフレッシュレートで行われる、請求項6に記載の方法。
【請求項9】
前記ビデオデータファイルのフレームの再ペイントは、すべてのズーミングオブジェクトの正しいZ面平面の順番が維持されるように行われる、請求項6に記載の方法。
【請求項10】
プロセッサと、
オペレーティングシステムとして構成されるコンピュータインストラクションのセット、及び、前記プロセッサによって操作されるグラフィカル画像データを表示する表示手段と、
前記プロセッサによって処理されるビデオ画像を、元の画像サイズから所望の拡大レベルで拡大して表示するビデオイメージング手段と、を備え、
前記ビデオイメージング手段は、
前記オペレーティングシステムのもとで動作するビデオ再生ソフトウェアライブラリと、
オブジェクト指向グラフィック環境における使用に適合する前記オペレーティングシステムと関連して動作するズーミングエンジンとを含み、
データファイルとして構成されたビデオデータストリームが前記ビデオ再生ソフトウェアライブラリ内で再生され、再生された前記ビデオデータストリームのフレームがズーミングオブジェクトにコピーされ、前記ズーミングオブジェクト及び1又はそれ以上の追加のズーミングオブジェクトが別々に更新の対象とされることを特徴とするコンピュータシステム。
【請求項11】
さらに、データファイルとして構成されたビデオデータストリームの選択されたフレームを、ダメージを受けるズーミングオブジェクトに、選択された繰り返し頻度でコピーさせる手段を備える、請求項10に記載のコンピュータシステム。
【請求項12】
さらに、モニタ受像機と、前記モニタ受像機と前記プロセッサとの間に協働するよう接続され、前記ビデオプロセッサによって与えられる前記オブジェクト指向グラフィック環境の視野を前記モニタ受像機に再現するビデオドライバカードとを含み、
前記プロセッサは、ソフトウェアの制御のもとで、複数のグラフィックオブジェクトを有するオブジェクト指向グラフィック環境を提供するよう構成され、
前記ビデオ再生ソフトウェアライブラリは、前記オブジェクト指向グラフィック環境内で前記グラフィックオブジェクトの1つに対して、ビデオデータのフレームをストリーム再生するよう動作し、
前記ズーミングエンジンは、前記オブジェクト指向グラフィック環境内でズーミング特性を生成するよう構成され、
前記ズーミングエンジンは、前記ズーミング特性に従って、前記オブジェクト指向環境の視野を拡大/縮小するよう構成されている、請求項10に記載のコンピュータシステム。
【請求項13】
ズーミングオブジェクト及び1又はそれ以上の追加のズーミングオブジェクトは、前記ズーミングエンジンのイベントマネージャによってズーミングオブジェクトモジュールへ直接供給されるイベント情報に応じて、別々に更新の対象とされることを特徴とする請求項10に記載のコンピュータシステム。
【請求項14】
前記各ズーミングオブジェクトはその文字枠によって定義され、前記ズーミングオブジェクトのそれぞれのための文字枠が交差すると、そのズーミングオブジェクトについての操作が実行される、請求項10に記載のコンピュータシステム。
【請求項15】
前記データファイルのフレームの外側の表示内容は前記ズーミングオブジェクトに重なり、ユーザの指示に従って前記外側の表示内容を拡大/縮小せずに前記ズーミングオブジェクトを拡大/縮小する、請求項10に記載のコンピュータシステム。
【請求項16】
前記外側の表示内容はテキストである、請求項15に記載のコンピュータシステム。
【請求項17】
前記ズーミングオブジェクトは、周期的にダメージを受けて前記データファイルのフレームの再ペイントを行わせる、請求項10に記載のコンピュータシステム。
【請求項18】
前記ズーミングオブジェクトの周期的なダメージングは、見ている人が、このビデオデータファイルを連続的なものと認識できる十分な頻度で繰り返し行われる、請求項17に記載のコンピュータシステム。
【請求項19】
前記ズーミングオブジェクトの周期的なダメージングは、リフレッシュレートで行われる、請求項17に記載のコンピュータシステム。
【請求項20】
前記データファイルのフレームの再ペイントは、すべてのズーミングオブジェクトの正しいZ面平面の順番が維持されるように行われる、請求項17に記載のコンピュータシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図6】
image rotate


【公開番号】特開2011−141559(P2011−141559A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2011−33924(P2011−33924)
【出願日】平成23年2月18日(2011.2.18)
【分割の表示】特願2000−596515(P2000−596515)の分割
【原出願日】平成12年1月28日(2000.1.28)
【出願人】(593181638)ソニー エレクトロニクス インク (371)
【Fターム(参考)】