JP3862759B2 - 可変エッジ特性を有する構造化オブジェクトを用いて画像を定義し製作するためのコンピュータ・システムおよびプロセス - Google Patents
可変エッジ特性を有する構造化オブジェクトを用いて画像を定義し製作するためのコンピュータ・システムおよびプロセス Download PDFInfo
- Publication number
- JP3862759B2 JP3862759B2 JP53267397A JP53267397A JP3862759B2 JP 3862759 B2 JP3862759 B2 JP 3862759B2 JP 53267397 A JP53267397 A JP 53267397A JP 53267397 A JP53267397 A JP 53267397A JP 3862759 B2 JP3862759 B2 JP 3862759B2
- Authority
- JP
- Japan
- Prior art keywords
- point
- boundary
- distance
- image
- anchor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Description
発明の分野
本発明は、コンピュータを用いて二次元空間または三次元空間における構造化オブジェクトを定義するというような、座標空間において対象領域を定義し操作するためのコンピュータ・システムおよびコンピュータ実装プロセスに関するものである。特に、本発明は、画像を合成する際に使用する制御画像の発生に有用である。
発明の背景
コンピュータ・システムには、通常2つのカテゴリの一方に該当する静止画像データを表現する多くの方法がある。ビット・マップと呼ばれる画像表現の第1カテゴリでは、画像の個々のピクチャ・エレメント即ち画素の各値を格納する。画像表現は、圧縮または伸長をしてもよい。ビット・マップ状画像表現は、通常、表示のためにはコンピュータによる計算を多く必要としないが、大量のメモリ空間を占有する場合がある。また、このような画像表現は、通常、柔軟性がなく、かなりの視覚的なアーチファクトを発生せずに、スケールまたはその他の変更を行うことは困難である。画像表現の第2カテゴリは、構造化オブジェクトである。構造化オブジェクトは、画像内に含まれるオブジェクトの構造にしたがって、典型的に数式で画像を定義する。例えば、立方体の画像は、ある基準点に関する、当該立方体の頂点の位置で表すことができる。このような構造化オブジェクトは、三次元モデリング・システム、デスクトップ・パブリッシング・システム等内において日常的に見られるものである。
画像表現が重要な分野の1つに、画像合成(image compositing)がある。アルファ合成(alpha compositing)と呼ばれる、画像合成の一形式は、2つの画像を組み合わせて第3の画像を発生することを伴い、第3の画像における組み合わせ画像の各々の寄与の程度を、制御画像によって定義する。アルファ合成システムの一例が、ポール・ケラー(Pall Kellar)の米国特許第4,602,286号に見られる。
ケラー特許に記載されているように、制御画像は、ビット・マップ・ピクチャとして定義し、各画素がある値を有する。各画素の値は、ゼロ(0)ないし1の目盛り上におけるアルファ値(α)を表す。制御画像内の各画素(x,y)に対するアルファ値(αx,y)を、ここでは制御値と呼ぶが、これを標準的なマッピング関数において用いて、入力画像を組み合わせる。例えば、第1の入力画像(A)における各画像Ax,yおよび、第2の入力画像(B)における画像Bx,yについて、出力画像Cにおける画素Cx,yを、次の式で与える。尚、AおよびBは、x×y個の画素から成る画像である。
Cx,y=αx,yAx,y+(1−αx,y)Bx,y (1)
このような合成は、ビデオ・プログラムにおいて、ワイプ、フェード等の特殊効果および遷移として現れる。ビット・マップ状画像を制御画像として用いる場合の難問の1つに、アルファ合成が、動画ビデオ・シーケンス(motion video sequence)におけるカット間の遷移におけるような、時間的な補間を伴う場合が多いことがあげられる。即ち、1対のフレームを組み合わせて動画ビデオ・シーケンスにおける1フレームを生成するために用いる制御画像が、当該シーケンス内の他のフレームを生成するために用いる制御画像とは異なる場合が多い。加えて、低解像度で作成したビット・マップ状制御画像を、後により高い解像度に調整する場合、低解像度の画像において見られる電子化が、解像度を高めた画像においてアーチファクトが発生する原因となる。
制御画像を定義する別の方法に、構造化オブジェクトを用いることによるものがある。構造化オブジェクトは、画像内のオブジェクトの構造によって、典型的に数式で、制御画像を定義する。この定義は、曲線を表す等式のような数式、または点の座標や方向および大きさを表すベクトルのような幾何学とすることができる。この構造化オブジェクト定義を解釈することにより、最終画像において発生すべき各画素に対し制御値を得る。これらを一緒に取り入れると、制御値は、ビット・マップ状画像を用いて得られる制御値の集合と同様となる。
構造化定義の利点の1つに、これらは、ビット・マップ状画像のような静的定義よりも容易に、スケール、動画化(aminate)、または時間的な補間が可能なことがあげられる。構造化オブジェクトを用いることの別の利点は、画像のある部分がオブジェクトの境界の内側または外側のどちらにあるのかについての計算上の判定が比較的容易なことである。構造化オブジェクト定義は、また、スケーリングや回転のような単純な操作がしやすいので、効果によっては、それを作成するプロセスを簡単にする。しかしながら、今日まで構造化オブジェクトは、通常、単純なオブジェクトに対する単純な処理に用いられているに過ぎない。
画像合成では、通常、ビット・マップ状画像および構造化オブジェクト定義双方を用いて、制御画像を発生する。制御画像は、典型的に、0または1のいずれかの制御値を有し、画像内の画素間の変化がエッジを定義する。通例では、エッジ即ち境界を処理してブレンド特性(blending characteristic)を与え、得られる画像内におけるソース・コンテンツ(source content)間の変化が1つの画素上で分離して発生しないようにする。むしろ、制御画像は、全てのエッジが漸進的な変化、典型的には、単純なグレースケール傾斜を有するように処理する。ケラーの特許では、ペンおよびタブレット入力デバイスからの入力を処理する際のアーチファクトのため、このグレースケール傾斜を与える。構造化オブジェクトを用いる場合、殆どの従来技術のシステムは、走査線内のあるエッジの前後の値を単純に調節するだけである。
本発明の一般的な目的は、複雑度の高い画像を表すことができ、しかも容易に操作可能な、コンピュータ用の画像表現を与えることである。
発明の概要
構造化オブジェクトを用いた画像表現は、コンピュータによって容易に操作することができる。この画像表現は、より複雑な画像を表現することができ、構造化オブジェクトは境界を定義し、ある領域内のこの境界に近い画像値は、エッジ特性関数(edge characteristic function)と呼ぶ関数によって定義する。エッジ特性関数を適用するには、当該領域内の各点について、所与の点に最も近い境界上の点(ここではアンカーと呼ぶ)およびその点までの距離を決定する。
境界に沿った異なる点に、異なるエッジ特性関数を割り当てることができる。一実施形態では、エッジ特性関数は、境界上で選択した特性点に対して割り当てる。これらのエッジ特性関数を補間し、境界に沿った残りの点に対するエッジ特性関数を与えることができる。境界上にない各点は、それに最も近い当該境界上の点のエッジ特性関数にしたがって、および当該点までの距離にしたがって処理を行う。エッジ特性関数は、他のファクタの関数としてもよい。
この画像表現は、多くの利点を与え、その中には、一層複雑な画像を発生し、次にそれを一層容易に操作するか、あるいは異なる画像フォーマットから変換することができる機能を含む。操作形態の1つは、時間に対する補間である。画像合成では、この画像表現は、いくつもの領域にわたる種々の効果を、制御しつつ容易に減衰することも可能とする。この方法は、画像合成、および多数のパラメータにわたって様々に変化するデータをモデリングするためには、特に有用である。
したがって、本発明の一形態は、画像発生方法である。この方法は、画像内の曲線を複数の点として定義することを含む。曲線内の少なくとも2点に対して、ある関数を割り当てる。これらの点の一方の関数は、これらの点の他方の関数とは異なる。画像内の各ピクチャ・エレメント毎に、曲線上のアンカーおよび当該アンカーまでの符号付き距離を決定する。各ピクチャ・エレメント毎に、点のアンカーに割り当てる関数を選択する。画像内の各ピクチャ・エレメント毎に、選択した関数を当該ピクチャ・エレメントからアンカーまでの符号付き距離に適用し、当該ピクチャ・エレメントに対する画像データを決定する。符号付き距離とは、絶対値ではなく、負または正の距離寸法であり、例えば、方向を示す場合に有用である。
この方法の一実施形態では、点に関数を割り当てるステップが、境界上の複数の点を選択することを含む。選択した各点に、エッジ特性を割り当てる。選択した点の各々のエッジ特性を補間し、境界上の他の点のエッジ特性を得る。
この方法の別の実施形態では、関数を適用するステップが、各点毎に、アンカーおよび距離に応じてファクタαを計算することを含む。当該点に対する画像データは、αA+(1−α)Bであり、ここで、Aは第1画像内の対応する点からの画像データであり、Bは第2画像の対応する点からの画像データである。
本発明の別の形態は、コンピュータが読み取り可能な形態で、座標空間内の対象領域の表現を格納したコンピュータ読取可能媒体である。この表現は、当該領域内の複数の点で定義した境界の指示と、境界上の少なくとも2点に対するエッジ特性の指示とを含み、第1点のエッジ特性および第2点のエッジ特性は異なる。一実施形態では、この表現は、座標空間内の各点毎に、当該点に最も近い境界上の点の指示と、境界上の当該点までの符号付き距離とを含む。
本発明の別の形態は、コンピュータが読み取り可能な形態で、座標空間内の対象領域の表現を格納したコンピュータ読取可能媒体である。この表現は、領域内の複数の点で定義した境界の指示と、座標空間内の各点毎に、当該点に最も近い境界上の点の指示と、境界上の当該点までの符号付き距離とを含む。
本発明の別の形態は、座標空間内の対象領域の表現を発生する、コンピュータ実装プロセスである。このプロセスは、ユーザ入力に応答して境界を定義することを含む。また、境界上の少なくとも2点についてもユーザ入力を受け取り、このユーザ入力に応じて、エッジ特性を割り当てる。第1点のエッジ特性と第2点のエッジ特性は異なる。
本発明の別の形態は、有限座標空間内の対象領域の表現を発生するコンピュータ・システムである。このコンピュータ・システムは、境界を定義する機構を有する。境界上の少なくとも2点についてエッジ特性を割り当てるために別の機構を用い、第1点のエッジ特性は、第2点のエッジ特性とは異なる。
本発明の別の形態は、座標空間内の対象領域の定義を操作する、コンピュータ実装プロセスであり、コンピュータ読取可能信号を用いて、この定義をコンピュータ読取可能媒体上に格納し、該定義は、当該領域内の複数の点で規定した境界の指示と、座標空間内の各点毎に、当該点に最も近い境界上の点の指示と、境界上の当該点までの符号付き距離とを含む。このプロセスは、アンカーおよび当該アンカーまでの符号付き距離を有する座標空間内の各点毎に、アンカーに割り当てたエッジ特性関数を、格納してある符号付き距離に適用して、値を得ることを含む。得られた値に応じて、座標空間内の点を表示する。
【図面の簡単な説明】
図面において、
図1Aおよび図1Bは、従来技術のシステムにおけるα合成に用いるための制御画像のビット・マップ状画像定義、および関連するブレンド特性を示す。
図2Aおよび図2Bは、従来技術の方法論による構造化オブジェクトを用いて定義した制御画像、および関連するブレンド特性を示す。
図3Aないし図3Eは、本発明による構造化オブジェクト表現を用いて定義した制御画像、および関連するエッジ特性関数を示す。
図4は、本発明による構造化オブジェクト定義の表現の概略図である。
図5は、本発明を使用可能なコンピュータ・システムのブロック図である。
図6は、図3に示したメモリ・システムの更に詳細な構成図である。
図7は、本発明による構造化オブジェクト定義を処理するシステムのブロック図である。
図8Aおよび図8Bは、エッジ特性定義の例を表す擬似コードである。
図9Aは、図7におけるアンカー/距離計算部が実行する、アンカー値および距離値を決定するプロセスを記述するフローチャートである。
図9Bは、座標空間におけるある領域を輪郭描写する構造化オブジェクトの概略図である。
図9Cおよび図9Dは、アンカー/距離の寸法を決定する別のプロセスを記述するフローチャートである。
図9Eは、いかにして半径方向距離および直交距離を定義するかを示す図である。
図10は、図7に示す構造化オブジェクト定義、可変エッジ特性ならびにアンカー値および距離値を用いた、画像処理を記述するフローチャートである。
図11は、図7に示す画像処理モジュールによって発生した出力例の図である。
図12は、本発明を用いて発生した制御画像を使用可能な、α合成システムのブロック図である。
詳細な説明
本発明は、添付図面に関連付けて以下の詳細な説明を読むことによって、一層深い理解が得られよう。図面では、同様の参照番号は、同様の構造を示すものとする。
本発明は、座標空間内の対象領域の輪郭描写(delineation)に関するものである。対象領域とは、空間内のより大きな領域のサブセットのことである。対象領域の輪郭描写の一種に、画像のサブセットを選択し、これに画像の残り部分とは異なる処置を施すというものがある。処置とは、複数の画像処理機能のいずれかを意味し、色つけ、合成、遷移および特殊効果を含むが、これらに限定される訳ではない。対象領域の輪郭描写の別の種類に、画像処理には無関係に、何らかの人口学的特性(demographic characteristic)を適用する地理的領域の輪郭描写がある。三次元空間における一例として、彗星のような、本体と彗星の尾を含む、移動中の火の玉のアニメーションの記述をあげておく。
これより図1Aを参照すると、従来技術の画像処理システムにおいて、ビット・マップ状画像を用いてある領域が輪郭描写してある。これは、ユーザがペンおよびタブレット入力デバイス(図示せず)を用いて発生したものである。この入力デバイスは、ユーザが、図1Aの画像22内において、20に示すような線を定義することを可能にする。次に図1Bを参照すると、ペンの先端の傾斜形状によって、24に示すような数学的特性を有するエッジを与える。目で見たときに、線20によって定義したエッジは、短いグレースケールの傾斜を有するように現れる。24で示すグラフは、境界からの距離に対するグレースケール値を示す。
次に図2Aを参照すると、構造化オブジェクトを用いた従来のシステムにおいて、画像26は、Aで定義した円のようなオブジェクトを含む。円は、その半径、例えば、2、およびその中心、例えば、画像の座標空間内の座標(0,0)によって定義することができる。次の図2Bを参照すると、28に示すような関数が、構造化オブジェクトAによって定義した境界を横切るx方向のグレースケール傾斜を定義し、所望のエッジ・スムージング(edge smoothing)を与えることができる。処理するとき、画像26内の点には、構造化オブジェクトAによって定義した境界からそれがどれだけ離れているかに応じたグレースケール値を割り当てることができる。実際には、構造化オブジェクトによって定義した境界上にある点をが与えられた場合、この関数28を用いて、境界上のこの点に近い他の点を識別し、これら識別した点にグレースケール値を割り当てる。
構造化オブジェクト定義の利点の1つに、構造化オブジェクトの時間に対する補間、例えば、その形状の変化を容易に実行できることがあげられる。例えば、拡大した半径、例えば、3、および同じ中心座標を有する拡大した円を、画像26内のBに示す。この円のサイズは、半径値を増分または減分することによって、容易に変更可能であることは、明らかに理解できよう。その位置は、中心座標を移動させることによって、容易に変化させることができる。
画像処理の用途からのこれらの解決策(solution)は、構造化オブジェクトによって定義した境界におけるブレンド特性の決定において、間接的にのみ、「近接度(proximity)」という概念(notion)を必要とする。ある点の境界に対する近接度の直接的な尺度およびその使用によって、更に複雑なオブジェクトの表現も可能になることがわかっている。
近接度とは、構造化オブジェクトによって定義した領域のエッジから、ある点がどれだけ離れているかについての符号付き寸法である。例えば、点が当該領域の内側にある場合、寸法は正とすることができ、点が領域の外側にある場合負とすることができる。黒色(白色)をエッジ付近にない外側(内側)の点全てに割り当て、グレースケールの傾斜をエッジ付近の点に割り当てた場合、領域は、黒い背景上の白い区域として表示され、領域のエッジ上に、白から黒への傾斜した遷移が生じる。グレースケール傾斜の形状がエッジ付近のシェードを制御し、これを当該領域のエッジ特性と呼ぶ。グレースケール傾斜が異なれば、異なるエッジ特性が得られ、したがって、その領域の異なる輪郭描写が得られる。図1Aおよび図1Bに示す画像表現では、エッジ特性を明示的に定義していない。エッジ付近のブレンド特性は、実際には、入力デバイスの所望の副作用である。図2Aおよび図2Bに示す画像表現では、1つのブレンド特性のみを領域毎に割り当てている。加えて、このブレンド特性は、領域の境界上のある点に関して処理して、当該境界点に近接した座標空間内の点を識別する。対照的に、本発明では、近接度は、領域内の点に対して定義して、その所与の点に最も近い境界上の点を識別するようにしている。
次に図3Aないし図3Eを参照すると、本発明は、構造化オブジェクトによって定義した曲線に沿った異なる点において、異なるエッジ特性関数を可能にする。例えば、円領域Cは、構造化オブジェクト定義によって輪郭描写することができる。円のエッジ周囲に割り当てた可変エッジ特性関数は、各方向毎に異なる外観のグレースケール傾斜を有する円形ディスクを表す。例えば、図3Aにおける円のエッジ上の点Eには、図3Bの32に示すような、第1のエッジ特性関数f1(E)を割り当てることができる。図3Aにおける円のエッジの対向側にある第2の点Fには、図3Cの34に示すような異なるエッジ特性関数f2(F)を割り当てることができる。このエッジ特性の組み合わせにより、卵黄(egg yolk)を有する卵のように見える形状が得られる。
このような画像表現は、時間に対して容易に補間することができる。例えば、半径を変化させ、図3AのDで示すような曲線を生成することができる。あるいは、曲線上の点EおよびFに割り当てたエッジ特性を、例えば、36および38に示すような新しい関数f1(E)およびf2(F)に変更することも可能である。
次に図4を参照し、二次元画像のような座標空間内の対象領域の輪郭描写の表現を示す。このような表現は、全体として、40に示すような境界を与える構造化オブジェクトの定義の指示を含む。図示の例では、円の境界は、中心点および半径によって定義する。また、この画像表現は、42に示すような1つまたは2つ以上のエッジ特性関数の指示を含み、これらを、それぞれ、境界上の各特性点に割り当てる。
この対象領域の輪郭描写の表現は、例えば、図5に示すようなコンピュータ・システム50で用いる。コンピュータ・システム50は、相互接続機構56を介してメモリ54に接続したプロセッサ52を含む。入力デバイス58および表示装置60も、相互接続機構56を介して、プロセッサおよびメモリに接続してある。コンピュータは、「C」のような高級プログラミング言語、またはその他のプログラミング言語を用いてプログラムして、アプリケーション・プログラムを作成することができる。このアプリケーション・プログラムは、高級プログラミング言語によるプログラムを収容するコンピュータ・ファイルをコンパイルすることによって作成する機械実行可能コードである。オペレーティング・システム(図示せず)は、このアプリケーション・プログラムの実行を制御し、そしてスケジューリング、デバッギング、入出力、メモリ管理、データ管理、およびコンピュータに関連するサービスを提供する。
コンピュータ・システム50は、多くの商業的に入力可能な汎用計算機システムの任意のもの、例えば、カリフォルニア州マウンテン・ビュー(Mountain View)のシリコン・グラフィクス社(Silicon Graphics, Inc.)のIndigoコンピュータのような、アップル・コンピュータから入手可能なIRIXオペレーティング・システム類似のコンピュータ、あるいはその他の特注の画像処理用ワークステーションおよび他のプログラミング・システムでよい。このようなコンピュータ・システムは、例えば、インテルのペンティアム(Pentium)またはシリーズx86プロセッサ、あるいはモトローラのシリーズ680x0プロセッサのような、商業的に入手可能なプロセッサを採用している。その他の適切にプログラムされたマイクロプロセッサを用いることもできる。相互接続機構56は、単純なバスとしたり、あるいはより複雑なスイッチング構成を含み、コンピュータ・システムの種々のエレメントと並列に通信できるようにしたりできる。また、本発明は単一プロセッサ・システムに限定されないことは理解されよう。並列処理コンピュータを含むマルチプロセッサ・システムも、本発明では使用可能である。
本発明と共に使用可能な入力デバイスに例には、マウス、トラック・ボール、ペンおよびタブレット、またはその他のポインティング・デバイス、更にはキーボード、キーパッド、スキャナおよび汎用コンピュータのために一般的に用いられている他の入力デバイスが含まれる。表示装置60は、陰極線管(CRT)ディスプレイ、多数の種類がある液晶ディスプレイ(LCD),およびプリンタのようなその他の表示装置とすることができる。本発明を用いて動画ピクチャ・シーケンスを発生する場合、表示装置10は、光印刷装置、またはビデオ・テープ・レコーダとすることができる。
図6は、図5のメモリ・システム54について更に詳細に示す。このメモリ・システムは、磁気ディスクまたは光磁気ディスクのような、コンピュータ読取可能および書込可能な、ランダム・アクセス不揮発性記録媒体70を含む。ディスクは、フロッピ・ディスクまたはコンパクト・ディスクとして公知の着脱自在のもの、またはハード・ドライブとして公知の固定式のものでもよい。このようなディスクは、72で示すような、多数のトラックを有し、この中に、典型的に、二進形態、即ち、76に示すように1および0のシーケンスとして解釈する形態で信号を格納する。このような1および0のシーケンスが、図4に示したような、境界定義、特性点、および関連するエッジ特性関数の指示を与える。この情報は、ディスク70上に格納する。典型的には、動作中、プロセッサはデータをディスク70から、78で示すような集積回路メモリ・エレメントに読み出させる。集積回路メモリ78は、情報に対しディスク70よりも高速のアクセスを可能にする。通常、プロセッサは集積回路メモリ内のデータを操作し、次いで処理が完了したときに、データをディスク70にコピーする。ディスク70と集積回路メモリ78との間のデータ移動を管理するための機構は、種々のものが公知であり、本発明はそれに限定されるものではない。また、本発明は、特定のプロセッサ、入力デバイス、出力デバイス、または相互接続機構にも限定されるものではない。
本発明によるシステムの一実施形態について、図7に関連付けて説明する。このようなシステムは、図5および図6に関連付けて先に述べたような、コンピュータ・システム上で高級コンピュータ・プログラミング言語を用いることによって実施することができる。このシステムのモジュールの1つは、モデル発生器100であり、典型的に、グラフィカル・ユーザ・インターフェースを通じてユーザ入力101を受け取り、それに応答して構造化オブジェクトを発生し、これを用いて座標空間内に境界を定義する。モデル発生器100は、例えば、イングランド、ロンドンの、元パララックス社(Parallax)であるアヴィッド・テクノロジー・ヨーロッパ社(Avid Technology Europe Ltd.)のマタドール(Matador)、ウィスコンシン州マディソンの、元エラスティック・リアリティ社(Elastic Reality)である、アヴィッド・テクノロジー(Avid Technology)のエラスティック・リアリティ(Elastic Reality)、およびカリフォルニア州マウンテン・ビューのアドビ・システムズ社(Adobe Systems, Inc.)のフォトショップ(Photoshop)のような、マット発生ソフトウェア(matte generation software)とすればよい。このようなシステムは、ユーザが入力デバイスを用いてマット(matte)を発生できるようにするものである。マットは、境界の表現として、ファイルに出力することができる。102に示すように、こうして発生した境界は、コンピュータのメモリ54に格納することができる。
別のモジュールにエッジ特性定義モジュール104がある。これは、ユーザ入力103を受け取り、106に示すようなエッジ特性関数をユーザが定義することを可能にする。エッジ特性関数は、構造化オブジェクトによって定義した境界上の1つ以上の特性点に関連付けることができる。補間を行うか、あるいはエッジ特性を定義することにより、単一の定義を与えて、これを、境界上の位置の関数としてオブジェクト全体に適用することができる。また、エッジ特性関数の定義は、コンピュータ・メモリ54に格納することも可能である。エッジ特性関数106と境界102との組み合わせは、構造化オブジェクトを定義した座標空間における1つの対象領域の輪郭描写を記述するには十分である。
図9Aないし図9Dに関連付けて以下に更に詳細に説明するように、アンカー/距離計算モジュール108が、座標空間内の各点毎に、それに最も近い境界上の点(ここではアンカーと呼ぶ)を、当該境界までの距離の寸法と共に決定する。110で示すような各点に対するアンカーおよび距離は、コンピュータのメモリ54に格納する。距離の寸法は、例えば、符号付き距離とすればよい。符号付き距離とは、絶対値ではなく、負または正の距離寸法であり、例えば、方向を示すために有用である。
本発明では、構造化オブジェクト定義の一群(collection)を与えることが可能である。用途によっては、所与の構造化オブジェクトにアンカー値および距離値を予め計算しておくことが好ましい場合もある。このような場合、境界定義102とアンカー値/距離値110との組み合わせは、後に使用するために、一緒にメモリ54に格納しておく。エッジ特性関数106は、後で定義することができる。加えて、1組の構造化オブジェクトおよび対応するエッジ特性106を組み合わせて、例えば、視覚的効果のライブラリを用意することも可能である。
画像プロセッサ112は、境界定義または構造化オブジェクト定義102と、アンカー値/距離値110と、ならびにエッジ特性関数106とを受け取り、そして画像114を生成する。画像プロセッサが実行するプロセスについては、図10に関連付けて以下で更に詳しく説明する。アンカー/距離計算部108と画像プロセッサ112双方の機能を組み合わせて1つのモジュールとし、双方の処理を画像毎、走査線毎に行うようにすることが可能である。画像114は、表示するデータを表すものとしたり、あるいはα合成システム116における制御画像として使用したりすることができる。この画像の他の用途および使用法については、以下で更に詳細に説明する。
図8Aおよび図8Bは、エッジ特性定義の例を更に詳細に示すものであり、以下これについて説明する。これらの定義は、EMACSのようなプログラム・エディタを用いて作り、2つの引数、即ち、アンカーおよび距離を受け取る手順としてエッジ特性を定義するコンピュータ・コードを発生することができる。
この実施形態では、「C」擬似コードで示しており、領域のエッジ特性は、関数Color PickColor (double dist, double anch)によって決定する。ここで、distは領域のエッジCからの現在点Pの符号付き距離であり、anchはPのCからのアンカーである。anchは、境界C上の所定の点に関する、0と1の間の正規化値である。したがって、anchの値0および1は、Cが閉じている場合、双方ともC上の同一点を表す。同様に、distは−1および1の間の値であり、Pが領域の外側にある場合distは負であり、Cによって定義した領域の内側にPがある場合正であるという規則を設ける。エッジ特性に最大フットプリント(MAXDIST)を用い、dist*MAXDISTが実際のCからのPの距離を与えるようにする。
単純なエッジ特性関数を図8Aに示す。この関数はanchとは独立している。このエッジ特性関数が返す色は、半径方向に対称である(即ち、この関数は、一定のアンカーのいずれの半径に沿っても同一関数である)。一定のアンカーのいずれのパス上においても、返される色は、colorA(dist=1における色)とcolorB(dist=1における色)との間の直線傾斜上にある。2箇所の端部の色、および恐らくそれらの間の傾斜を慎重に選択することにより、ソフトエッジ等のような、領域の良質の輪郭描写(quality delineation)を生成することができる。
この画像表現のパワーおよび柔軟性を、図8Bに示すようなエッジ特性関数の定義によって例証する。このエッジ特性関数では、MixColor()は単純なブレンド関数であり、colorAを、colorBおよびcolorCを混合することによって得られる別の色と混合する。Ramp()はスムーズ関数であり、[−1,1]を関数MixColor()のドメインである[0,1]にマップする。Ramp()は、区間[WHITEOUT, 1]上のー1,1において、0を返し、区間[−1,WHITEOUT]上においてスムーズ立方傾斜(smooth cubic ramp)であり、ここでWHITEOUTは定数、例えば、0.5である。
PickColor()の定義において、MixColor()関数の適用により、2つの慎重に選択した引数を用いて、色を選択する。第1引数Ramp(dist)は、当該領域内における色の半径方向のスムーズな遷移を確保する。[WHITEOUT, 1]上の平坦部分によって、領域の中心に、均一な色(colorA)を割り当てる。中心から遠ざかるように移動するに連れて、色は他の色に変化する。これは、第2引数
(anch<0.5)? anch*2: (1-anch)*2
で制御する。これが意味するのは、anchが0.5未満の場合、値はanch*2となり、その他の場合値は(1-anch)*2となるということである。この引数は、帽子状関数(hat-shaped function)を定義し、anch=0または1においてゼロとなり、anch=0.5において1に上昇する。この関数は、輪郭描写領域の最外縁における色を、colorB (anch=0)からcolorC (anch=0.5)に変化させ、次いでcolorB(anch==1.0)に戻す。アンカー値anchが周期的であるという事実は、PickColor()も、anchに関して周期的でなければならないことを意味する。
構造化オブジェクトの定義が与えられたとして、座標空間における各ピクチャ・エレメント毎に、構造化オブジェクトによって定義した曲線上において符号付き距離およびアンカーを決定するプロセスについて、これより図9Aないし図9Dとの関連において説明する。図9Aは、構造化オブジェクト定義102を用いてどのようにアンカー値および距離値を計算することができるのかを記述するフローチャートである。図9Bは、構造化オブジェクトを用いて輪郭描写した領域をもつ座標空間Rの概略図である。
このプロセスでは、曲線をパラメータ化(parametrize)し、領域のエッジを定義する各点に値iを割り当てるようにする。曲線をパラメータ化するには多くの方法がある。ここに記載する実施形態では、曲線上の初期点にパラメータi=0を割り当て、曲線上の最終点にパラメータi=1を割り当てる。図9Aに定めたプロセスの目的は、座標空間R内の各点P毎に、1)点Pに最も近いエッジ上の点である、領域を定義するエッジ上の点Q、および2)点Pと点Qとの間の符号付き距離、を決定することである。
このプロセスにおける最初のステップは、ステップ200であり、走査する曲線における点の画素座標を表すx値およびy値、ならびに曲線のパラメータ値iを初期化する。典型的には、この初期化は、それら対応する変数をゼロに設定する。勿論、他の初期値を用いてもよい。次に、ステップ202において、最小距離値および初期アンカーを初期値に選択する。例えば、最小距離値は、所与の座標空間を用いて予測され得る最大値に設定することもでき、アンカーは、最低のパラメータ値、例えば、ゼロを示すように設定する。
初期化値を与えた後、ステップ204において、現在点(x,y)と曲線上の現在点iとの間の符号付き距離δを決定する。このように計算した距離δが現在格納してある最小距離以下であるとステップ206において判定された場合、ステップ208において現在点に対する最小距離を、この計算した距離δに設定し、この点(x,y)に対するアンカー値を現パラメータ値iに設定する。次に、ステップ210において、値Nだけ増分することによりパラメータ値iを更新する。Nは1/(M−1)であり、Mは曲線上の点の数である。ステップ212において、曲線上の点の全ての分析を完了していないと判定した場合、ステップ204,206,208および210のループを繰り返す。
曲線上の点の全てを分析し終えた場合、この時点で、現在点(x,y)に対する最小距離およびそのアンカーを定義したことになる。次に、ステップ214においてx値を増分することにより、x方向の次の点を選択し、パラメータ値iをその初期値、例えば、ゼロにリセットする。次に、ステップ216によって走査線の終端に到達したことを判定するまで、ステップ202ないし214を実行し続けることにより、走査線内の全ての点を辿る。走査線の終端に到達した場合、ステップ218においてy値を増分し、x値を例えばゼロに初期化する。ステップ220によって、全ての走査線を処理したと判定するまで、ステップ202ないし218にしたがって、各走査線を処理する。ステップ220が完了した時には、各点に対する最小距離およびそのアンカーが決定済みとなる。
図9Aに関連して説明したプロセスは、二次元のみについて例示したものである。このプロセスの三次元への拡張は、比較的単純であり、処理すべき第3次元のためにステップ218ないし220と同様のステップを有する追加のループ、およびステップ202に戻るリンクを付加すればよい。
ステップ204において、距離メトリック(distance metric)を用いて、座標空間内の一点と曲線上の複数の点との間の距離を測定する。使用する単純な距離メトリックは、ユークリッド距離、即ち、二乗ユークリッド距離であり、二乗根演算の実行を回避する。座標空間内のある点(x1,y1)から他の点(x2,y2)までのユークリッド距離Δは、以下の式で表す。
二次元区間において、‖Δ‖=√{(x1-x2)2+(y1-y2)2}
三次元区間において、‖Δ‖=√{(x1-x2)2+(y1-y2)2+(z1-z2)2}
2点間の差または類似度を測定するための他の多くの距離メトリックも公知である。ユークリッド距離は、使用する距離メトリックの一例に過ぎない。この距離は、ユークリッド距離を、領域における最大可能距離を示すファクタMAXDISTで除算することにより、[-1,1]の範囲に正規化することができる。計算した距離は、符号付き距離としてもよい。距離に対する符号を選択する1つの方法は、曲線を、座標空間を2つの領域に分割するものとみなすことである。これを行うには、曲線を、パラメータ値iが増大するに連れて、座標空間内を前進するものとしてみなす。ある平面において、この曲線は当該平面を2つの領域に分割する。即ち、面の右側に1つの領域と面の左側に別の領域とである。このような場合、座標空間内の点Pと曲線との間の符号付き距離は、点Pが曲線Cの右側にある場合正と定義し、点Pが曲線Cの左側にある場合負と定義する。
アンカー、即ち、座標空間上の所与の点に最も近い曲線上の点の識別に関して、曲線上の2箇所以上の点が、座標空間内のいずれか所与の点まで同一距離を有する場合があるということがあり得る。このような状況では、一方の点を選択しなければならない。この点を選択するプロセスは、図9Aにおけるステップ206および208の比較および選択ステップにおいて実行することができる。図9Aに示す実施形態では、最も大きなパラメータ値iを有する曲線上の点を、アンカーとして選択する。ステップ206の比較において「未満」比較(less than comparison)のみを行うことによって、パラメータ値iが最も小さい曲線上の点を選択することも可能である。パラメータ化の方位(orientation)を変更することによって、または初期化および更新ステップ200および210をそれぞれ変更することによっても、同一効果を得ることができる。
図9Aのプロセスの結果は、以下の2つの固有のスカラを表す、座標空間内の各点Pについての情報であり、これらをメモリに格納する。
τ Pのアンカーと呼ぶ
δ その符号付き距離
この点Pの順序付けた対(τ,δ)へのマッピングを、曲線Cの輪郭描写マップと呼ぶ。曲線Cの輪郭描写マップは、色のような種々の媒体によって表すことができる。例えば、曲線に関するアンカーおよび符号付き距離に基づいて色を割り当てる、カラー・マップを定義するとよい。このように、領域は、輪郭描写マップによって輪郭描写する。
図9Aにおける、アンカーおよび符号付き距離の計算に対する力尽くの手法は、オーダーO(Mxy)の計算時間を必要とする。ここで、Mは曲線を表すパラメータの数であり、x・yは画像内の画素数である。一層効率的な計算が望ましい。
次に図9Cおよび図9Dに関連付けて、このようなプロセスについて説明する。図9Aの実施形態と同様、この実施形態においても、二次元において、1対の座標(x,y)を表すパラメータ値iによって、曲線Cのパラメータ化を行う。コンピュータは個別の画素を処理するので、本質的に、曲線Cを部分線形曲線で近似し、各部分をパラメータiで表し、2つの交点、即ち、パラメータiに対応する点(x,y)と、パラメータi-1に対応する点(x,y)とを有するものとする。連続する交点間の曲線Cは、2つの交点間の直線上にある全ての点であるとみなす。
点Pから曲線Cまでの距離を計算するには、曲線上の無限に多い点を用いて計算する必要があるが、Pからその部分線形近似までの距離を計算するには、図9Aのプロセスによって例証したように、交点の数のオーダーだけ作業を行えばよい。PからCへの距離は、即ち、PからC上の任意の点までの最短距離と定義する。2種類の距離、半径方向距離と直交距離がある。半径方向距離とは、ユークリッド・メトリックのような何らかの予め定義してあるメトリックを用いた、PとCの任意の交点との間の距離のことである。半径方向距離は、交点が中心にある円形ディスクを定義するものとして視覚化することができる。直交距離とは、半径方向距離を計算する際に用いるメトリックを用いた、Pと部分線形曲線の2つの隣接する交点間の各直線の線分との間の距離のことである。直交距離は、Pを通り、線分に直交する方向に引いた無限の線によって視覚化することができる。この無限の線が、線分を定める2つの交点間のある点Qにおいて、線分と交差する場合、直交距離を定義し、PとQとの間の距離と等しいとする。一方、点Qが、線分を定める2つの交点の間にない場合、Pと線分との間の直交距離は未定義とする。
図9Dとの関連において以下で説明するが、このプロセスは、実際には逆を決定する。即ち、走査線(*,y)が与えられた場合、このプロセスは、曲線Cの2つの交点によって定義される線分によって明確に定義された直交距離を有する走査線上のx値を決定する。ここで、*は画像の左右の極限間の任意のx値を表す。加えて、これら有効なx値が生成する最小直交距離も決定する。
この実施形態のプロセスでは、各走査線毎の各画素について距離およびアンカーを計算する代わりに、各走査線間で更新が必要となった場合にのみ、交点毎に曲線を横切り、走査線を表すアレイ内の距離およびアンカーを更新することにより、より良い性能が得られる。このプロセスは、値MAXDISTが定義するエッジ特性によって画素が影響を受ける曲線からの最大距離に距離値およびアンカー値が左右され、曲線上の所与の点による影響を受ける可能性があるのは、1走査線内ではわずか数画素に過ぎないという事実を利用する。したがって、必要な場合にのみ各走査線について距離値およびアンカー値を更新するプロセスは、二段階で行う。ここで図9Eを参照する。最初に、交点からの半径方向距離では、最大距離MAXDIST内にある画素のみに、更新を行う必要がある。例えば、曲線上の点Piから半径方向距離MAXDIST以内にある走査線上の点(x0とx2との間)のみ、更新する必要がある。第2に、各線分の端点(例えば、PiおよびPi+1によって定義される)を通過し、かつ当該線分に垂直な2本の線の現走査線上のx切片(x-intercept)は、計算が容易である。走査線および線分上の点間の直交距離も、計算が容易である。直交距離が最大距離MAXDISTよりも小さい場合、2つの切片(例えば、x1およびx3)間にある画素のみを更新すればよい。
次に、図9Cを参照すると、この実施形態では、画像を一度に1走査線ずつ処理する。したがって、最初のステップは、ステップ230においてy値をゼロに設定することである。次に、ステップ232において、走査線に対して2つのアレイを発生する。第1アレイを距離テーブルと呼び、走査線に沿った各点xについて、曲線までの現最小距離を保持する。第2アレイをアンカー・テーブルと呼び、走査線に沿った各点xについて、曲線上の現在最も近い点を保持する。このように、距離テーブルおよびアンカー・テーブルは、x−エントリ・アレイであり、xは走査線内の画素番号である。これらのアレイを発生するプロセスについては、図9Dに関連付けて以下で説明する。走査線上の各画素について、ステップ234ないしステップ240によって色を選択する。即ち、ステップ234においてxをゼロに初期化する。現x値および現走査線によって定義した画素に対する色は、現x値に対する距離テーブルおよびアンカー・テーブルにおける距離値およびアンカー値にしたがって決定する(ステップ236)。ステップ238においてxを増分し、ステップ240において、走査線の終端に到達したと判定するまで、これらのステップを実行する。これらのステップ234ないし240は、距離テーブルおよびアンカー・テーブルを各走査線毎に格納する場合には、図10に関連付けて以下で説明する画像処理モジュールの一部として、別個に実行してもよい。次に、ステップ242においてy値を増分し、ステップ244において最終走査線を処理したと判定されるまで、後続の走査線を処理する。
ここで図9Dを参照し、距離テーブルおよびアンカー・テーブルを発生するプロセスについてこれより説明する。このプロセスの最初のステップは、現走査線が、曲線およびそれに関連するエッジ特性による影響を受ける画像の領域を規定する境界枠(bounding box)の範囲内にあるか否かについて判定することである(ステップ246)。ステップ246において、走査線値yを、境界枠を規定する最大および最小のy値と比較する。走査線が境界枠の外側にある場合、ステップ248において、アンカー値および距離値を、無限大のようなデフォルト値に設定する。
走査線が境界枠内にある場合、ステップ250においてパラメータ値、例えばiを初期値、例えば、ゼロに初期化する。次に、ステップ252において、現パラメータiに対応する点Pの画素座標(x,y)を得る。次に、ステップ254において、この点と現走査線との間のy軸に沿った距離を、値MAXDISTと比較し、この点が現走査線の距離値およびアンカー値に影響を与え得るか否かについて判定を行う。このようにして、距離がMAXDIST未満である場合、ステップ256において、点Pのx軸に沿ったMAXDIST内の点のみについて、点Pからの半径方向距離によって、距離テーブル・アレイおよびアンカー・テーブル・アレイを更新する。このように、点Pと、x−MAXDISTとx+MAXDISTとの間の走査線内の各点との間の、ユークリッド距離のような距離を計算する。ここで、xは点Pのx座標である。図9Aにおけるステップ206および208と同様のステップを用いて、この距離を当該点に対する距離テーブル内の現距離と比較して、距離テーブルおよびアンカー・テーブルを更新する。ステップ260において曲線上の全ての点を評価し終わったと判定されるまで、iを増分する(ステップ258)ことにより、各パラメータi即ち曲線に沿った各点について、ステップ252ないし256を繰り返す。
ステップ262において、パラメータ値、例えば、iを初期値、例えば、ゼロに再度初期化する。次に、ステップ264において、現パラメータiに対応する点Qの画素座標(x,y)、および直前のパラメータ(i-1)に対応する点Pの画素座標(x,y)を得る。次に、ステップ266において、点PおよびQによって定義した線分上への走査線の直交投影を決定し、走査線から点PおよびQまでの直交距離を計算する。ステップ268において、直交距離を値MAXDISTと比較する。これらの長さが双方ともMAXDISTよりも長い場合、これらの点は走査線の距離値およびアンカー値に影響を与えない。そうでない場合、ステップ270において、点PおよびQによって定義した線分上の走査線の直交投影に対応して、走査線上の最小x点と走査線上の最大x点との間で、距離テーブルおよびアンカー・テーブルを更新する。即ち、最小x点および最大x点間の走査線に沿った各点について、点PおよびQによって定義した線分までの直交距離を算出する。図9Aにおけるステップ206および208と同様のステップを用いることにより、この距離を当該点に対する距離テーブル内の現距離と比較して、距離テーブルおよびアンカー・テーブルを更新する。ステップ274において曲線上の全ての点を評価し終えたと判定されるまで、iを増分する(ステップ272)ことによって、各パラメータi即ち曲線に沿った各点について、ステップ264ないし270を繰り返す。
以上、ある領域における点についてどのようにしてアンカー値および距離値を決定するのかについて説明したので、次に、図10との関連において、画像114を生成するための画像プロセッサ112による境界定義、エッジ特性ならびにアンカー値および距離値の使用について説明する。境界上で選択した点に対してエッジ特性関数が予め規定されていると仮定すると、画像処理の第1ステップは、これらのエッジ特性関数を補間し(ステップ300)、境界上の各点についてエッジ特性関数を決定することである。このステップは、図8Aにおけるように、エッジ特性関数がアンカーに独立している場合、またはオブジェクト全体に対して、アンカーの関数として定義する場合には不要である。曲線のパラメータ化を行う場合、パラメータの各値に対して、エッジ特性関数がなければならない。次に、x値およびy値を、例えば、それぞれゼロおよびゼロに初期化し、画像の走査線処理に対処する。各点(x,y)について、当該点のアンカーに割り当てたエッジ特性関数を、ステップ304において選択する。ステップ306において、当該点に対する符号付き距離にこの関数を適用して、ここではαと呼ぶ値を得る。尚、画像内の境界は、エッジ特性によって影響を受ける区域を制限する場合があることは理解されよう。したがって、距離が何らかの最大距離よりも大きい場合、黒のようなデフォルト色を発生すべきである。各点(x,y)についてのこれらの値α全てを組み合わせて、画像114を定義する。次に、ステップ308においてx値を増分して、走査線を更に処理する。ステップ310において走査線の終端に到達したと判定されるまで、ステップ304ないし308の走査線を繰り返す。走査線の終端において、ステップ312でy値を増分し、x値をその初期値、例えば、ゼロにリセットする。ステップ314において全ての走査線を処理し終えたと判定されるまで、ステップ304ないし312を繰り返すことにより、各走査線を処理する。こうして、ステップ314の完了時に、画像114が完成する。
先に説明したように、この画像処理機能をアンカーおよび距離の算出と組み合わせてもよい。処理機能のこの組み合わせは、例えば、図9Aにおけるステップ212と214との間にステップ304および306を挿入することによって、実施することができる。
図11は、発生可能な画像の一例を示す。この画像は、オブジェクト即ち曲線320によって定義したものである。線322で示す方向に定義したエッジ特性は、例えば324で示したものよりも長いグレースケール傾斜である。この図は、曲線上の点の関数である可変エッジ特性を使用することにより、図示の効果が作成可能であることを例示している。これは、従来技術の方法では容易に行うことはできない。
次に図12を参照し、本発明の応用について述べる。図12は、画像のα合成用システムのブロック図である。このようなシステムは、それぞれのフレーム記憶部82および84からAx,yおよびBx,yのような画素データを受け取るブレンダ(blender)80を含む。フレーム記憶部86からは、制御画像を受け取る。制御画像は、α値αx,yをブレンダ80に供給し、ブレンダ80は先に提示した式(1)の関数を実行して、画素Cx,yを出力し、そしてこの得られた画像はフレーム記憶部88に入力する。
図12の合成システムは、ケラー特許のような連続する同期ビデオ信号を処理するため、またはアヴィッド・テクノロジー社から入手可能であり、更にPCT公報第94/24815号に記載されているようなシステムにおけるように、間欠的でありフロー制御が行われるデジタル・ビデオ情報のストリームを処理するために、実施することができる。
画像およびデータの表現において、本発明の用途は他にもある。一般的に、このような用途は、座標空間内の値を、当該空間の境界上の最も近い点までの距離の関数として表すことを伴う。一例として、陸地のある点が水面下になる確率は、所与の点に最も近い水の現境界における点までの距離を参照することによって定義することができる。例えば、境界に沿った種々の点には、異なる確率関数を割り当てることができる。追加例として、彗星のような火の玉の動きは、その尾を定義する長いエッジ特性関数および不規則に修正されるエッジ特性を有する円として表し、その中核から出射する炎を示すことも可能である。このような表現によって発生する画像は、α合成を用いて、他の画像にブレンドすることも可能である。
構造化オブジェクト上の最も近い点までの距離の関数として、画像の画素の特性を定義するエッジ特性関数を有する構造化オブジェクトを用いることによって、更に複雑な画像も定義することができる。このような画像表現も容易に操作し、画像合成、特殊効果、アニメーションおよびモデリングを含む種々の画像処理の応用を可能にする。加えて、本発明における構造化オブジェクトは、構造化オブジェクトの利点全て、およびビット・マップの利点の多くを、特にエッジの定義において有するものである。
以上、本発明の実施形態をいくつか説明したが、これまでに述べたことは単なる例示であって限定ではなく、一例として提示したに過ぎないことは、当業者には明白であろう。多数の変更およびその他の実施形態は、当業者の範囲内であり、添付した請求の範囲に定めた本発明の範囲に該当するものとみなす。
本発明は、コンピュータを用いて二次元空間または三次元空間における構造化オブジェクトを定義するというような、座標空間において対象領域を定義し操作するためのコンピュータ・システムおよびコンピュータ実装プロセスに関するものである。特に、本発明は、画像を合成する際に使用する制御画像の発生に有用である。
発明の背景
コンピュータ・システムには、通常2つのカテゴリの一方に該当する静止画像データを表現する多くの方法がある。ビット・マップと呼ばれる画像表現の第1カテゴリでは、画像の個々のピクチャ・エレメント即ち画素の各値を格納する。画像表現は、圧縮または伸長をしてもよい。ビット・マップ状画像表現は、通常、表示のためにはコンピュータによる計算を多く必要としないが、大量のメモリ空間を占有する場合がある。また、このような画像表現は、通常、柔軟性がなく、かなりの視覚的なアーチファクトを発生せずに、スケールまたはその他の変更を行うことは困難である。画像表現の第2カテゴリは、構造化オブジェクトである。構造化オブジェクトは、画像内に含まれるオブジェクトの構造にしたがって、典型的に数式で画像を定義する。例えば、立方体の画像は、ある基準点に関する、当該立方体の頂点の位置で表すことができる。このような構造化オブジェクトは、三次元モデリング・システム、デスクトップ・パブリッシング・システム等内において日常的に見られるものである。
画像表現が重要な分野の1つに、画像合成(image compositing)がある。アルファ合成(alpha compositing)と呼ばれる、画像合成の一形式は、2つの画像を組み合わせて第3の画像を発生することを伴い、第3の画像における組み合わせ画像の各々の寄与の程度を、制御画像によって定義する。アルファ合成システムの一例が、ポール・ケラー(Pall Kellar)の米国特許第4,602,286号に見られる。
ケラー特許に記載されているように、制御画像は、ビット・マップ・ピクチャとして定義し、各画素がある値を有する。各画素の値は、ゼロ(0)ないし1の目盛り上におけるアルファ値(α)を表す。制御画像内の各画素(x,y)に対するアルファ値(αx,y)を、ここでは制御値と呼ぶが、これを標準的なマッピング関数において用いて、入力画像を組み合わせる。例えば、第1の入力画像(A)における各画像Ax,yおよび、第2の入力画像(B)における画像Bx,yについて、出力画像Cにおける画素Cx,yを、次の式で与える。尚、AおよびBは、x×y個の画素から成る画像である。
Cx,y=αx,yAx,y+(1−αx,y)Bx,y (1)
このような合成は、ビデオ・プログラムにおいて、ワイプ、フェード等の特殊効果および遷移として現れる。ビット・マップ状画像を制御画像として用いる場合の難問の1つに、アルファ合成が、動画ビデオ・シーケンス(motion video sequence)におけるカット間の遷移におけるような、時間的な補間を伴う場合が多いことがあげられる。即ち、1対のフレームを組み合わせて動画ビデオ・シーケンスにおける1フレームを生成するために用いる制御画像が、当該シーケンス内の他のフレームを生成するために用いる制御画像とは異なる場合が多い。加えて、低解像度で作成したビット・マップ状制御画像を、後により高い解像度に調整する場合、低解像度の画像において見られる電子化が、解像度を高めた画像においてアーチファクトが発生する原因となる。
制御画像を定義する別の方法に、構造化オブジェクトを用いることによるものがある。構造化オブジェクトは、画像内のオブジェクトの構造によって、典型的に数式で、制御画像を定義する。この定義は、曲線を表す等式のような数式、または点の座標や方向および大きさを表すベクトルのような幾何学とすることができる。この構造化オブジェクト定義を解釈することにより、最終画像において発生すべき各画素に対し制御値を得る。これらを一緒に取り入れると、制御値は、ビット・マップ状画像を用いて得られる制御値の集合と同様となる。
構造化定義の利点の1つに、これらは、ビット・マップ状画像のような静的定義よりも容易に、スケール、動画化(aminate)、または時間的な補間が可能なことがあげられる。構造化オブジェクトを用いることの別の利点は、画像のある部分がオブジェクトの境界の内側または外側のどちらにあるのかについての計算上の判定が比較的容易なことである。構造化オブジェクト定義は、また、スケーリングや回転のような単純な操作がしやすいので、効果によっては、それを作成するプロセスを簡単にする。しかしながら、今日まで構造化オブジェクトは、通常、単純なオブジェクトに対する単純な処理に用いられているに過ぎない。
画像合成では、通常、ビット・マップ状画像および構造化オブジェクト定義双方を用いて、制御画像を発生する。制御画像は、典型的に、0または1のいずれかの制御値を有し、画像内の画素間の変化がエッジを定義する。通例では、エッジ即ち境界を処理してブレンド特性(blending characteristic)を与え、得られる画像内におけるソース・コンテンツ(source content)間の変化が1つの画素上で分離して発生しないようにする。むしろ、制御画像は、全てのエッジが漸進的な変化、典型的には、単純なグレースケール傾斜を有するように処理する。ケラーの特許では、ペンおよびタブレット入力デバイスからの入力を処理する際のアーチファクトのため、このグレースケール傾斜を与える。構造化オブジェクトを用いる場合、殆どの従来技術のシステムは、走査線内のあるエッジの前後の値を単純に調節するだけである。
本発明の一般的な目的は、複雑度の高い画像を表すことができ、しかも容易に操作可能な、コンピュータ用の画像表現を与えることである。
発明の概要
構造化オブジェクトを用いた画像表現は、コンピュータによって容易に操作することができる。この画像表現は、より複雑な画像を表現することができ、構造化オブジェクトは境界を定義し、ある領域内のこの境界に近い画像値は、エッジ特性関数(edge characteristic function)と呼ぶ関数によって定義する。エッジ特性関数を適用するには、当該領域内の各点について、所与の点に最も近い境界上の点(ここではアンカーと呼ぶ)およびその点までの距離を決定する。
境界に沿った異なる点に、異なるエッジ特性関数を割り当てることができる。一実施形態では、エッジ特性関数は、境界上で選択した特性点に対して割り当てる。これらのエッジ特性関数を補間し、境界に沿った残りの点に対するエッジ特性関数を与えることができる。境界上にない各点は、それに最も近い当該境界上の点のエッジ特性関数にしたがって、および当該点までの距離にしたがって処理を行う。エッジ特性関数は、他のファクタの関数としてもよい。
この画像表現は、多くの利点を与え、その中には、一層複雑な画像を発生し、次にそれを一層容易に操作するか、あるいは異なる画像フォーマットから変換することができる機能を含む。操作形態の1つは、時間に対する補間である。画像合成では、この画像表現は、いくつもの領域にわたる種々の効果を、制御しつつ容易に減衰することも可能とする。この方法は、画像合成、および多数のパラメータにわたって様々に変化するデータをモデリングするためには、特に有用である。
したがって、本発明の一形態は、画像発生方法である。この方法は、画像内の曲線を複数の点として定義することを含む。曲線内の少なくとも2点に対して、ある関数を割り当てる。これらの点の一方の関数は、これらの点の他方の関数とは異なる。画像内の各ピクチャ・エレメント毎に、曲線上のアンカーおよび当該アンカーまでの符号付き距離を決定する。各ピクチャ・エレメント毎に、点のアンカーに割り当てる関数を選択する。画像内の各ピクチャ・エレメント毎に、選択した関数を当該ピクチャ・エレメントからアンカーまでの符号付き距離に適用し、当該ピクチャ・エレメントに対する画像データを決定する。符号付き距離とは、絶対値ではなく、負または正の距離寸法であり、例えば、方向を示す場合に有用である。
この方法の一実施形態では、点に関数を割り当てるステップが、境界上の複数の点を選択することを含む。選択した各点に、エッジ特性を割り当てる。選択した点の各々のエッジ特性を補間し、境界上の他の点のエッジ特性を得る。
この方法の別の実施形態では、関数を適用するステップが、各点毎に、アンカーおよび距離に応じてファクタαを計算することを含む。当該点に対する画像データは、αA+(1−α)Bであり、ここで、Aは第1画像内の対応する点からの画像データであり、Bは第2画像の対応する点からの画像データである。
本発明の別の形態は、コンピュータが読み取り可能な形態で、座標空間内の対象領域の表現を格納したコンピュータ読取可能媒体である。この表現は、当該領域内の複数の点で定義した境界の指示と、境界上の少なくとも2点に対するエッジ特性の指示とを含み、第1点のエッジ特性および第2点のエッジ特性は異なる。一実施形態では、この表現は、座標空間内の各点毎に、当該点に最も近い境界上の点の指示と、境界上の当該点までの符号付き距離とを含む。
本発明の別の形態は、コンピュータが読み取り可能な形態で、座標空間内の対象領域の表現を格納したコンピュータ読取可能媒体である。この表現は、領域内の複数の点で定義した境界の指示と、座標空間内の各点毎に、当該点に最も近い境界上の点の指示と、境界上の当該点までの符号付き距離とを含む。
本発明の別の形態は、座標空間内の対象領域の表現を発生する、コンピュータ実装プロセスである。このプロセスは、ユーザ入力に応答して境界を定義することを含む。また、境界上の少なくとも2点についてもユーザ入力を受け取り、このユーザ入力に応じて、エッジ特性を割り当てる。第1点のエッジ特性と第2点のエッジ特性は異なる。
本発明の別の形態は、有限座標空間内の対象領域の表現を発生するコンピュータ・システムである。このコンピュータ・システムは、境界を定義する機構を有する。境界上の少なくとも2点についてエッジ特性を割り当てるために別の機構を用い、第1点のエッジ特性は、第2点のエッジ特性とは異なる。
本発明の別の形態は、座標空間内の対象領域の定義を操作する、コンピュータ実装プロセスであり、コンピュータ読取可能信号を用いて、この定義をコンピュータ読取可能媒体上に格納し、該定義は、当該領域内の複数の点で規定した境界の指示と、座標空間内の各点毎に、当該点に最も近い境界上の点の指示と、境界上の当該点までの符号付き距離とを含む。このプロセスは、アンカーおよび当該アンカーまでの符号付き距離を有する座標空間内の各点毎に、アンカーに割り当てたエッジ特性関数を、格納してある符号付き距離に適用して、値を得ることを含む。得られた値に応じて、座標空間内の点を表示する。
【図面の簡単な説明】
図面において、
図1Aおよび図1Bは、従来技術のシステムにおけるα合成に用いるための制御画像のビット・マップ状画像定義、および関連するブレンド特性を示す。
図2Aおよび図2Bは、従来技術の方法論による構造化オブジェクトを用いて定義した制御画像、および関連するブレンド特性を示す。
図3Aないし図3Eは、本発明による構造化オブジェクト表現を用いて定義した制御画像、および関連するエッジ特性関数を示す。
図4は、本発明による構造化オブジェクト定義の表現の概略図である。
図5は、本発明を使用可能なコンピュータ・システムのブロック図である。
図6は、図3に示したメモリ・システムの更に詳細な構成図である。
図7は、本発明による構造化オブジェクト定義を処理するシステムのブロック図である。
図8Aおよび図8Bは、エッジ特性定義の例を表す擬似コードである。
図9Aは、図7におけるアンカー/距離計算部が実行する、アンカー値および距離値を決定するプロセスを記述するフローチャートである。
図9Bは、座標空間におけるある領域を輪郭描写する構造化オブジェクトの概略図である。
図9Cおよび図9Dは、アンカー/距離の寸法を決定する別のプロセスを記述するフローチャートである。
図9Eは、いかにして半径方向距離および直交距離を定義するかを示す図である。
図10は、図7に示す構造化オブジェクト定義、可変エッジ特性ならびにアンカー値および距離値を用いた、画像処理を記述するフローチャートである。
図11は、図7に示す画像処理モジュールによって発生した出力例の図である。
図12は、本発明を用いて発生した制御画像を使用可能な、α合成システムのブロック図である。
詳細な説明
本発明は、添付図面に関連付けて以下の詳細な説明を読むことによって、一層深い理解が得られよう。図面では、同様の参照番号は、同様の構造を示すものとする。
本発明は、座標空間内の対象領域の輪郭描写(delineation)に関するものである。対象領域とは、空間内のより大きな領域のサブセットのことである。対象領域の輪郭描写の一種に、画像のサブセットを選択し、これに画像の残り部分とは異なる処置を施すというものがある。処置とは、複数の画像処理機能のいずれかを意味し、色つけ、合成、遷移および特殊効果を含むが、これらに限定される訳ではない。対象領域の輪郭描写の別の種類に、画像処理には無関係に、何らかの人口学的特性(demographic characteristic)を適用する地理的領域の輪郭描写がある。三次元空間における一例として、彗星のような、本体と彗星の尾を含む、移動中の火の玉のアニメーションの記述をあげておく。
これより図1Aを参照すると、従来技術の画像処理システムにおいて、ビット・マップ状画像を用いてある領域が輪郭描写してある。これは、ユーザがペンおよびタブレット入力デバイス(図示せず)を用いて発生したものである。この入力デバイスは、ユーザが、図1Aの画像22内において、20に示すような線を定義することを可能にする。次に図1Bを参照すると、ペンの先端の傾斜形状によって、24に示すような数学的特性を有するエッジを与える。目で見たときに、線20によって定義したエッジは、短いグレースケールの傾斜を有するように現れる。24で示すグラフは、境界からの距離に対するグレースケール値を示す。
次に図2Aを参照すると、構造化オブジェクトを用いた従来のシステムにおいて、画像26は、Aで定義した円のようなオブジェクトを含む。円は、その半径、例えば、2、およびその中心、例えば、画像の座標空間内の座標(0,0)によって定義することができる。次の図2Bを参照すると、28に示すような関数が、構造化オブジェクトAによって定義した境界を横切るx方向のグレースケール傾斜を定義し、所望のエッジ・スムージング(edge smoothing)を与えることができる。処理するとき、画像26内の点には、構造化オブジェクトAによって定義した境界からそれがどれだけ離れているかに応じたグレースケール値を割り当てることができる。実際には、構造化オブジェクトによって定義した境界上にある点をが与えられた場合、この関数28を用いて、境界上のこの点に近い他の点を識別し、これら識別した点にグレースケール値を割り当てる。
構造化オブジェクト定義の利点の1つに、構造化オブジェクトの時間に対する補間、例えば、その形状の変化を容易に実行できることがあげられる。例えば、拡大した半径、例えば、3、および同じ中心座標を有する拡大した円を、画像26内のBに示す。この円のサイズは、半径値を増分または減分することによって、容易に変更可能であることは、明らかに理解できよう。その位置は、中心座標を移動させることによって、容易に変化させることができる。
画像処理の用途からのこれらの解決策(solution)は、構造化オブジェクトによって定義した境界におけるブレンド特性の決定において、間接的にのみ、「近接度(proximity)」という概念(notion)を必要とする。ある点の境界に対する近接度の直接的な尺度およびその使用によって、更に複雑なオブジェクトの表現も可能になることがわかっている。
近接度とは、構造化オブジェクトによって定義した領域のエッジから、ある点がどれだけ離れているかについての符号付き寸法である。例えば、点が当該領域の内側にある場合、寸法は正とすることができ、点が領域の外側にある場合負とすることができる。黒色(白色)をエッジ付近にない外側(内側)の点全てに割り当て、グレースケールの傾斜をエッジ付近の点に割り当てた場合、領域は、黒い背景上の白い区域として表示され、領域のエッジ上に、白から黒への傾斜した遷移が生じる。グレースケール傾斜の形状がエッジ付近のシェードを制御し、これを当該領域のエッジ特性と呼ぶ。グレースケール傾斜が異なれば、異なるエッジ特性が得られ、したがって、その領域の異なる輪郭描写が得られる。図1Aおよび図1Bに示す画像表現では、エッジ特性を明示的に定義していない。エッジ付近のブレンド特性は、実際には、入力デバイスの所望の副作用である。図2Aおよび図2Bに示す画像表現では、1つのブレンド特性のみを領域毎に割り当てている。加えて、このブレンド特性は、領域の境界上のある点に関して処理して、当該境界点に近接した座標空間内の点を識別する。対照的に、本発明では、近接度は、領域内の点に対して定義して、その所与の点に最も近い境界上の点を識別するようにしている。
次に図3Aないし図3Eを参照すると、本発明は、構造化オブジェクトによって定義した曲線に沿った異なる点において、異なるエッジ特性関数を可能にする。例えば、円領域Cは、構造化オブジェクト定義によって輪郭描写することができる。円のエッジ周囲に割り当てた可変エッジ特性関数は、各方向毎に異なる外観のグレースケール傾斜を有する円形ディスクを表す。例えば、図3Aにおける円のエッジ上の点Eには、図3Bの32に示すような、第1のエッジ特性関数f1(E)を割り当てることができる。図3Aにおける円のエッジの対向側にある第2の点Fには、図3Cの34に示すような異なるエッジ特性関数f2(F)を割り当てることができる。このエッジ特性の組み合わせにより、卵黄(egg yolk)を有する卵のように見える形状が得られる。
このような画像表現は、時間に対して容易に補間することができる。例えば、半径を変化させ、図3AのDで示すような曲線を生成することができる。あるいは、曲線上の点EおよびFに割り当てたエッジ特性を、例えば、36および38に示すような新しい関数f1(E)およびf2(F)に変更することも可能である。
次に図4を参照し、二次元画像のような座標空間内の対象領域の輪郭描写の表現を示す。このような表現は、全体として、40に示すような境界を与える構造化オブジェクトの定義の指示を含む。図示の例では、円の境界は、中心点および半径によって定義する。また、この画像表現は、42に示すような1つまたは2つ以上のエッジ特性関数の指示を含み、これらを、それぞれ、境界上の各特性点に割り当てる。
この対象領域の輪郭描写の表現は、例えば、図5に示すようなコンピュータ・システム50で用いる。コンピュータ・システム50は、相互接続機構56を介してメモリ54に接続したプロセッサ52を含む。入力デバイス58および表示装置60も、相互接続機構56を介して、プロセッサおよびメモリに接続してある。コンピュータは、「C」のような高級プログラミング言語、またはその他のプログラミング言語を用いてプログラムして、アプリケーション・プログラムを作成することができる。このアプリケーション・プログラムは、高級プログラミング言語によるプログラムを収容するコンピュータ・ファイルをコンパイルすることによって作成する機械実行可能コードである。オペレーティング・システム(図示せず)は、このアプリケーション・プログラムの実行を制御し、そしてスケジューリング、デバッギング、入出力、メモリ管理、データ管理、およびコンピュータに関連するサービスを提供する。
コンピュータ・システム50は、多くの商業的に入力可能な汎用計算機システムの任意のもの、例えば、カリフォルニア州マウンテン・ビュー(Mountain View)のシリコン・グラフィクス社(Silicon Graphics, Inc.)のIndigoコンピュータのような、アップル・コンピュータから入手可能なIRIXオペレーティング・システム類似のコンピュータ、あるいはその他の特注の画像処理用ワークステーションおよび他のプログラミング・システムでよい。このようなコンピュータ・システムは、例えば、インテルのペンティアム(Pentium)またはシリーズx86プロセッサ、あるいはモトローラのシリーズ680x0プロセッサのような、商業的に入手可能なプロセッサを採用している。その他の適切にプログラムされたマイクロプロセッサを用いることもできる。相互接続機構56は、単純なバスとしたり、あるいはより複雑なスイッチング構成を含み、コンピュータ・システムの種々のエレメントと並列に通信できるようにしたりできる。また、本発明は単一プロセッサ・システムに限定されないことは理解されよう。並列処理コンピュータを含むマルチプロセッサ・システムも、本発明では使用可能である。
本発明と共に使用可能な入力デバイスに例には、マウス、トラック・ボール、ペンおよびタブレット、またはその他のポインティング・デバイス、更にはキーボード、キーパッド、スキャナおよび汎用コンピュータのために一般的に用いられている他の入力デバイスが含まれる。表示装置60は、陰極線管(CRT)ディスプレイ、多数の種類がある液晶ディスプレイ(LCD),およびプリンタのようなその他の表示装置とすることができる。本発明を用いて動画ピクチャ・シーケンスを発生する場合、表示装置10は、光印刷装置、またはビデオ・テープ・レコーダとすることができる。
図6は、図5のメモリ・システム54について更に詳細に示す。このメモリ・システムは、磁気ディスクまたは光磁気ディスクのような、コンピュータ読取可能および書込可能な、ランダム・アクセス不揮発性記録媒体70を含む。ディスクは、フロッピ・ディスクまたはコンパクト・ディスクとして公知の着脱自在のもの、またはハード・ドライブとして公知の固定式のものでもよい。このようなディスクは、72で示すような、多数のトラックを有し、この中に、典型的に、二進形態、即ち、76に示すように1および0のシーケンスとして解釈する形態で信号を格納する。このような1および0のシーケンスが、図4に示したような、境界定義、特性点、および関連するエッジ特性関数の指示を与える。この情報は、ディスク70上に格納する。典型的には、動作中、プロセッサはデータをディスク70から、78で示すような集積回路メモリ・エレメントに読み出させる。集積回路メモリ78は、情報に対しディスク70よりも高速のアクセスを可能にする。通常、プロセッサは集積回路メモリ内のデータを操作し、次いで処理が完了したときに、データをディスク70にコピーする。ディスク70と集積回路メモリ78との間のデータ移動を管理するための機構は、種々のものが公知であり、本発明はそれに限定されるものではない。また、本発明は、特定のプロセッサ、入力デバイス、出力デバイス、または相互接続機構にも限定されるものではない。
本発明によるシステムの一実施形態について、図7に関連付けて説明する。このようなシステムは、図5および図6に関連付けて先に述べたような、コンピュータ・システム上で高級コンピュータ・プログラミング言語を用いることによって実施することができる。このシステムのモジュールの1つは、モデル発生器100であり、典型的に、グラフィカル・ユーザ・インターフェースを通じてユーザ入力101を受け取り、それに応答して構造化オブジェクトを発生し、これを用いて座標空間内に境界を定義する。モデル発生器100は、例えば、イングランド、ロンドンの、元パララックス社(Parallax)であるアヴィッド・テクノロジー・ヨーロッパ社(Avid Technology Europe Ltd.)のマタドール(Matador)、ウィスコンシン州マディソンの、元エラスティック・リアリティ社(Elastic Reality)である、アヴィッド・テクノロジー(Avid Technology)のエラスティック・リアリティ(Elastic Reality)、およびカリフォルニア州マウンテン・ビューのアドビ・システムズ社(Adobe Systems, Inc.)のフォトショップ(Photoshop)のような、マット発生ソフトウェア(matte generation software)とすればよい。このようなシステムは、ユーザが入力デバイスを用いてマット(matte)を発生できるようにするものである。マットは、境界の表現として、ファイルに出力することができる。102に示すように、こうして発生した境界は、コンピュータのメモリ54に格納することができる。
別のモジュールにエッジ特性定義モジュール104がある。これは、ユーザ入力103を受け取り、106に示すようなエッジ特性関数をユーザが定義することを可能にする。エッジ特性関数は、構造化オブジェクトによって定義した境界上の1つ以上の特性点に関連付けることができる。補間を行うか、あるいはエッジ特性を定義することにより、単一の定義を与えて、これを、境界上の位置の関数としてオブジェクト全体に適用することができる。また、エッジ特性関数の定義は、コンピュータ・メモリ54に格納することも可能である。エッジ特性関数106と境界102との組み合わせは、構造化オブジェクトを定義した座標空間における1つの対象領域の輪郭描写を記述するには十分である。
図9Aないし図9Dに関連付けて以下に更に詳細に説明するように、アンカー/距離計算モジュール108が、座標空間内の各点毎に、それに最も近い境界上の点(ここではアンカーと呼ぶ)を、当該境界までの距離の寸法と共に決定する。110で示すような各点に対するアンカーおよび距離は、コンピュータのメモリ54に格納する。距離の寸法は、例えば、符号付き距離とすればよい。符号付き距離とは、絶対値ではなく、負または正の距離寸法であり、例えば、方向を示すために有用である。
本発明では、構造化オブジェクト定義の一群(collection)を与えることが可能である。用途によっては、所与の構造化オブジェクトにアンカー値および距離値を予め計算しておくことが好ましい場合もある。このような場合、境界定義102とアンカー値/距離値110との組み合わせは、後に使用するために、一緒にメモリ54に格納しておく。エッジ特性関数106は、後で定義することができる。加えて、1組の構造化オブジェクトおよび対応するエッジ特性106を組み合わせて、例えば、視覚的効果のライブラリを用意することも可能である。
画像プロセッサ112は、境界定義または構造化オブジェクト定義102と、アンカー値/距離値110と、ならびにエッジ特性関数106とを受け取り、そして画像114を生成する。画像プロセッサが実行するプロセスについては、図10に関連付けて以下で更に詳しく説明する。アンカー/距離計算部108と画像プロセッサ112双方の機能を組み合わせて1つのモジュールとし、双方の処理を画像毎、走査線毎に行うようにすることが可能である。画像114は、表示するデータを表すものとしたり、あるいはα合成システム116における制御画像として使用したりすることができる。この画像の他の用途および使用法については、以下で更に詳細に説明する。
図8Aおよび図8Bは、エッジ特性定義の例を更に詳細に示すものであり、以下これについて説明する。これらの定義は、EMACSのようなプログラム・エディタを用いて作り、2つの引数、即ち、アンカーおよび距離を受け取る手順としてエッジ特性を定義するコンピュータ・コードを発生することができる。
この実施形態では、「C」擬似コードで示しており、領域のエッジ特性は、関数Color PickColor (double dist, double anch)によって決定する。ここで、distは領域のエッジCからの現在点Pの符号付き距離であり、anchはPのCからのアンカーである。anchは、境界C上の所定の点に関する、0と1の間の正規化値である。したがって、anchの値0および1は、Cが閉じている場合、双方ともC上の同一点を表す。同様に、distは−1および1の間の値であり、Pが領域の外側にある場合distは負であり、Cによって定義した領域の内側にPがある場合正であるという規則を設ける。エッジ特性に最大フットプリント(MAXDIST)を用い、dist*MAXDISTが実際のCからのPの距離を与えるようにする。
単純なエッジ特性関数を図8Aに示す。この関数はanchとは独立している。このエッジ特性関数が返す色は、半径方向に対称である(即ち、この関数は、一定のアンカーのいずれの半径に沿っても同一関数である)。一定のアンカーのいずれのパス上においても、返される色は、colorA(dist=1における色)とcolorB(dist=1における色)との間の直線傾斜上にある。2箇所の端部の色、および恐らくそれらの間の傾斜を慎重に選択することにより、ソフトエッジ等のような、領域の良質の輪郭描写(quality delineation)を生成することができる。
この画像表現のパワーおよび柔軟性を、図8Bに示すようなエッジ特性関数の定義によって例証する。このエッジ特性関数では、MixColor()は単純なブレンド関数であり、colorAを、colorBおよびcolorCを混合することによって得られる別の色と混合する。Ramp()はスムーズ関数であり、[−1,1]を関数MixColor()のドメインである[0,1]にマップする。Ramp()は、区間[WHITEOUT, 1]上のー1,1において、0を返し、区間[−1,WHITEOUT]上においてスムーズ立方傾斜(smooth cubic ramp)であり、ここでWHITEOUTは定数、例えば、0.5である。
PickColor()の定義において、MixColor()関数の適用により、2つの慎重に選択した引数を用いて、色を選択する。第1引数Ramp(dist)は、当該領域内における色の半径方向のスムーズな遷移を確保する。[WHITEOUT, 1]上の平坦部分によって、領域の中心に、均一な色(colorA)を割り当てる。中心から遠ざかるように移動するに連れて、色は他の色に変化する。これは、第2引数
(anch<0.5)? anch*2: (1-anch)*2
で制御する。これが意味するのは、anchが0.5未満の場合、値はanch*2となり、その他の場合値は(1-anch)*2となるということである。この引数は、帽子状関数(hat-shaped function)を定義し、anch=0または1においてゼロとなり、anch=0.5において1に上昇する。この関数は、輪郭描写領域の最外縁における色を、colorB (anch=0)からcolorC (anch=0.5)に変化させ、次いでcolorB(anch==1.0)に戻す。アンカー値anchが周期的であるという事実は、PickColor()も、anchに関して周期的でなければならないことを意味する。
構造化オブジェクトの定義が与えられたとして、座標空間における各ピクチャ・エレメント毎に、構造化オブジェクトによって定義した曲線上において符号付き距離およびアンカーを決定するプロセスについて、これより図9Aないし図9Dとの関連において説明する。図9Aは、構造化オブジェクト定義102を用いてどのようにアンカー値および距離値を計算することができるのかを記述するフローチャートである。図9Bは、構造化オブジェクトを用いて輪郭描写した領域をもつ座標空間Rの概略図である。
このプロセスでは、曲線をパラメータ化(parametrize)し、領域のエッジを定義する各点に値iを割り当てるようにする。曲線をパラメータ化するには多くの方法がある。ここに記載する実施形態では、曲線上の初期点にパラメータi=0を割り当て、曲線上の最終点にパラメータi=1を割り当てる。図9Aに定めたプロセスの目的は、座標空間R内の各点P毎に、1)点Pに最も近いエッジ上の点である、領域を定義するエッジ上の点Q、および2)点Pと点Qとの間の符号付き距離、を決定することである。
このプロセスにおける最初のステップは、ステップ200であり、走査する曲線における点の画素座標を表すx値およびy値、ならびに曲線のパラメータ値iを初期化する。典型的には、この初期化は、それら対応する変数をゼロに設定する。勿論、他の初期値を用いてもよい。次に、ステップ202において、最小距離値および初期アンカーを初期値に選択する。例えば、最小距離値は、所与の座標空間を用いて予測され得る最大値に設定することもでき、アンカーは、最低のパラメータ値、例えば、ゼロを示すように設定する。
初期化値を与えた後、ステップ204において、現在点(x,y)と曲線上の現在点iとの間の符号付き距離δを決定する。このように計算した距離δが現在格納してある最小距離以下であるとステップ206において判定された場合、ステップ208において現在点に対する最小距離を、この計算した距離δに設定し、この点(x,y)に対するアンカー値を現パラメータ値iに設定する。次に、ステップ210において、値Nだけ増分することによりパラメータ値iを更新する。Nは1/(M−1)であり、Mは曲線上の点の数である。ステップ212において、曲線上の点の全ての分析を完了していないと判定した場合、ステップ204,206,208および210のループを繰り返す。
曲線上の点の全てを分析し終えた場合、この時点で、現在点(x,y)に対する最小距離およびそのアンカーを定義したことになる。次に、ステップ214においてx値を増分することにより、x方向の次の点を選択し、パラメータ値iをその初期値、例えば、ゼロにリセットする。次に、ステップ216によって走査線の終端に到達したことを判定するまで、ステップ202ないし214を実行し続けることにより、走査線内の全ての点を辿る。走査線の終端に到達した場合、ステップ218においてy値を増分し、x値を例えばゼロに初期化する。ステップ220によって、全ての走査線を処理したと判定するまで、ステップ202ないし218にしたがって、各走査線を処理する。ステップ220が完了した時には、各点に対する最小距離およびそのアンカーが決定済みとなる。
図9Aに関連して説明したプロセスは、二次元のみについて例示したものである。このプロセスの三次元への拡張は、比較的単純であり、処理すべき第3次元のためにステップ218ないし220と同様のステップを有する追加のループ、およびステップ202に戻るリンクを付加すればよい。
ステップ204において、距離メトリック(distance metric)を用いて、座標空間内の一点と曲線上の複数の点との間の距離を測定する。使用する単純な距離メトリックは、ユークリッド距離、即ち、二乗ユークリッド距離であり、二乗根演算の実行を回避する。座標空間内のある点(x1,y1)から他の点(x2,y2)までのユークリッド距離Δは、以下の式で表す。
二次元区間において、‖Δ‖=√{(x1-x2)2+(y1-y2)2}
三次元区間において、‖Δ‖=√{(x1-x2)2+(y1-y2)2+(z1-z2)2}
2点間の差または類似度を測定するための他の多くの距離メトリックも公知である。ユークリッド距離は、使用する距離メトリックの一例に過ぎない。この距離は、ユークリッド距離を、領域における最大可能距離を示すファクタMAXDISTで除算することにより、[-1,1]の範囲に正規化することができる。計算した距離は、符号付き距離としてもよい。距離に対する符号を選択する1つの方法は、曲線を、座標空間を2つの領域に分割するものとみなすことである。これを行うには、曲線を、パラメータ値iが増大するに連れて、座標空間内を前進するものとしてみなす。ある平面において、この曲線は当該平面を2つの領域に分割する。即ち、面の右側に1つの領域と面の左側に別の領域とである。このような場合、座標空間内の点Pと曲線との間の符号付き距離は、点Pが曲線Cの右側にある場合正と定義し、点Pが曲線Cの左側にある場合負と定義する。
アンカー、即ち、座標空間上の所与の点に最も近い曲線上の点の識別に関して、曲線上の2箇所以上の点が、座標空間内のいずれか所与の点まで同一距離を有する場合があるということがあり得る。このような状況では、一方の点を選択しなければならない。この点を選択するプロセスは、図9Aにおけるステップ206および208の比較および選択ステップにおいて実行することができる。図9Aに示す実施形態では、最も大きなパラメータ値iを有する曲線上の点を、アンカーとして選択する。ステップ206の比較において「未満」比較(less than comparison)のみを行うことによって、パラメータ値iが最も小さい曲線上の点を選択することも可能である。パラメータ化の方位(orientation)を変更することによって、または初期化および更新ステップ200および210をそれぞれ変更することによっても、同一効果を得ることができる。
図9Aのプロセスの結果は、以下の2つの固有のスカラを表す、座標空間内の各点Pについての情報であり、これらをメモリに格納する。
τ Pのアンカーと呼ぶ
δ その符号付き距離
この点Pの順序付けた対(τ,δ)へのマッピングを、曲線Cの輪郭描写マップと呼ぶ。曲線Cの輪郭描写マップは、色のような種々の媒体によって表すことができる。例えば、曲線に関するアンカーおよび符号付き距離に基づいて色を割り当てる、カラー・マップを定義するとよい。このように、領域は、輪郭描写マップによって輪郭描写する。
図9Aにおける、アンカーおよび符号付き距離の計算に対する力尽くの手法は、オーダーO(Mxy)の計算時間を必要とする。ここで、Mは曲線を表すパラメータの数であり、x・yは画像内の画素数である。一層効率的な計算が望ましい。
次に図9Cおよび図9Dに関連付けて、このようなプロセスについて説明する。図9Aの実施形態と同様、この実施形態においても、二次元において、1対の座標(x,y)を表すパラメータ値iによって、曲線Cのパラメータ化を行う。コンピュータは個別の画素を処理するので、本質的に、曲線Cを部分線形曲線で近似し、各部分をパラメータiで表し、2つの交点、即ち、パラメータiに対応する点(x,y)と、パラメータi-1に対応する点(x,y)とを有するものとする。連続する交点間の曲線Cは、2つの交点間の直線上にある全ての点であるとみなす。
点Pから曲線Cまでの距離を計算するには、曲線上の無限に多い点を用いて計算する必要があるが、Pからその部分線形近似までの距離を計算するには、図9Aのプロセスによって例証したように、交点の数のオーダーだけ作業を行えばよい。PからCへの距離は、即ち、PからC上の任意の点までの最短距離と定義する。2種類の距離、半径方向距離と直交距離がある。半径方向距離とは、ユークリッド・メトリックのような何らかの予め定義してあるメトリックを用いた、PとCの任意の交点との間の距離のことである。半径方向距離は、交点が中心にある円形ディスクを定義するものとして視覚化することができる。直交距離とは、半径方向距離を計算する際に用いるメトリックを用いた、Pと部分線形曲線の2つの隣接する交点間の各直線の線分との間の距離のことである。直交距離は、Pを通り、線分に直交する方向に引いた無限の線によって視覚化することができる。この無限の線が、線分を定める2つの交点間のある点Qにおいて、線分と交差する場合、直交距離を定義し、PとQとの間の距離と等しいとする。一方、点Qが、線分を定める2つの交点の間にない場合、Pと線分との間の直交距離は未定義とする。
図9Dとの関連において以下で説明するが、このプロセスは、実際には逆を決定する。即ち、走査線(*,y)が与えられた場合、このプロセスは、曲線Cの2つの交点によって定義される線分によって明確に定義された直交距離を有する走査線上のx値を決定する。ここで、*は画像の左右の極限間の任意のx値を表す。加えて、これら有効なx値が生成する最小直交距離も決定する。
この実施形態のプロセスでは、各走査線毎の各画素について距離およびアンカーを計算する代わりに、各走査線間で更新が必要となった場合にのみ、交点毎に曲線を横切り、走査線を表すアレイ内の距離およびアンカーを更新することにより、より良い性能が得られる。このプロセスは、値MAXDISTが定義するエッジ特性によって画素が影響を受ける曲線からの最大距離に距離値およびアンカー値が左右され、曲線上の所与の点による影響を受ける可能性があるのは、1走査線内ではわずか数画素に過ぎないという事実を利用する。したがって、必要な場合にのみ各走査線について距離値およびアンカー値を更新するプロセスは、二段階で行う。ここで図9Eを参照する。最初に、交点からの半径方向距離では、最大距離MAXDIST内にある画素のみに、更新を行う必要がある。例えば、曲線上の点Piから半径方向距離MAXDIST以内にある走査線上の点(x0とx2との間)のみ、更新する必要がある。第2に、各線分の端点(例えば、PiおよびPi+1によって定義される)を通過し、かつ当該線分に垂直な2本の線の現走査線上のx切片(x-intercept)は、計算が容易である。走査線および線分上の点間の直交距離も、計算が容易である。直交距離が最大距離MAXDISTよりも小さい場合、2つの切片(例えば、x1およびx3)間にある画素のみを更新すればよい。
次に、図9Cを参照すると、この実施形態では、画像を一度に1走査線ずつ処理する。したがって、最初のステップは、ステップ230においてy値をゼロに設定することである。次に、ステップ232において、走査線に対して2つのアレイを発生する。第1アレイを距離テーブルと呼び、走査線に沿った各点xについて、曲線までの現最小距離を保持する。第2アレイをアンカー・テーブルと呼び、走査線に沿った各点xについて、曲線上の現在最も近い点を保持する。このように、距離テーブルおよびアンカー・テーブルは、x−エントリ・アレイであり、xは走査線内の画素番号である。これらのアレイを発生するプロセスについては、図9Dに関連付けて以下で説明する。走査線上の各画素について、ステップ234ないしステップ240によって色を選択する。即ち、ステップ234においてxをゼロに初期化する。現x値および現走査線によって定義した画素に対する色は、現x値に対する距離テーブルおよびアンカー・テーブルにおける距離値およびアンカー値にしたがって決定する(ステップ236)。ステップ238においてxを増分し、ステップ240において、走査線の終端に到達したと判定するまで、これらのステップを実行する。これらのステップ234ないし240は、距離テーブルおよびアンカー・テーブルを各走査線毎に格納する場合には、図10に関連付けて以下で説明する画像処理モジュールの一部として、別個に実行してもよい。次に、ステップ242においてy値を増分し、ステップ244において最終走査線を処理したと判定されるまで、後続の走査線を処理する。
ここで図9Dを参照し、距離テーブルおよびアンカー・テーブルを発生するプロセスについてこれより説明する。このプロセスの最初のステップは、現走査線が、曲線およびそれに関連するエッジ特性による影響を受ける画像の領域を規定する境界枠(bounding box)の範囲内にあるか否かについて判定することである(ステップ246)。ステップ246において、走査線値yを、境界枠を規定する最大および最小のy値と比較する。走査線が境界枠の外側にある場合、ステップ248において、アンカー値および距離値を、無限大のようなデフォルト値に設定する。
走査線が境界枠内にある場合、ステップ250においてパラメータ値、例えばiを初期値、例えば、ゼロに初期化する。次に、ステップ252において、現パラメータiに対応する点Pの画素座標(x,y)を得る。次に、ステップ254において、この点と現走査線との間のy軸に沿った距離を、値MAXDISTと比較し、この点が現走査線の距離値およびアンカー値に影響を与え得るか否かについて判定を行う。このようにして、距離がMAXDIST未満である場合、ステップ256において、点Pのx軸に沿ったMAXDIST内の点のみについて、点Pからの半径方向距離によって、距離テーブル・アレイおよびアンカー・テーブル・アレイを更新する。このように、点Pと、x−MAXDISTとx+MAXDISTとの間の走査線内の各点との間の、ユークリッド距離のような距離を計算する。ここで、xは点Pのx座標である。図9Aにおけるステップ206および208と同様のステップを用いて、この距離を当該点に対する距離テーブル内の現距離と比較して、距離テーブルおよびアンカー・テーブルを更新する。ステップ260において曲線上の全ての点を評価し終わったと判定されるまで、iを増分する(ステップ258)ことにより、各パラメータi即ち曲線に沿った各点について、ステップ252ないし256を繰り返す。
ステップ262において、パラメータ値、例えば、iを初期値、例えば、ゼロに再度初期化する。次に、ステップ264において、現パラメータiに対応する点Qの画素座標(x,y)、および直前のパラメータ(i-1)に対応する点Pの画素座標(x,y)を得る。次に、ステップ266において、点PおよびQによって定義した線分上への走査線の直交投影を決定し、走査線から点PおよびQまでの直交距離を計算する。ステップ268において、直交距離を値MAXDISTと比較する。これらの長さが双方ともMAXDISTよりも長い場合、これらの点は走査線の距離値およびアンカー値に影響を与えない。そうでない場合、ステップ270において、点PおよびQによって定義した線分上の走査線の直交投影に対応して、走査線上の最小x点と走査線上の最大x点との間で、距離テーブルおよびアンカー・テーブルを更新する。即ち、最小x点および最大x点間の走査線に沿った各点について、点PおよびQによって定義した線分までの直交距離を算出する。図9Aにおけるステップ206および208と同様のステップを用いることにより、この距離を当該点に対する距離テーブル内の現距離と比較して、距離テーブルおよびアンカー・テーブルを更新する。ステップ274において曲線上の全ての点を評価し終えたと判定されるまで、iを増分する(ステップ272)ことによって、各パラメータi即ち曲線に沿った各点について、ステップ264ないし270を繰り返す。
以上、ある領域における点についてどのようにしてアンカー値および距離値を決定するのかについて説明したので、次に、図10との関連において、画像114を生成するための画像プロセッサ112による境界定義、エッジ特性ならびにアンカー値および距離値の使用について説明する。境界上で選択した点に対してエッジ特性関数が予め規定されていると仮定すると、画像処理の第1ステップは、これらのエッジ特性関数を補間し(ステップ300)、境界上の各点についてエッジ特性関数を決定することである。このステップは、図8Aにおけるように、エッジ特性関数がアンカーに独立している場合、またはオブジェクト全体に対して、アンカーの関数として定義する場合には不要である。曲線のパラメータ化を行う場合、パラメータの各値に対して、エッジ特性関数がなければならない。次に、x値およびy値を、例えば、それぞれゼロおよびゼロに初期化し、画像の走査線処理に対処する。各点(x,y)について、当該点のアンカーに割り当てたエッジ特性関数を、ステップ304において選択する。ステップ306において、当該点に対する符号付き距離にこの関数を適用して、ここではαと呼ぶ値を得る。尚、画像内の境界は、エッジ特性によって影響を受ける区域を制限する場合があることは理解されよう。したがって、距離が何らかの最大距離よりも大きい場合、黒のようなデフォルト色を発生すべきである。各点(x,y)についてのこれらの値α全てを組み合わせて、画像114を定義する。次に、ステップ308においてx値を増分して、走査線を更に処理する。ステップ310において走査線の終端に到達したと判定されるまで、ステップ304ないし308の走査線を繰り返す。走査線の終端において、ステップ312でy値を増分し、x値をその初期値、例えば、ゼロにリセットする。ステップ314において全ての走査線を処理し終えたと判定されるまで、ステップ304ないし312を繰り返すことにより、各走査線を処理する。こうして、ステップ314の完了時に、画像114が完成する。
先に説明したように、この画像処理機能をアンカーおよび距離の算出と組み合わせてもよい。処理機能のこの組み合わせは、例えば、図9Aにおけるステップ212と214との間にステップ304および306を挿入することによって、実施することができる。
図11は、発生可能な画像の一例を示す。この画像は、オブジェクト即ち曲線320によって定義したものである。線322で示す方向に定義したエッジ特性は、例えば324で示したものよりも長いグレースケール傾斜である。この図は、曲線上の点の関数である可変エッジ特性を使用することにより、図示の効果が作成可能であることを例示している。これは、従来技術の方法では容易に行うことはできない。
次に図12を参照し、本発明の応用について述べる。図12は、画像のα合成用システムのブロック図である。このようなシステムは、それぞれのフレーム記憶部82および84からAx,yおよびBx,yのような画素データを受け取るブレンダ(blender)80を含む。フレーム記憶部86からは、制御画像を受け取る。制御画像は、α値αx,yをブレンダ80に供給し、ブレンダ80は先に提示した式(1)の関数を実行して、画素Cx,yを出力し、そしてこの得られた画像はフレーム記憶部88に入力する。
図12の合成システムは、ケラー特許のような連続する同期ビデオ信号を処理するため、またはアヴィッド・テクノロジー社から入手可能であり、更にPCT公報第94/24815号に記載されているようなシステムにおけるように、間欠的でありフロー制御が行われるデジタル・ビデオ情報のストリームを処理するために、実施することができる。
画像およびデータの表現において、本発明の用途は他にもある。一般的に、このような用途は、座標空間内の値を、当該空間の境界上の最も近い点までの距離の関数として表すことを伴う。一例として、陸地のある点が水面下になる確率は、所与の点に最も近い水の現境界における点までの距離を参照することによって定義することができる。例えば、境界に沿った種々の点には、異なる確率関数を割り当てることができる。追加例として、彗星のような火の玉の動きは、その尾を定義する長いエッジ特性関数および不規則に修正されるエッジ特性を有する円として表し、その中核から出射する炎を示すことも可能である。このような表現によって発生する画像は、α合成を用いて、他の画像にブレンドすることも可能である。
構造化オブジェクト上の最も近い点までの距離の関数として、画像の画素の特性を定義するエッジ特性関数を有する構造化オブジェクトを用いることによって、更に複雑な画像も定義することができる。このような画像表現も容易に操作し、画像合成、特殊効果、アニメーションおよびモデリングを含む種々の画像処理の応用を可能にする。加えて、本発明における構造化オブジェクトは、構造化オブジェクトの利点全て、およびビット・マップの利点の多くを、特にエッジの定義において有するものである。
以上、本発明の実施形態をいくつか説明したが、これまでに述べたことは単なる例示であって限定ではなく、一例として提示したに過ぎないことは、当業者には明白であろう。多数の変更およびその他の実施形態は、当業者の範囲内であり、添付した請求の範囲に定めた本発明の範囲に該当するものとみなす。
Claims (27)
- 画像発生方法であって、
(a)複数の点からなる境界を有する構造化オブジェクトを定義するステップと、
(b)前記境界に沿った各点に対してエッジ特性関数を割り当てるステップであって、少なくとも2つの点の前記エッジ特性関数は互いに異なっており、前記エッジ特性関数の各々は前記境界の付近の画像値を定めるエッジ特性を定義する、前記のステップと、
(c)前記画像内の各ピクチャ・エレメントに対して、前記境界上のアンカーおよび該アンカーまでの符号付き距離を決定するステップであって、前記アンカーは前記ピクチャ・エレメントが最も近い前記境界上の点である、前記のステップと、
(d)前記画像内の各ピクチャ・エレメントに対して、前記ピクチャ・エレメントに対し決定した前記アンカーに割り当てる前記エッジ特性関数を選択するステップと、
(e)前記画像内の各ピクチャ・エレメントに対して、当該ピクチャ・エレメントから前記アンカーまでの前記符号付き距離に、前記選択したエッジ特性関数を適用して、前記ピクチャ・エレメントに対して画像値を決定するステップと、から成る画像発生方法。 - 請求項1記載の方法において、前記割り当てるステップ(b)が、
前記画像内において境界を定義するステップと、
前記境界上の複数の点を選択するステップと、
選択した各点にエッジ特性関数を割り当てるステップと、
前記選択した点の各々の前記エッジ特性関数を補間して、前記境界上の他の点のエッジ特性関数を得るステップと、
から成ること、を特徴とする画像発生方法。 - 請求項1記載の方法において、前記の関数を適用するステップが、各点について、前記アンカーおよび前記距離に応じてファクタαを算出するステップを含み、当該点に対する前記画像データはαA+(1−α)Bであり、ここでAは第1画像における対応する点からのデータであり、Bは第2画像における対応する点からの画像データであること、を特徴とする画像発生方法。
- コンピュータが読み取り可能な形態で、座標空間内の対象とする領域の表現を格納したコンピュータ読取可能媒体であって、前記表現が、
前記領域内の複数の点によって定義した境界の指示と、
前記境界の少なくとも2つの点に対する、エッジ特性関数の指示と、
から成り、前記境界上の第1の点の前記エッジ特性関数と前記境界上の第2の点の前記エッジ特性関数が異なること、
を特徴とするコンピュータ読取可能媒体。 - 請求項4記載のコンピュータ読取可能媒体であって、更に、
前記座標空間における各点に対して、当該点に最も近い前記境界上の点と、前記境界上の前記点までの符号付き距離との指示を含むこと、
を特徴とするコンピュータ読取可能媒体。 - コンピュータが読み取り可能な形態で、座標空間内の対象とする領域の表現を格納したコンピュータ読取可能媒体であって、前記表現が、
前記領域内の複数の点によって定義した境界の指示と、
前記座標空間における各点に対して、当該点に最も近い前記境界上の点と、前記境界上の前記点までの符号付き距離との指示と、
から成ること、を特徴とするコンピュータ読取可能媒体。 - 座標空間における対象とする領域の表現を発生するためのコンピュータ実装プロセスであって、
(a)ユーザ入力に応答して、境界を定義するステップと、
(b)前記境界上の少なくとも2つの点に対して、ユーザ入力を受け取り、該ユーザ入力に応じてエッジ特性関数を割り当て、前記境界上の第1の点の前記エッジ特性関数を前記境界上の第2の点の前記エッジ特性関数とは異なるものとする、前記のステップと、
から成るコンピュータ実装プロセス。 - 有限座標空間における対象とする領域の表現を発生するコンピュータ・システムであって、
(a)境界を定義する手段と、
(b)前記境界上の少なくとも2つの点に対して、エッジ特性関数を割り当てる手段であって、前記境界上の第1の点の前記エッジ特性関数が前記境界上の第2の点の前記エッジ特性関数とは異なるようにした、前記の手段と、
から成るコンピュータ・システム。 - 座標空間における対象とする領域の定義を操作するためのコンピュータ実装プロセスであって、コンピュータ読取可能信号を用いて前記定義をコンピュータ読取可能媒体上に格納し、前記定義が、前記領域内の複数の点によって定義した境界の指示と、前記座標空間における各点に対して当該点に最も近い境界上の点と、前記境界上の前記点までの符号付き距離の指示とを含み、前記プロセスが、
アンカーと当該アンカーまでの符号付き距離とを有する前記座標空間内の各点に対して、前記アンカーに割り当てた前記エッジ特性関数を、前記格納した符号付き距離に適用して、値を得るステップと、
該得た値に応じて、前記座標空間における前記点を表示するステップと、
から成ること、を特徴とするコンピュータ実装プロセス。 - 請求項1記載の方法であって、更に、
前記定義したエッジ特性関数を補間して、前記境界上の各点に対してエッジ特性関数を決定するステップ、
を含むこと、を特徴とする画像発生方法。 - 請求項1記載の方法において、アンカー点は、識別したピクチャ・エレメントに最も近い前記境界の点であり、前記アンカー点を決定するステップが、更に、
前記境界上の点の座標を初期化するステップと、
最小距離値を選択するステップと、
前記境界上のアンカー点を選択するステップと、
前記識別したピクチャ・エレメントと前記初期アンカー点との間の符号付き距離を決定するステップと、
前記符号付き距離を前記最小距離値と比較するステップと、
を含むこと、を特徴とする画像発生方法。 - 請求項11記載の方法において、前記比較するステップが、更に、
前記最小距離値を前記符号付き距離に設定するステップと、
前記最小距離値に対応する前記ピクチャ・エレメントにアンカーを選択するステップと、
を含むこと、を特徴とする画像発生方法。 - 請求項11記載の方法において、前記比較するステップが、更に、
ピクチャ・エレメントと前記境界上の各点との間の符号付き距離を決定するステップと、
前記符号付き距離を、前記境界上の各点の前記最小距離と比較するステップと、
前記ピクチャ・エレメントに対する前記最小距離を定め、そして対応するアンカーを選択するステップと、
を含むこと、を特徴とする画像発生方法。 - 請求項1記載の方法において、前記アンカーを決定する前記ステップが、更に、
各走査線内の各点に対して、
当該点に対して、前記境界までの現在の最小距離を含む距離テーブルである第1のアレイを発生するステップと、
前記点に対して、前記境界上の現在最も近い点を含むアンカー・テーブルである第2のアレイを発生するステップと、
前記点についての前記距離テーブルおよび前記アンカー・テーブルにしたがって、前記走査線に沿った各点に色を選択するステップと、
を含むこと、を特徴とする画像発生方法。 - 請求項14記載の方法において、第1のアレイおよび第2のアレイを発生する各前記ステップが、
前記境界および関連するエッジ特性によって影響を受ける画像の領域を定める境界枠内に、現走査線が入っているか否かについて判定を行なうステップと、
前記境界のパラメータ値を初期化するステップと、
現パラメータに対応する点の画素座標を得るステップと、
前記点と前記現走査線との間のy軸に沿った距離を最大距離と比較するステップであって、該最大距離が、前記境界の前記エッジ特性によって画素が影響を受ける前記境界からの距離を表す、前記のステップと、
前記点のx軸に沿った最大距離内にある点についてのみ、前記点からの半径方向距離を用いて、前記第1および第2のアレイ内の前記距離テーブルおよび前記アンカー・テーブルを更新するステップと、
前記境界上の全ての点を評価し終えるまで、前記パラメータ値を増分するステップと、
を含むこと、を特徴とする画像発生方法。 - 請求項15記載の方法であって、更に、
前記パラメータ値を再初期化するステップと、
現パラメータに対応する点の座標、および直前のパラメータに対応する前記画像内の点の座標を得るステップと、
前記現パラメータを表す点および前記画像内の前記点によって定義する線分上への、前記走査線の直交投影を決定するステップと、
前記走査線から前記点までの直交距離を決定するステップと、
前記直交距離を前記最大距離と比較するステップと、
前記点によって定義した前記線分への前記走査線の直交投影に対応する、前記走査線上の最小点と前記走査線上の最大点との間で、前記第1および第2のアレイ内の前記距離テーブルおよびアンカー・テーブルを更新するステップと、
を含むこと、を特徴とする画像発生方法。 - 請求項15記載の方法において、前記現走査線が境界枠内に入っているか否かを判定する前記ステップが、前記走査線が前記境界枠の外側にある場合、アンカー値および距離値をデフォルト値にセットするステップを含むこと、を特徴とする画像発生方法。
- 請求項2記載の方法において、前記エッジ特性関数が、2つの引数、即ち、前記アンカーおよび前記距離を受け取る手順であること、を特徴とする画像発生方法。
- 請求項2記載の方法において、前記領域内の各点に対して、前記所与の点に最も近い前記境界上のアンカー点、および当該アンカー点までの距離を決定することによって、前記エッジ特性関数を適用すること、を特徴とする画像発生方法。
- 請求項4記載のコンピュータ読取可能媒体において、前記エッジ特性関数が、前記境界付近の画像値を定義すること、を特徴とするコンピュータ読取可能媒体。
- 請求項20記載のコンピュータ読取可能媒体において、前記エッジ特性関数が、前記境界付近の各点の画像への寄与を、前記境界からの前記点の距離の関数として定義すること、を特徴とするコンピュータ読取可能媒体。
- 請求項7記載のコンピュータ実装プロセスであって、更に、
前記境界上の前記点の各々の前記エッジ特性関数を補間して、前記境界上の他の点のエッジ特性関数を得るステップ、
を含むこと、を特徴とするコンピュータ実装プロセス。 - 請求項7記載のコンピュータ実装プロセスであって、更に、
前記座標空間内の各点に対して、当該点に最も近い前記境界上の点と、前記境界上の前記点までの符号付き距離とを決定するステップと、
前記符号付き距離に適用する前記エッジ特性関数に基づいて、前記座標空間内の各点に対して値を決定するステップと、
を含むこと、を特徴とするコンピュータ実装プロセス。 - 請求項7記載のコンピュータ実装プロセスにおいて、前記エッジ特性関数が、前記境界付近の画像値を定義すること、を特徴とするコンピュータ実装プロセス。
- 請求項8記載のコンピュータ・システムであって、更に、
前記座標空間内の各点に対して、当該点に最も近い前記境界上の点と、前記境界上の前記点までの符号付き距離とを示す手段と、
前記エッジ特性関数に基づいて、前記座標空間内の各点に対して値を割り当てる手段と、
を含むこと、を特徴とするコンピュータ・システム。 - 請求項8記載のコンピュータ・システムにおいて、前記エッジ特性関数が、前記境界付近の画像値を定義すること、を特徴とするコンピュータ・システム。
- 請求項9記載のコンピュータ実装プロセスにおいて、前記エッジ特性関数が、前記境界付近の画像値を定義すること、を特徴とするコンピュータ実装プロセス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/613,283 US5754180A (en) | 1996-03-11 | 1996-03-11 | Computer system and process for defining and manipulating images using structured objects with variable edge characteristics |
US08/613,283 | 1996-03-11 | ||
PCT/US1997/003436 WO1997034261A1 (en) | 1996-03-11 | 1997-03-05 | A computer system and process for defining and manufacturing images using structured objects with variable edge characteristics |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2000507011A JP2000507011A (ja) | 2000-06-06 |
JP2000507011A5 JP2000507011A5 (ja) | 2004-11-04 |
JP3862759B2 true JP3862759B2 (ja) | 2006-12-27 |
Family
ID=24456656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53267397A Expired - Fee Related JP3862759B2 (ja) | 1996-03-11 | 1997-03-05 | 可変エッジ特性を有する構造化オブジェクトを用いて画像を定義し製作するためのコンピュータ・システムおよびプロセス |
Country Status (6)
Country | Link |
---|---|
US (1) | US5754180A (ja) |
EP (1) | EP0976108B1 (ja) |
JP (1) | JP3862759B2 (ja) |
AU (1) | AU729981B2 (ja) |
DE (1) | DE69713164T2 (ja) |
WO (1) | WO1997034261A1 (ja) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6025850A (en) * | 1997-03-28 | 2000-02-15 | Adobe Systems Incorporated | Object boundaries identified in a raster image by a user selecting positions on the raster image and then using cost functions to predict likelihood of pixels near the position being on a boundary path |
US6016152A (en) * | 1997-08-01 | 2000-01-18 | Avid Technology, Inc. | Apparatus and method for non-uniform image scaling |
US5949425A (en) * | 1997-11-25 | 1999-09-07 | Terrain Experts, Inc. | Terrain representation with polygonal seams |
US6229520B1 (en) * | 1998-01-16 | 2001-05-08 | Texas Instruments Incorporated | Digital processing for resized graphics images |
US6351557B1 (en) | 1998-04-03 | 2002-02-26 | Avid Technology, Inc. | Method and apparatus for color manipulation |
US6084593A (en) * | 1998-05-14 | 2000-07-04 | Mitsubishi Electric Information Technology Center America, Inc. | Surface net smoothing for surface representation from binary sampled data |
US6310623B1 (en) | 1998-05-28 | 2001-10-30 | Scimed Life Systems, Inc. | Method for manual editing of a closed contour |
US6973641B1 (en) * | 1998-06-04 | 2005-12-06 | Microsoft Corporation | Persistent representations for complex data structures as interpreted programs |
US6674485B2 (en) | 1998-08-31 | 2004-01-06 | Hitachi Software Engineering Co., Ltd. | Apparatus and method for image compositing |
US6552731B1 (en) | 1999-04-16 | 2003-04-22 | Avid Technology, Inc. | Multi-tone representation of a digital image on a digital nonlinear editing system |
US6417891B1 (en) | 1999-04-16 | 2002-07-09 | Avid Technology, Inc. | Color modification on a digital nonlinear editing system |
US6571255B1 (en) | 1999-04-16 | 2003-05-27 | Robert Gonsalves | Modification of media with common attributes on a digital nonlinear editing system |
US6847373B1 (en) | 1999-04-16 | 2005-01-25 | Avid Technology, Inc. | Natural color matching in a video editing system |
AU4793899A (en) * | 1999-06-03 | 2000-12-28 | Boston Scientific Limited | Method for manual editing of a closed contour |
US6477271B1 (en) | 2000-04-07 | 2002-11-05 | Avid Technology, Inc. | Secondary color modification of a digital image |
US6928187B2 (en) * | 2000-04-07 | 2005-08-09 | Avid Technology, Inc. | Secondary color modification of a digital image |
US6894796B1 (en) | 2000-05-12 | 2005-05-17 | International Business Machines Corporation | Method, system, and logic for selecting line work and control data for a pixel from multiple objects of line work data provided for the pixel |
US6850338B1 (en) | 2000-05-12 | 2005-02-01 | International Business Machines Corporation | Method, system, program, and data structure for generating raster objects |
US6804411B1 (en) | 2000-05-15 | 2004-10-12 | International Business Machines Corporation | Method, system, and program for decompressing and aligning line work data from multiple objects |
US6774913B1 (en) | 2000-05-15 | 2004-08-10 | International Business Machines Corporation | System, method, and program for selectively merging partial objects |
US6449328B1 (en) | 2000-05-15 | 2002-09-10 | International Business Machines Corporation | Method and apparatus for shifting data from registers |
US7394568B1 (en) | 2000-05-15 | 2008-07-01 | Infoprint Solutions Company Llc | Method, system, and logic for selecting pixel data from multiple objects |
US6961134B1 (en) | 2000-05-15 | 2005-11-01 | International Business Machines Corporation | Method, system, and logic using multiplexers to select data for pixels from multiple objects |
US7287226B2 (en) * | 2000-12-06 | 2007-10-23 | Microsoft Corporation | Methods and systems for effecting video transitions represented by bitmaps |
US6959104B2 (en) * | 2001-02-05 | 2005-10-25 | National Instruments Corporation | System and method for scanning a region using a low discrepancy sequence |
US7034831B2 (en) * | 2001-02-05 | 2006-04-25 | National Instruments Corporation | System and method for generating a low discrepancy curve in a region |
US6909801B2 (en) * | 2001-02-05 | 2005-06-21 | National Instruments Corporation | System and method for generating a low discrepancy curve on an abstract surface |
US6917710B2 (en) * | 2001-02-05 | 2005-07-12 | National Instruments Corporation | System and method for scanning a region using a low discrepancy curve |
US6950552B2 (en) * | 2001-02-05 | 2005-09-27 | National Instruments Corporation | System and method for precise location of a point of interest |
US7127100B2 (en) * | 2001-06-25 | 2006-10-24 | National Instruments Corporation | System and method for analyzing an image |
US7509241B2 (en) * | 2001-07-06 | 2009-03-24 | Sarnoff Corporation | Method and apparatus for automatically generating a site model |
US8115774B2 (en) * | 2006-07-28 | 2012-02-14 | Sony Computer Entertainment America Llc | Application of selective regions of a normal map based on joint position in a three-dimensional model |
JP5290915B2 (ja) * | 2009-09-03 | 2013-09-18 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
US8605951B2 (en) * | 2009-09-10 | 2013-12-10 | Chevron U.S.A. Inc. | Method for converting a digital image into a multi-dimensional geo-referenced data structure |
US8587583B2 (en) | 2011-01-31 | 2013-11-19 | Microsoft Corporation | Three-dimensional environment reconstruction |
US9190021B2 (en) * | 2012-04-24 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | Visual feedback during remote collaboration |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4602286A (en) * | 1982-01-15 | 1986-07-22 | Quantel Limited | Video processing for composite images |
CA1309198C (en) * | 1987-12-10 | 1992-10-20 | Carlo J. Evangelisti | Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display |
US5179641A (en) * | 1989-06-23 | 1993-01-12 | Digital Equipment Corporation | Rendering shaded areas with boundary-localized pseudo-random noise |
US5153937A (en) * | 1989-09-22 | 1992-10-06 | Ampex Corporation | System for generating anti-aliased video signal |
DE69114465T2 (de) * | 1991-01-07 | 1996-03-21 | Shima Seiki Mfg | Verfahren und Einrichtung zur Aufbereitung und Erzeugung von Videobildern. |
GB9109999D0 (en) * | 1991-05-09 | 1991-07-03 | Quantel Ltd | Improvements in or relating to keying systems and methods for television image processing |
US5339387A (en) * | 1991-10-24 | 1994-08-16 | Abekas Video Systems, Inc. | Planar color gradients constructed as an arbitrary function of a distance function from an arbitrary 2-D curvilinear function |
DE69216207T2 (de) * | 1991-10-30 | 1997-04-17 | Fujitsu Ltd | Farbeinstellung zur Glättung der Grenzen zwischen Farbbildern |
WO1993013489A1 (en) * | 1991-12-24 | 1993-07-08 | Sierra Semiconductor Corporation | An anti-aliasing method for polynomial curves using integer arithmetics |
US5644364A (en) * | 1993-04-16 | 1997-07-01 | Avid Technology, Inc. | Media pipeline with multichannel video processing and playback |
US5420971A (en) * | 1994-01-07 | 1995-05-30 | Panasonic Technologies, Inc. | Image edge finder which operates over multiple picture element ranges |
-
1996
- 1996-03-11 US US08/613,283 patent/US5754180A/en not_active Expired - Lifetime
-
1997
- 1997-03-05 AU AU20680/97A patent/AU729981B2/en not_active Ceased
- 1997-03-05 WO PCT/US1997/003436 patent/WO1997034261A1/en active IP Right Grant
- 1997-03-05 JP JP53267397A patent/JP3862759B2/ja not_active Expired - Fee Related
- 1997-03-05 DE DE69713164T patent/DE69713164T2/de not_active Expired - Fee Related
- 1997-03-05 EP EP97908884A patent/EP0976108B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1997034261A1 (en) | 1997-09-18 |
DE69713164T2 (de) | 2003-01-23 |
AU2068097A (en) | 1997-10-01 |
JP2000507011A (ja) | 2000-06-06 |
US5754180A (en) | 1998-05-19 |
AU729981B2 (en) | 2001-02-22 |
EP0976108A1 (en) | 2000-02-02 |
EP0976108B1 (en) | 2002-06-05 |
DE69713164D1 (de) | 2002-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3862759B2 (ja) | 可変エッジ特性を有する構造化オブジェクトを用いて画像を定義し製作するためのコンピュータ・システムおよびプロセス | |
US5369739A (en) | Apparatus and method for generating point sample masks in a graphics display system | |
Agoston et al. | Computer graphics and geometric modeling | |
US4475104A (en) | Three-dimensional display system | |
US4609917A (en) | Three-dimensional display system | |
US5754183A (en) | Image processing apparatus and method for producing pixel data in dependence upon the shape of a sectional line extending between boundary lines of an object | |
US6677944B1 (en) | Three-dimensional image generating apparatus that creates a three-dimensional model from a two-dimensional image by image processing | |
US5704024A (en) | Method and an apparatus for generating reflection vectors which can be unnormalized and for using these reflection vectors to index locations on an environment map | |
Doucet et al. | Computer-aided molecular design: Theory and applications | |
US7724258B2 (en) | Computer modeling and animation of natural phenomena | |
US8035641B1 (en) | Fast depth of field simulation | |
US7924278B2 (en) | Real-time GPU rendering of piecewise algebraic surfaces | |
US6292192B1 (en) | System and method for the direct rendering of curve bounded objects | |
US7173622B1 (en) | Apparatus and method for generating 3D images | |
JPH04287292A (ja) | トリミングされたパラメトリック面のレンダリング方法及び装置 | |
US20060256112A1 (en) | Statistical rendering acceleration | |
US6784896B1 (en) | Colorization of a gradient mesh | |
WO1992021096A1 (en) | Image synthesis and processing | |
US6906718B1 (en) | Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics | |
Szirmay-Kalos | Theory of three-dimensional computer graphics | |
JP3352181B2 (ja) | 画像データ処理方法および装置 | |
US6731300B2 (en) | Efficient anti-aliased dot rasterization | |
JPH06215152A (ja) | 画像データ処理方法及び装置 | |
US5220650A (en) | High speed method for rendering antialiased vectors | |
JP4311877B2 (ja) | 副標本化テクスチャ端縁部のアンチエイリアシング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031210 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20031210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060927 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |