(57)【要約】【課題】  投影中に観察者の位置が移動しても、歪み補正により映像が自然な形で見えるようにした映像歪み補正方法を提供する。【解決手段】  歪み補正の準備処理として、観察者の位置などの観察条件、プロジェクタの位置・方向・画角・アスペクト比などの投影条件及びスクリーン形状を表す多角形メッシュの３種のパラメータのうち、投影条件及びスクリーン形状条件は記憶部に記録しておき、投影時の処理として、入力された原画像を、観察条件を位置検出装置から随時取込みながら、前記３種のパラメータを含む所定の計算式により演算して透視変換を行い、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いてグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像をフレームバッファに描画して、その補正画像を映像信号としてプロジェクタに出力するようにした。【選択図】      図７
2007028273.tif 000002
【特許請求の範囲】
【請求項１】
準備処理として、映像プロジェクタの位置、投影方向、画角などにより決定される投影錘台のパラメータ及びスクリーンの形状のパラメータを記憶部に記録して置き、
投影時の処理として、観察者の位置、視線方向、視野角などにより決定される視錘台のパラメータを随時取込み、その視錘台のパラメータ及び前記記憶部から読出した投影錘台のパラメータとスクリーンの形状のパラメータを含む所定の計算式により演算して入力された原画像の透視変換を行い、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いてグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像をフレームバッファに描画して、その補正画像を映像信号として前記映像プロジェクタに出力することを特徴とする映像歪み補正方法。
【請求項２】
準備処理として、映像プロジェクタの位置、投影方向、画角などにより決定される投影錘台のパラメータ及びスクリーンの形状のパラメータを記憶部に記録して置き、
投影時の処理として、観察者の位置、視線方向、視野角などにより決定される視錘台のパラメータを随時取込み、その視錘台のパラメータ及び前記記憶部から読出した投影錘台のパラメータとスクリーンの形状のパラメータを用いて、次の（ａ）及び（ｂ）の２段階の処理を行うことによりフレームバッファに補正済み画像を格納し、前記フレームバッファに格納された補正済み画像を、映像信号として映像プロジェクタに出力することを特徴とする映像歪み補正方法。
（ａ）入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける第１段階の処理。この場合、前記スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応は、前記視錘台のパラメータを含む次の行列式（数式１）により決定される。
【数１】
2007028273.tif 000007
（ｂ）原画像を貼り付けた前記スクリーン形状を前記フレームバッファに描画する第２段階の処理。この場合、前記スクリーン形状の各頂点座標と出力画像の画素座標の対応は、前記投影錘台のパラメータを含む次の行列式（数式２）により決定される。
【数２】
2007028273.tif 000008
【請求項３】
スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標との対応を、随時取り込まれる観察者の位置・視線方向・視野角などにより決定される視錘台を内容とするパラメータを含む次の行列式（数式１）により決定して、入力された原画像をテクスチャとして前記スクリーン形状に対して貼り付けるステップと、
【数３】
2007028273.tif 000009
前記スクリーン形状の各頂点座標と出力画像の画素座標との対応を、映像プロジェクタの位置・投影方向・画角などにより決定される投影錘台を内容とするパラメータを含む次の行列式（数式２）により決定して、原画像を貼り付けた前記スクリーン形状をフレームバッファに描画するステップと、
【数４】
2007028273.tif 000010
前記フレームバッファに格納された補正済み画像を、映像信号として映像プロジェクタに出力するステップと、
を含むことを特徴とする映像歪み補正方法用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像プロジェクタ（以下、単にプロジェクタという。）によりスクリーンに投影される映像の歪みを補正する方法、とくに、投影中に観察者の視錘台の位置が移動する場合の映像の歪みを補正するもの、及び同映像歪み補正方法用プログラムに関する。
【背景技術】
【０００２】
プロジェクタで映像をスクリーンに投影する場合、プロジェクタの位置・投射方向など（以下、投影条件という。）及び観察者の位置など（以下、観察条件という。）により、映像が歪んで見えることがある。このような映像の歪みを解消する方法の一つとして、スクリーンの距離、傾斜角及び方位角などのパラメータを算出し、入力する原画像を上記パラメータを用いて補正（透視変換）して補正画像を出力するものが、特許文献１に開示されているが、上記従来方法は、具体的な実装方法についての記述がなく、処理速度に関する考慮もなされていない。従って、動画像の再生などのように、補正処理に高速性を要求されるアプリケーションへの適用が可能であるか甚だ疑問である。
【特許文献１】特開２００１−６１１２１号公報
【０００３】
そこで、本出願人は、特許文献２に、高速な歪み補正処理を実現し、映像の自然な運動表現が可能な映像歪み補正方法の発明（旧発明１）を提案した。また、投影条件、観察条件及びスクリーン形状のいかんを問わず、スクリーンに投影される映像が観察者から見て歪まないよう補正することができ、しかも、投影条件又は観察条件が変更された場合でも、ハード的、プログラム的には何ら変更を要することなく、パラメータ変更のみで対応できる映像歪み補正方法の発明（旧発明２）を提案した。さらに、上記映像補正方法を実現するための、様々なユーザプログラムに組み込んで使用可能なプログラム（ライブラリ）の発明（旧発明３）を提案した。
【特許文献２】特開２００４−７２５５３号公報
【０００４】
上記旧発明１に係る映像歪み補正方法の基本的な考え方を、図１を参照しながら説明する。図１はスクリーンに投影される映像の歪みの原因と、その歪み補正の原理を説明する模式図である。図１において、Ａは観察者、Ｐはプロジェクタ、Ｓはスクリーンである。
【０００５】
観察者Ａの視錘台(Viewing frustum）とプロジェクタＰの投影錘台(Projection frustum)が一致する状態でスクリーンＳに投影した映像（ａ）は、観察者Ａの目に歪みのない状態で入るはずである。しかし、観察者Ａの視錘台とプロジェクタＰの投影錘台が不一致の状態でスクリーンＳに投影した映像（ｂ）は、観察者には歪んで見える。従って、プロジェクタＰからスクリーンＳに投影される映像の歪みをキャンセルするには、そのプロジェクタＰの位置から投影された映像（ｂ）が結果的に（ａ）と一致するように、逆シミュレーションにより予め映像（ｂ）を歪めておけば良い。
【０００６】
従って、１）スクリーンＳの形状を表す多角形メッシュに対して、観察者の視錘台を使用して原画像をテクスチャとして貼り付け(Projection mapping)、次に、２）原画像が貼りついた状態のスクリーンＳの多角形メッシュをプロジェクタＰの投影錘台を使用して描画し、３）結果として得られた画像をプロジェクタＰから投影すれば、観察者Ａは、歪みのない画像を見ることができる。
【０００７】
上記知見に基き、旧発明１の画像歪み補正方法は、歪み補正の準備処理として、観察者の位置などの観察条件、プロジェクタの位置・方向・画角・アスペクト比などの投影条件、及びスクリーン形状を表す多角形メッシュをパラメータとして記録しておき、投影時の処理として、入力された原画像を前記パラメータを含む所定の計算式により演算して透視変換を行い、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いてグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像をフレームバッファに描画して、その補正画像を映像信号としてプロジェクタに出力するようにしたものである。
【０００８】
従来、映像歪み補正に限らず、画像データに対する幾何学補正は、一旦メインメモリ上に画像データを展開し、ＣＰＵを使用して各画素を操作し、フレームバッファに処理済の画像データを転送するといった方法を取るのが一般的であった。この方法は下記のような理由により処理時間が長くなる可能性が高い。
一般的なＰＣ・ＷＳ環境では、ＣＰＵは全てのタスク間で共用されるので、一般的に、ＣＰＵは大量のベクトルデータに対する演算には不向きである。原画像がフレームバッファ上にある場合には、これを一旦メインメモリ上に展開しなくてはならない（余分なバス転送が発生する）。
【０００９】
これに対し、旧発明１では、補正前画像の画素Ｒを補正後画像の画素Ｒ’に変換する計算処理全般に、グラフィックス・アクセラレータのテクスチャマッピング機能を利用するので、上記問題を解決し、高速な補正処理を実現可能である。
【００１０】
旧発明２の画像歪み補正方法は、請求項１の発明におけると同一の準備処理に続き、投影時の処理として、上記パラメータを用いて、次の（ａ）及び（ｂ）の２段階の処理を行うことによりフレームバッファに補正済み画像を格納し、前記フレームバッファに格納された補正済み画像を、映像信号として映像プロジェクタに出力するようにしたものである。すなわち、
（ａ）入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける第１段階の処理。この場合、前記スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応は、前記視錘台のパラメータを含む次の行列式（数式１）により決定される。
【数５】
2007028273.tif 000003
（ｂ）原画像を貼り付けた前記スクリーン形状を前記フレームバッファに描画する第２段階の処理。この場合、前記スクリーン形状の各頂点座標と出力画像の画素座標の対応は、前記投影錘台のパラメータを含む次の行列式（数式２）により決定される。
【数６】
2007028273.tif 000004
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本出願人が先に提案した発明は、投影中に観察者の（視錘台の）位置が移動しないことを前提としたものであった。投影終了後は、移動後の観察者の位置に応じて新たにパラメータを設定し記憶させれば、新視点に対応した映像補正が実行される。
ところで、投影されている映像又はその一部に対して観察者が何らかの模擬行動、例えば、撮影、射撃、離着陸等の訓練を行う場合は、その観察者（訓練者）が投影中に観察位置（視点）を間欠的に又は連続的に移動することが少なくない。上述した先発明では、このような投影中の観察者の移動に迅速に対応することができなかった。
そこで、本発明は、投影中の観察者の移動に迅速に対応することができる映像歪み補正方法を提供することを第一の課題としている。
また、別の課題は、その映像歪み補正方法を実現するための、様々なユーザプログラムに組み込んで使用できるプログラム（ライブラリ）を提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、第一の課題を解決するため、映像歪み補正方法において、準備処理として、映像プロジェクタの位置、投影方向、画角などにより決定される投影錘台のパラメータ及びスクリーンの形状のパラメータを記憶部に記録して置き、投影時の処理として、観察者の位置、視線方向、視野角などにより決定される視錘台のパラメータを随時取込み、そのパラメータ及び前記記憶部から読出したパラメータを含む所定の計算式により演算して入力された原画像の透視変換を行い、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いてグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像をフレームバッファに描画して、その補正画像を映像信号として前記映像プロジェクタに出力することを特徴としている（請求項１）。
【００１３】
また、上記第一の課題は、準備処理として、映像プロジェクタの位置、投影方向、画角などにより決定される投影錘台のパラメータ及びスクリーンの形状のパラメータを記憶部に記録して置き、投影時の処理として、観察者の位置、視線方向、視野角などにより決定される視錘台のパラメータを随時取込み、そのパラメータ及び前記記憶部から読出したパラメータを用いて、次の（ａ）及び（ｂ）の２段階の処理を行うことによりフレームバッファに補正済み画像を格納し、前記フレームバッファに格納された補正済み画像を、映像信号として映像プロジェクタに出力することによっも、解決される（請求項２）。
（ａ）入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける第１段階の処理。この場合、前記スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応は、前記視錘台のパラメータを含む次の行列式（数式１）により決定される。
【数７】
2007028273.tif 000005
（ｂ）原画像を貼り付けた前記スクリーン形状を前記フレームバッファに描画する第２段階の処理。この場合、前記スクリーン形状の各頂点座標と出力画像の画素座標の対応は、前記投影錘台のパラメータを含む次の行列式（数式２）により決定される。
【数８】
2007028273.tif 000006
【００１４】
そして、前記別の課題を解決するため、本発明による映像歪み補正方法用プログラムは、スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標との対応を、前記数式１により決定して、入力された原画像をテクスチャとしてスクリーン形状に対して貼り付けるステップと、スクリーン形状の各頂点座標と、出力画像の画素座標との対応を、前記数式２により決定して、原画像を貼り付けたスクリーン形状をフレームバッファに描画するステップと、前記フレームバッファに格納された補正済み画像を映像信号としてプロジェクタに出力するステップとを含むことを特徴としている（請求項３）。
【００１５】
この画像歪み補正方法用ライブラリは、ＯｐｅｎＧＬ又はＤｉｒｅｃｔＸ対応のグラフィックス・アクセラレータを搭載したＰＣ又はＷＳにおいて、観察者の位置検出データに基づき随時入力する観察条件を取り込むとともに、設定ファイルに記録された投影条件、スクリーン形状などの各種パラメータを読み込み、歪み補正処理に必要な実行環境を整え、メインメモリ上に展開された原画像、又はフレームバッファ上の原画像をテクスチャメモリへ転送し、グラフィックス・アクセラレータのテクスチャ座標変換機構及び頂点座標変換機構を適宜設定してスクリーン形状を描画することにより、フレームバッファ上に補正済み画像を得るようにし、処理終了時にはシステムリソースを適宜解放するためのアプリケーション・プログラミング・インタフェース（ＡＰＩ）を有している。そのため、映像投影用ユーザプログラムにおいて画像歪み補正を必要とする場合は、そのユーザプログラムに組み込んで使用することが可能である。
【発明の効果】
【００１６】
上述のように、請求項１の発明によれば、原画像を随時入力される観察条件、及び記憶部から読み取った投影条件及スクリーン形状のパラメータを含む所定の計算式により演算して透視変換し、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いて、高速処理が可能なグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像を得るようにしたので、高速な歪み補正処理を実現し、映像の自然な運動表現が可能となった。
【００１７】
また、請求項２の発明によれば、投影時の処理として、スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応を随時入力される観察条件パラメータを含む数式１により決定して、入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける処理と、前記スクリーン形状の各頂点座標と出力画像の画素座標の対応を、投影条件パラメータを含む数式２により決定して、原画像を貼り付けた前記スクリーン形状を前記フレームバッファに描画する処理の２段階の処理を行うことにより、補正画像を生成し、その補正画像を映像信号として映像プロジェクタに出力するので、投影条件、観察条件及びスクリーン形状のいかんを問わず、スクリーンに投影される映像が観察者から見て歪まないよう補正することができ、しかも、観察条件が時々刻々変化する場合でも、ハード的、プログラム的には何ら変更を要することなく、位置検出装置などのパラメータ変更のみで対応できる。
【００１８】
さらに、請求項３の発明によれば、様々なユーザプログラムに組み込んで使用可能な映像補正用ライブラリを提供することができる。
【発明を実施するための最良の形態】
【００１９】
次に、本発明の実施の形態について、図２以下の図面を参照して説明する。
図２は、本発明による映像歪み補正方法を採用する映像投影装置の全体構成を示す斜視図、図３は観察台移動装置の一例を示す側面図、図４は位置検出装置の一例を示す回路図、図５は映像投影装置の映像歪み補正に係る主たる構成を概略的に示すブロック図、図６は透視変換における観察条件パラメータ（錘台）の説明図である。
【００２０】
本発明方法を用いる映像投影装置１０は、図５に示すように、各種の演算及び各部の制御を司るＣＰＵ１１と、データバス１２に接続されたグラフィックス・アクセラレータ１３と、データバス１２を介して入力するデータの格納、ＣＰＵ１１による展開のためのデータの授受、前記グラフィックス・アクセラレータ１３へのデータの入出力を行うメインメモリ１４とを有している。
【００２１】
映像投影装置１０は、その機能を実現する基本的構成要素として、グラフィックス・アクセラレータ１３を有する。また、外部のビデオ映像に対して歪み補正を行う場合には、ビデオキャプチャ１５が必要となる。さらに、プログラムデータやワーキングデータ等を格納しておくための外部記憶装置、処理された画像を印刷する場合のプリンタ等の他のＩ／Ｏ機器１６がインタフェース（図示省略）を介してデータバス１２に接続され、処理された画像を監視する場合は、モニターがグラフィックス・アクセラレータ１３に接続される。
【００２２】
そして、本発明の視点が随時又は連続的に移動する場合に対応する付加構成要素として、移動観察台１０１に関連して設けられた位置検出装置１７がインタフェース（図示省略）を介してデータバス１２に接続されている。
【００２３】
グラフィックス・アクセラレータ１３は、原画像を格納するのに充分な容量のテクスチャメモリ１３ａ及び１フレーム分の映像データを格納可能なフレームバッファ１３ｂを有するともに、描画パイプラインの一部として、３つの機能、すなわち、（ア）テクスチャマッピング機能、（イ）テクスチャ座標変換機能、（ウ）頂点座標変換機能を有する。
【００２４】
テクスチャマッピング機能は、三次元モデルであるスクリーン形状（ポリゴン座標系）にテクスチャメモリ１３ａに格納されている二次元画像であるテクスチャを貼り付ける機能である。テクスチャ座標変換機能は、設定された行列により、入力されたテクスチャ座標を変換してテクスチャメモリ１３ａ内の画素位置として出力する機能である。また、頂点座標変換機能は、設定された行列により、入力された各ポリゴンの頂点座標を変換してフレームバッファ１３ｂ内の画素位置として出力する機能である。
現在市販されているパーソナルコンピュータ（ＰＣ）用グラフィックス・アクセラレータ及びグラフィックスワークステーション（ＷＳ）の大多数は、上記３機能を提供している。
【００２５】
移動観察台１０１は、図２及び図３に示すように、コックピット、撮影台、射撃台などスクリーンに投影された映像に向けて何らかの模擬行動をする人が乗り込み、映像を観察するためのものであり、第１テーブル１０２に固定されている。図３において、移動観察台１０１の左側がスクリーンＳに対向する前方であり、右側が後方である。第１テーブル１０２は、第１サーボモータＭ１により駆動される昇降手段１０３により昇降される。１０４は、観察台１０１を負荷とする第１テーブル１０２の昇降時及び人員乗降の際のバランスを保つためのコイルスプリング又はガ゛ススプリングなどの弾性支持手段である。
【００２６】
昇降手段１０３及び弾性支持手段１０４の下端部は、第２テーブル１０５の上面に固定されている。第１サーボモータＭ１の回転により、観察台１０１は上下方向、すなわち、Ｚ軸方向に移動可能である。
【００２７】
第２テーブル１０５の下面には、一例として、４個の車輪１０６が矩形の各角部に相当する位置に設けられ、少なくとも後方の一対の車輪は第２サーボモータＭ２により正方向又は逆方向に回転されるようになっている。
【００２８】
前記４個の車輪１０６は、その下側に設置されていて、前後方向に長い第３テーブル１０７の上面に平行に敷設してある２本のレール１０８に沿って転動可能である。そして、第２サーボモータＭ２の回転により、観察台１０１は前後方向、すなわち、Ｙ軸方向に移動可能である。１０９は、前後両終端で第２テーブルを止めるストッパである。
【００２９】
第３テーブル１０７は、その前後方向の複数箇所において、映像投影室の床面１１０に突設された支持レール１１１の上面に回転自在に設けられたローラ１１２によって支持されている。そして、第３テーブル１０７の下面に突設されたガイドローラ１１３が各支持レール１１１の互いに反対側の面に当接されて、一定の位置で左右方向に移動自在に支持されている。その少なくとも１個のガイドローラが第３サーボモータＭ３により回転されて、第３テーブル１０７は、スクリーンＳ方向に対して直角方向、すなわち、Ｘ軸方向に移動されるようになっている。
【００３０】
上記の構成により、各サーボモータＭ１，Ｍ２，Ｍ３を制御された回転角度まで回転させることにより、観察台１０１は、Ｘ，Ｙ，Ｚの３座標値により決められた位置に移動可能である。
【００３１】
通常は、観察台１０１がスクリーンＳの中心を通る水平直線上（支持レール１１１の長手方向中央）、レール１０８の前後方向の中央、第１テーブル１０２の最下位に存在するときが、Ｘ，Ｙ，Ｚの座標値０（Ｘ０，Ｙ０，Ｚ０）、すなわち、原点とされ、その原点より右側が＋Ｘ，左側が−Ｘ，原点から前方が＋Ｙ，後方が−Ｙ，原点から上方が＋Ｚ，下方が−Ｚなどに決定することができる。
【００３２】
そして、観察台１０１の時々刻々変わりうる現在位置を座標データで表すために位置検出装置１１４が備えられている。位置検出装置１１４は、各モータＭ１，Ｍ２，Ｍ３により回転されるロータリーエンコーダＥ１，Ｅ２，Ｅ３と、各ロータリーエンコーダから出力されるパルスを受信して計数するカウンタＣ１，Ｃ２，Ｃ３と、各カウント値を座標値に変換するコンバータＣＮＶとからなっている。このコンバータＣＮＶの出力値がデータバス１２を介して記憶部（ＲＡＭ）に随時取り込まれるようになっている。
【００３３】
なお、第３テーブル１０７の支持機構及び移動機構、並びに位置検出装置は、上述されたものに限られない。とくに、位置検出装置は、レーザー光や赤外線等を用いる光学的位置検出方法、レールに沿って設けた磁気的検出方法などの既知の方法を用いることができる。
【００３４】
本発明方法においては、画像歪み補正を行うために、準備処理として、３種のパラメータである観察条件パラメータ（視錘台）、投影条件パラメータ（投影錘台）、及びスクリーンの形状パラメータのうち、変動のない投影条件パラメータとスクリーン形状パラメータは、外部記憶装置に記録されている。しかし、観察条件パラメータについては、投影処理時に、上記位置検出装置から随時入力されて記憶部（ＲＡＭ）に取り込まれるデータを用いるようになっている。
【００３５】
次に、このパラメータの取込み処理について詳細に説明する。
錘台は透視変換を表現するため一般的に用いられる概念であり、図６に示すように、頂点（Apex）３０を基準としたｌ（left），ｒ（right ）；ｂ（bottom），ｔ（top ）；ｎ（near），ｆ（far ）の６つの値により決定されるが、上記位置検出送致から取り込まれる座標値−Ｘ，＋Ｘ；−Ｙ，＋Ｙ；−Ｚ，＋Ｚがそれぞれｌ（left），ｒ（right ）；ｎ（near），ｆ（far ）；ｂ（bottom），ｔ（top ）に相当する。
【００３６】
準備処理における視錘台・投影錘台の指定は、下記のいずれかの方法で行う。
１）ｌ，ｒ，ｂ，ｔ，ｎ，ｆを直接指定する。
２）視野角／画角、アスペクト比、ｎ，ｆにより間接的にｌ，ｒ，ｂ，ｔを指定する。  ただし、左右上下に非対称な錘台を指定する場合は、１）の方法を用いる必要がある。  スクリーン形状は、何らかの方法、例えば、スクリーン設計時のＣＡＤデータを使用したり、三次元形状スキャナを使用したりなどにより、多角形メッシュとして表現され得るものである。準備処理では、この多角形メッシュを構成する頂点配列をパラメータとして指定する。
準備処理において指定する全てのパラメータは、原点の位置、座標系（ＸＹＺ各軸の方向と、回転の正負方向）及び単位系（メートル、ラジアンなど）の情報を共有する必要がある。
【００３７】
続いて、図６及び図７に基づいて投影時の処理の詳細について説明する。図６は投影時処理のフローチャート、図７はグラフィックス・アクセラレータによるテクスチャ座標変換及び頂点座標変換を説明する概念図である。
投影時の処理は、上述の記録されたパラメータを用いて、次の処理を行うことにより、フレームバッファに補正済み画像を格納する。そして、そのフレームバッファに格納された補正済み画像を、映像信号としてプロジェクタに出力するようになっているが、投影時の処理においては、まず、
１）Ｓ４１において、入力する原画像をテクスチャメモリ１３ａに転送して格納する。  原画像をテクスチャメモリに格納するには、下記の幾通りかの方法が採用可能である。すなわち、ビデオキャプチャ１４により入力した画像をテクスチャメモリ１３ａに転送する方法。フレームバッファ１３ｂ上の画像をテクスチャメモリ１３ａに複写する方法。及び、テクスチャメモリ１３ａに対して直接描画する方法である。
２）次に、Ｓ４２において、随時取り込まれる観察条件に従って、スクリーン形状の各頂点にテクスチャ座標を設定する。実際の処理では、図５に示すように、数式１の行列Ｍｏを上述されたグラフィックス・アクセラレータ１３のテクスチャ座標変換機構１３１に設定する。
３）また、Ｓ４３において、投影条件に従って、スクリーン形状の各頂点を座標変換する。実際の処理では、図８に示すように、数式２の行列Ｍｐをグラフィックス・アクセラレータ１３の頂点座標変換機構１３２に設定する。
４）そして、Ｓ４４において、頂点座標変換機構１３２及びテクスチャ座標変換機構１３１にスクリーン形状の頂点座標Ｖを入力することにより、スクリーン形状を描画する。  結果として、図８に示すように、テクスチャとして参照される原画像の画素座標Ｒから出力画像の画素座標Ｒ’への転送（Ｒ→Ｒ’）が行われる。これをスクリーン形状の全頂点に対して連続的に行って、スクリーン形状を描画することにより、フレームバッファ１３ｂに補正済み画像を得る。この補正済み画像が、映像信号として図２のプロジェクタなどに出力される。
なお、フレームバッファ１３ｂの各Ｒ’の間の画素は、グラフィックス・アクセラレータにより適宜補間された値が設定される。
【００３８】
上述した映像歪み補正方法を実行するプログラムは、映像投影アプリケーションプログラムの一部に組み込んで使用される単体プログラムとして、すなわち、歪み補正ソフトウェアライブラリ（以下、補正ライブラリ）として、次の内容を有して提供可能である。
補正ライブラリは、下記の特徴を有している。
補正ライブラリは、ＡＮＳＩ（American National Standard Institute）Ｃ／Ｃ＋＋規格に準拠して記述されており、様々なプラットフォームに容易に移植可能である。また、補正ライブラリは、グラフィックス・アクセラレータへのインタフェースとして、広く一般的に使用されているプラットフォームであるＯｐｅｎＧＬ又はＤｉｒｅｃｔＸのいずれかを選択的に使用可能になっており、両者のいずれかをサポートするグラフィックス・アクセラレータを使用可能である。
【００３９】
補正ライブラリは、アプリケーション・プログラミング・インタフェース（ＡＰＩ）として、下記の関数群をエクスポートする。
１）初期化関数
これは、準備処理において、ハードディスクなどで構成されるファイルシステム上のファイル（以下、設定ファイルという）に記録された、観察条件、投影条件、スクリーン形状などの各種パラメータを読み込み、歪み補正処理に必要な実行環境を整えるものである。
２）テクスチャメモリへの画像転送関数
これは、メインメモリ１４上に展開された原画像又はフレームバッファ１３ｂ上の原画像をテクスチャメモリ１３ａへ転送するものである。
３）歪み補正実行関数
これは、グラフィックス・アクセラレータ１３の前記テクスチャ座標変換機構４１及び頂点座標変換機構４２を適宜設定し、スクリーン形状を描画することにより、フレームバッファ１３ｂ上に補正済み画像を得るものである。
４）終了関数
これは、前記初期化関数で確保した各種システムリソース（メインメモリ領域、テクスチャメモリ領域など）を解放して、上記映像歪み補正処理を終了するためのものである。
【００４０】
上記のような補正ライブラリは、前記ＡＰＩを通じて、映像歪み補正処理を必要とする様々なユーザプログラムに組み込んで利用することが可能である。例として、下記の３種のユーザプログラムに組み込んで使用する場合を、項を分けて説明する。
【００４１】
１）静止画像表示プログラムの場合
このプログラムは、ハードディスクなどに記録された画像ファイルを読み込み、これを描画（すなわち、フレームバッファに転送）し、映像出力する類のプログラムである。この種のプログラムに映像歪み補正機能を組み込むには、補正ライブラリを図９に示すように使用する。
このプログラムは、Ｓ６１において、補正ライブラリの初期化関数を呼び出すことにより、設定ファイルを読み込み、数式１及び数式２の行列Ｍｏ、Ｍｐを作成してメインメモリに記憶し、原画像を格納する為に必要なテクスチャメモリ領域を確保する。
Ｓ６２において、任意の方法により対象となる画像ファイルを特定して、画像データをメインメモリに展開する。
Ｓ６３において、補正ライブラリの画像転送関数を呼び出すことにより、メインメモリに展開された画像データをテクスチャメモリに転送する。
Ｓ６４において、補正ライブラリの歪み補正実行関数を呼び出すことにより、フレームバッファに補正済み画像を得る。
Ｓ６５おいてプログラム終了時には、Ｓ６６おいて、補正ライブラリの終了関数を呼び出すことにより、初期化関数で確保した各種システムリソースを解放して、処理を終了する。
【００４２】
２）動画像表示プログラムの場合
このプログラムは、ハードディスクなどに記録された動画ファイルから１フレームずつ連続して画像データを読み込み・描画し、動画像として映像出力する類のプログラムである。この種のプログラムに映像歪み補正機能を組み込むには、補正ライブラリを図１０のように使用する。すなわち、
このプログラムは、Ｓ７１において、補正ライブラリの初期化関数を呼び出すことにより、設定ファイルを読み込み、数式１・２の行列Ｍｏ、Ｍｐを作成してメインメモリに記憶し、原画像を格納する為に必要なテクスチャメモリ領域を確保する。
Ｓ７２において、任意の方法により対象となる動画ファイルを特定して、データストリームへのハンドルを得る（すなわち、オープンする）。
Ｓ７３において、データストリームから１フレーム分の画像データを読み込み、メインメモリに展開する。
Ｓ７４において、補正ライブラリの画像転送関数を呼び出すことにより、メインメモリに展開された画像データをテクスチャメモリに転送する。
Ｓ７５において、補正ライブラリの歪み補正実行関数を呼び出すことにより、フレームバッファに補正済み画像を得る。
Ｓ７６において、最終フレームの処理を終えたら、Ｓ７７において、動画ファイルのデータストリームを解放する（すなわち、クローズする）。
Ｓ７８において、プログラム終了時には、Ｓ７９において、補正ライブラリの終了関数を呼び出すことにより、初期化関数で確保した各種システムリソースを解放して、処理を終了する。
【００４３】
３）リアルタイムＣＧプログラムの場合
このプログラムは、ユーザの入力などのイベントにより動的に変化するシーンを１フレームずつ描画していく類のプログラムである。この種のプログラムに映像歪み補正機能を組み込むには、補正ライブラリを図１１のように使用する。
このプログラムは、Ｓ８１において、補正ライブラリの初期化関数を呼び出すことにより、設定ファイルを読み込み、数式１・２の行列Ｍｏ、Ｍｐを作成してメインメモリに記憶し、原画像を格納する為に必要なテクスチャメモリ領域を確保する。
【００４４】
Ｓ８２において、キーボード、マウス入力などのイベントに応じて、表示すべきシーンの内容を適宜変化させる。
Ｓ８４において、シーンを描画し、フレームバッファに１フレーム分の画像を得る。
Ｓ８３において、プログラム未終了時には、Ｓ８４において、補正ライブラリの画像転送関数を呼び出すことにより、フレームバッファ上の画像データをテクスチャメモリに複写する。（ただし、グラフィックス・アクセラレータによっては、テクスチャメモリに対して直接描画することができる場合がある。この場合は、Ｓ８５の処理は不要となる。）  Ｓ８６において、補正ライブラリの歪み補正実行関数を呼び出すことにより、フレームバッファに補正済み画像を得る。
Ｓ８３においてプログラム終了時には、Ｓ８７において、補正ライブラリの終了関数を呼び出すことにより、初期化関数で確保した各種システムリソースを解放して、処理を終了する。
【００４５】
上記実施の形態において、図７のＳ４１，Ｓ４２，Ｓ４３，Ｓ４４はそれぞれ、入力する原画像をテクスチャメモリに転送する手段、観察条件に従ってスクリーン形状の各頂点にテクスチャ座標を設定する手段、投影条件に従ってスクリーン形状の各頂点を座標変換する手段、座標変換をされたスクリーン形状を描画する手段を構成する。また、図８の１３１及び１３２は、それぞれＳ４２による設定に基づきテクスチャ座標を変換するテクスチャ座標変換手段、Ｓ４３による設定に基づきスクリーン形状の各頂点の座標を変換する頂点座標変換手段を構成している。
【図面の簡単な説明】
【００４６】
【図１】スクリーンに投影される映像の歪みの原因と、その歪み補正の原理を説明する模式図。
【図２】本発明による映像歪み補正方法を採用する映像投影装置の全体構成を示す斜視図。
【図３】観察台移動装置の一例を示す側面図。
【図４】位置検出装置の一例を示す回路図。
【図５】映像投影装置の映像歪み補正に係る主たる構成を概略的に示すブロック図。
【図６】透視変換における観察条件パラメータ（錘台）の説明図。
【図７】投影時処理のフローチャート。
【図８】グラフィックス・アクセラレータによるテクスチャ座標変換及び頂点座標変換を説明する概念図。
【図９】本発明のライブラリを静止画像表示プログラムに組み込んで使用する場合のフローチャート。
【図１０】本発明のライブラリを動画像表示プログラムに組み込んで使用する場合のフローチャート。
【図１１】本発明のライブラリをリアルタイムＣＧプログラムに組み込んで使用する場合のフローチャート。
【図１】
2007028273.tif 000011
【図２】
2007028273.tif 000012
【図３】
2007028273.tif 000013
【図４】
2007028273.tif 000014
【図５】
2007028273.tif 000015
【図６】
2007028273.tif 000016
【図７】
2007028273.tif 000017
【図８】
2007028273.tif 000018
【図９】
2007028273.tif 000019
【図１０】
2007028273.tif 000020
【図１１】
2007028273.tif 000021