(57)【特許請求の範囲】
【請求項１】
複数の画像を合成演算子を使用して組み合わせて合成画像を形成し、形成された合成画像にカラーマップを適用して合成画像中の色をリマッピングし、リマッピングされた新たな画像を形成する表式ツリーを最適化する画像処理方法であって、
取得手段が表式ツリーを取得する工程と、
更新手段が、前記表式ツリー内を走査して前記カラーマップを検索し、検索した前記カラーマップを、前記複数の画像のそれぞれのサブツリーに分配することで前記表式ツリーを更新する更新工程と、
評価手段が、前記更新工程による更新コストの大小評価を行う評価工程と、
実行手段が、前記評価工程による大小比較の結果、前記更新コストが小さくないと評価された場合には前記更新工程で更新された表式ツリーを破棄し、小さいと評価された場合には前記更新工程で更新された表式ツリーを実行する工程と
を備えることを特徴とする画像処理方法。
【請求項２】
複数の画像を合成演算子を使用して組み合わせて合成画像を形成し、形成された合成画像にカラーマップを適用して合成画像中の色をリマッピングし、リマッピングされた新たな画像を形成する表式ツリーを最適化する画像処理方法であって、
取得手段が表式ツリーを取得する工程と、
更新手段が、前記表式ツリー内を走査して前記カラーマップを検索し、ｆをカラーマップ、ｉｎを合成演算子、ｃ１，ｓ２を色、α１，α２を不透明度とすると、ｆ（（ｃ1、α1）ｉｎ（ｃ2、α2））をｆ（ｃ1、α1）ｉｎ（ｃ2、α2）に修正することで、検索した前記カラーマップを、前記複数の画像のそれぞれのサブツリーに分配して、前記表式ツリーを更新する更新工程と、
評価手段が、前記更新工程による更新コストの大小評価を行う評価工程と、
実行手段が、前記評価工程による大小比較の結果、前記更新コストが小さくないと評価された場合には前記更新工程で更新された表式ツリーを破棄し、小さいと評価された場合には前記更新工程で更新された表式ツリーを実行する工程と
を備えることを特徴とする画像処理方法。
【請求項３】
複数の画像を合成演算子を使用して組み合わせて合成画像を形成し、形成された合成画像にカラーマップを適用して合成画像中の色をリマッピングし、リマッピングされた新たな画像を形成する表式ツリーを最適化する画像処理方法であって、
取得手段が表式ツリーを取得する工程と、
更新手段が、前記表式ツリー内を走査して前記カラーマップを検索し、ｆをカラーマップ、ｏｕｔを合成演算子、ｃ１，ｓ２を色、α１，α２を不透明度とすると、ｆ（（ｃ1、α1）ｏｕｔ（ｃ2、α2））をｆ（ｃ1、α1）ｏｕｔ（ｃ2、α2）に修正することで、検索した前記カラーマップを、前記複数の画像のそれぞれのサブツリーに分配して、前記表式ツリーを更新する更新工程と、
評価手段が、前記更新工程による更新コストの大小評価を行う評価工程と、
実行手段が、前記評価工程による大小比較の結果、前記更新コストが小さくないと評価された場合には前記更新工程で更新された表式ツリーを破棄し、小さいと評価された場合には前記更新工程で更新された表式ツリーを実行する工程と
を備えることを特徴とする画像処理方法。
【請求項４】
複数の画像を合成演算子を使用して組み合わせて合成画像を形成し、形成された合成画像にカラーマップを適用して合成画像中の色をリマッピングし、リマッピングされた新たな画像を形成する表式ツリーを最適化する画像処理方法であって、
取得手段が表式ツリーを取得する工程と、
更新手段が、前記表式ツリー内を走査して前記カラーマップを検索し、ｆをカラーマップ、ｃ１，ｓ２を色、α１，α２を不透明度とすると、ｆ（（ｃ1、α1）〜（ｃ2、α2））をｆ（ｃ1、α1）〜ｆ（ｃ2、α2）に修正することで、検索した前記カラーマップを、前記複数の画像のそれぞれのサブツリーに分配して、前記表式ツリーを更新する更新工程と、
評価手段が、前記更新工程による更新コストの大小評価を行う評価工程と、
実行手段が、前記評価工程による大小比較の結果、前記更新コストが小さくないと評価された場合には前記更新工程で更新された表式ツリーを破棄し、小さいと評価された場合には前記更新工程で更新された表式ツリーを実行する工程と
を備えることを特徴とする画像処理方法。
【請求項５】
複数の画像を合成演算子を使用して組み合わせて合成画像を形成し、形成された合成画像にカラーマップを適用して合成画像中の色をリマッピングし、リマッピングされた新たな画像を形成する表式ツリーを最適化する画像処理装置であって、
前記表式ツリー内を走査して前記カラーマップを検索し、検索した前記カラーマップを、前記複数の画像のそれぞれのサブツリーに分配することで前記表式ツリーを更新する更新手段と、
前記更新手段による更新コストの大小評価を行う評価手段と、
前記評価手段による大小比較の結果、前記更新コストが小さくないと評価された場合には前記更新手段で更新された表式ツリーを破棄し、小さいと評価された場合には前記更新手段で更新された表式ツリーを実行する手段と
を備えることを特徴とする画像処理装置。
【請求項６】
複数の画像を合成演算子を使用して組み合わせて合成画像を形成し、形成された合成画像にカラーマップを適用して合成画像中の色をリマッピングし、リマッピングされた新たな画像を形成する表式ツリーを最適化する画像処理装置であって、
前記表式ツリー内を走査して前記カラーマップを検索し、ｆをカラーマップ、ｉｎを合成演算子、ｃ１，ｓ２を色、α１，α２を不透明度とすると、ｆ（（ｃ1、α1）ｉｎ（ｃ2、α2））をｆ（ｃ1、α1）ｉｎ（ｃ2、α2）に修正することで、検索した前記カラーマップを、前記複数の画像のそれぞれのサブツリーに分配して、前記表式ツリーを更新する更新手段と、
前記更新手段による更新コストの大小評価を行う評価手段と、
前記評価手段による大小比較の結果、前記更新コストが小さくないと評価された場合には前記更新手段で更新された表式ツリーを破棄し、小さいと評価された場合には前記更新手段で更新された表式ツリーを実行する手段と
を備えることを特徴とする画像処理装置。
【請求項７】
複数の画像を合成演算子を使用して組み合わせて合成画像を形成し、形成された合成画像にカラーマップを適用して合成画像中の色をリマッピングし、リマッピングされた新たな画像を形成する表式ツリーを最適化する画像処理装置であって、
前記表式ツリー内を走査して前記カラーマップを検索し、ｆをカラーマップ、ｏｕｔを合成演算子、ｃ１，ｓ２を色、α１，α２を不透明度とすると、ｆ（（ｃ1、α1）ｏｕｔ（ｃ2、α2））をｆ（ｃ1、α1）ｏｕｔ（ｃ2、α2）に修正することで、検索した前記カラーマップを、前記複数の画像のそれぞれのサブツリーに分配して、前記表式ツリーを更新する更新手段と、
前記更新手段による更新コストの大小評価を行う評価手段と、
前記評価手段による大小比較の結果、前記更新コストが小さくないと評価された場合には前記更新手段で更新された表式ツリーを破棄し、小さいと評価された場合には前記更新手段で更新された表式ツリーを実行する手段と
を備えることを特徴とする画像処理装置。
【請求項８】
複数の画像を合成演算子を使用して組み合わせて合成画像を形成し、形成された合成画像にカラーマップを適用して合成画像中の色をリマッピングし、リマッピングされた新たな画像を形成する表式ツリーを最適化する画像処理装置であって、
前記表式ツリー内を走査して前記カラーマップを検索し、ｆをカラーマップ、ｃ１，ｓ２を色、α１，α２を不透明度とすると、ｆ（（ｃ1、α1）〜（ｃ2、α2））をｆ（ｃ1、α1）〜ｆ（ｃ2、α2）に修正することで、検索した前記カラーマップを、前記複数の画像のそれぞれのサブツリーに分配して、前記表式ツリーを更新する更新手段と、
前記更新手段による更新コストの大小評価を行う評価手段と、
前記評価手段による大小比較の結果、前記更新コストが小さくないと評価された場合には前記更新手段で更新された表式ツリーを破棄し、小さいと評価された場合には前記更新手段で更新された表式ツリーを実行する手段と
を備えることを特徴とする画像処理装置。
【請求項９】
コンピュータを、請求項５乃至８の何れか１項に記載の画像処理装置が有する各手段として機能させるためのコンピュータプログラムを格納した、コンピュータ読み取り可能なプログラム記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデジタルコンピュータシステムにおける画像の生成に関し、特に、最終の合成(composite)画像を形成するための複数の画像の合成に関する。
【０００２】
【従来の技術】
複数の部分から合成(compositing)によってデジタル画像を生成することは良く知られており、T. Porter及びT. Duffの「Compositing Digital Images」（Computer Graphics、第１８巻、第３号,１９８４年７月刊,２５３から２５９ページ）の中で論じられている。アルファチャネルの不透明度値に依存する合成技法は、ますます広く使用されるようになってきた。
【０００３】
【発明が解決しようとする課題】
残念なことに、合成すべき画像は画素ごとに合成しなければならない多数の画素を含んでいる場合が多い。表示装置の分解能が向上し、フルカラー画像が使用されるようになるにつれて、画像を合成する際に要求される計算の複雑さの度合いは、画像分解能の略二乗の割合で増す。更に、画像の生成に使用される計算用ハードウェア装置の複雑さが増すにつれて、より一層複雑な画像を生成しようとし、その結果、複雑さの度合いもアップする。
【０００４】
複数の部分から画像を生成することは、画像生成の構造を一連の演算子を使用して記述する表式ツリー（木）(expression tree)により表現できる場合が多い。その後、その表式ツリーは評価されて、即ち、対応する画像へとレンダリングされる。このとき、典型的には、ラスタイメージプロセッサ（頭文字をとって「ＲＩＰ」）として知られるようになった装置における「ラスタライジング」の方法を使用する。画像を表式ツリーの形で表現することにより、実行対象の表式ツリーについて多数の最適化が可能となる。表式ツリーの使用及び実行できる最適化のいくつかを良く理解するために、米国特許出願第０８／５０５，４８０号（発明の名称：「Efficient Methods for the Compositing of Graphical Elements」）、並びに対応オーストラリア特許第ＡＵ_Ａ_２３３６２／９５を参照のこと。
【０００５】
本発明の目的は、画像合成による画像の生成に際に使用可能な最適化方法、特に、表式ツリーの最適化方法を提供することである。
【０００６】
【課題を解決するための手段】
本発明の第１の面によれば、複数の画像を合成演算子を使用して組み合わせて合成画像を形成し、形成された合成画像にカラーマップを適用して合成画像中の色をリマッピングし、リマッピングされた新たな画像を形成する表式ツリーを最適化する画像処理方法であって、
取得手段が表式ツリーを取得する工程と、
更新手段が、前記表式ツリー内を走査して前記カラーマップを検索し、検索した前記カラーマップを、前記複数の画像のそれぞれのサブツリーに分配することで前記表式ツリーを更新する更新工程と、
評価手段が、前記更新工程による更新コストの大小評価を行う評価工程と、
実行手段が、前記評価工程による大小比較の結果、前記更新コストが小さくないと評価された場合には前記更新工程で更新された表式ツリーを破棄し、小さいと評価された場合には前記更新工程で更新された表式ツリーを実行する工程と
を備えることを特徴とする。
【００１２】
【発明の実施の形態】
本発明の範囲内に含まれると思われる実施の形態は他にもあるが、以下、単なる例として、添付の図面を参照しながら本発明の好ましい形態を説明する。
【００１３】
好ましい実施例においては、画像の表式ツリー型表現に対して何回かの最適化を実行する。それらの最適化は、主に、画像中のカラーマッピングの使用に関するものである。
【００１４】
そこで、まず初めに、単純な形態の表式ツリーについて説明する。これは、表式ツリーを介して画像を生成するプロセスを例示するのに有用であろう。そこで図１を参照すると、画像合成プロセスの一例が示されている。この例では、円３のエリア内に定義された初期画像１と、正方形４のエリア内に定義された初期画像２という２つの画像を合成演算子「over」を使用して組み合わせ、画像１を画像２の「上に重ねて（over）」置くという効果を発生させて最終画像５を形成する。その後、この画像にカラーマッピングを適用して、画像中の色をリマッピングし、新たな画像６を形成する。
【００１５】
図２には、図１の最終画像６に対応する単純な表式ツリー１０が示されている。表式ツリー１０は、２つの画像（即ち、「over」演算子を使用して組み合わされるべき円と正方形）と、色をリマッピングするためのカラーリマッピング機能の使用とから成る。「over」演算子の使用は、先に引用した参考文献の中で説明されている。一般的には、表式ツリー１０中のリーフ（葉）節点(leaf node)は図形プリミティブ(graphics primitives)を表現し、二進節点(binary nodes)は合成演算子(compositing operators)を表現し、単項節点(unary nodes)はカラーマッピング、鮮鋭化、ぼかし、フィルタリングなどの演算を表現する。
【００１６】
カラーマッピング演算に関していえば、カラーマッピングは色に関わる数学的に指定された変換である。
【００１７】
［数１］
0004355394.tif 000002
...(EQ. a)
【００１８】
なお、色は典型的には三原色空間で指定される。ヒストグラム等化は良く知られた例である。多くの場合、カラーマッピングは同じ色の表現の１つの色空間から別の色空間への変換である。
アルファチャネル合成に関しては、下式のように、変換にアルファチャネル（不透明度としても知られている）を含めると有用である場合もある。
【００１９】
［数２］
0004355394.tif 000003
...(EQ. b)
【００２０】
原理的には、このマッピングは事前乗算済み(premultiplied)又は未乗算(unpremultiplied)アルファチャネルデータによって定義できる。説明の方法は、まず、アルファチャネルによって定義されておらず、且つ、下式の未乗算アルファチャネルに作用するカラーマッピングに適用される。
【００２１】
［数３］
0004355394.tif 000004
...(EQ. c)
【００２２】
表現ツリーにおける節点の「評価」（即ち、演算を実行し、結果画像を生成すること）は、実行時間のコストを含む。実行時間は、演算の性質と、その演算を実現するために使用されるアルゴリズムとによって決まり、通常、演算に関連する画素の数にほぼ比例するものとなる。同様に、メモリのコストも、使用されるアルゴリズムと関連する画素数とに応じて発生する。
好ましい実施例では、カラーマッピングをオペランド表式ツリーへ適用する際の最適化のために、
【００２３】
(i) 最終出力が同一に保持され、且つ
(ii) 結果が低い実行コストで済む
範囲内でカラーマッピング演算をツリーの中に分配するための技法を使用する。
このツリーの任意のポイントにおいて、以下に例示するように、３つの基本ケースの１つを適用することができる。
【００２４】
１．プリミティブ（リーフ）節点
【００２５】
プリミティブ節点の場合、そのプリミティブ節点のカラーマッピングを直接適用しようとする。そのプリミティブが均一な色を有する（例えば、黒色テキスト）場合、レンダリングされる画素（即ち、テキストを形成している黒色画素）に対して複数の同一の演算を実行するより、１つの色に対して1回のカラーマッピング演算を実行する方が必ずコストを少なくする。適切な最適化の例を図３に示す。
【００２６】
プリミティブの色が２色の混合である場合には、以下の式を少なくとも許容しうる正確度をもって満たすならば、その２つの色にカラーマッピングを適用することができる。
【００２７】
［数４］
0004355394.tif 000005
...(EQ. 1)
【００２８】
プリミティブが多くの色を含む場合（例えば、多数の画素から構成される画像）、各画素を変換することは通常は有効ではなく、最適化は特定の状況に応じて進行する。
【００２９】
２．単項節点
【００３０】
単項節点の場合、３つの状況のうち１つが可能である。
【００３１】
即ち、カラーマッピングを単項節点により表現される演算と組み合わせて１つの演算にするか、あるいは、その演算順序を逆にするか、あるいは、変更が全く不可能かのいずれかである。変更が全く不可能である例は、単項節点が画像鮮鋭化演算を表現している場合である。２つの演算の順序を組み合わせることができる例は、別のカラーマッピングであり、この場合、２つのマッピングを組み合わせても良い。これは、コストを伴う場合も、伴わない場合もある演算であり、相対コストを比較しなければならない。２つの演算を逆にできる例は、式（１）を満たすカラーマッピング及びぼかし演算を含む。また、２つのカラーマッピングが逆であり、共に一度に削除しうるというケースも時には起こる。
【００３２】
図４には、２つのカラーマッピング１２,１３を組み合わせて、１つのカラーマッピング１５を形成するプロセスを示す。図５には、ＲＧＢ色空間からＬ＊Ａ＊Ｂ＊カラーマッピングへの変換を含む２つのカラーマッピング１８,１９を削除するように表現ツリーを最適化する例を示す。図６には、カラーマッピングを表式ツリーに沿って、最終出力に大きな影響を及ぼさないぼかし機能を通過して移動する例を示す。
【００３３】
３．二進(binary)節点
【００３４】
二進節点の振る舞いには、より多くの変化が起こりうる。二進演算子の中には、条件によって、例えば、演算が下式のように分配的(distributive)である場合に、カラーマッピングを分配できるものがある。
【００３５】
［数５］
0004355394.tif 000006
...(EQ. 2)
【００３６】
その一方で、カラーマッピングを分配できないものもある。例えば、「over」演算子は、カラーマッピングが(EQ. 1）を満たすか、左オペランドが不透明であるか、又は２つのオペランドが重なり合わない場合には(EQ. 3）を満たす。
２つの合成演算子「in」及び「out」も、無条件で、
【００３７】
［数６］
0004355394.tif 000007
...(EQ’s. 3, 4)
【００３８】
をそれぞれ満たす。
次に図７Aから図７Cを参照すると、図７Aには、初期表式ツリー２０が示されている。この表式ツリーは、まず、over演算子２２を通過してカラーマッピングを分配することによって図７Bの表式ツリー２１を形成するように最適化される。その後、図７Cに示すように、カラーマッピング２６を節点２７と組み合わせて組み合わせ節点演算２８を形成することに加えて、in演算子２４を通過してカラーマッピングを分配することにより、新たな表式ツリー２３を形成する。
従って、総体的な演算戦略を開発するに当たり、まず、画像合成ツリーを深さ方向に走査して、カラーマッピングを見出すことができる。幅方向の走査でも良い。又、カラーマッピングを見出した後、表式ツリー全体にわたりカラーマッピングを試行し、分配することも可能である。しかし、様々なサブツリー部分木(sub-tree)の中でどのような決定の組み合わせが最適の合成をもたらすかは必ずしも明らかではない。例えば、図７Aから図７Cにおいて、図示されている最終ツリー２３は、典型的には、元のツリー２０より少ない数の画素のカラーマッピングを適用することになる。ところが、何らかの理由で、カラーマッピングと背景を組み合わせることができなかったならば、その結果は最適とは言えないであろう。その場合、背景の全ての画素と、その上に重なる画像の全ての画素が処理されているであろう。元のツリー２０において、影響を受ける画素の総数は背景中の画素の数と全く同じになるであろう。「over」演算子を通過してカラーマッピングを分配するための決定をすべきときに、可能な２つのシナリオを容易には予測できないというところに困難がある。
【００３９】
以下のような認識に基づいて、上記の問題を解決する方法を得ることができる。
【００４０】
（１）カラーマッピングをプリミティブと組み合わせることが可能であれば、そのようにすることが常にコストの上で有効である。
（２）２つのカラーマッピングを合成することは（それが可能であって）、マッピングの合成コストに、その合成されたカラーマッピングを適用することのコストを加算したコストが、２つのカラーマッピングを順次適用することのコストよりも小さい場合には、コスト面で有効である。
（３）EQ. 3とEQ. 4とを適用することは、悪いとはいえず、これは更なる最適化を容易にするであろう。しかし、一般二進演算子にEQ. 2を適用するのに伴って問題が起こる。その場合、カラーマッピングを各々のオペランドに適用するための最適な（即ち、最小の）コストを計算する手続きがあれば、オペランドごとにその手続きを呼び出し、２つのコストを加算して、分配により実行しうる最良のコストを判定することが可能であろう。このコストを、二進演算子を実行した後にカラーマッピングを適用する（即ち、分配はしない）ことのコストと比較することにより、何がより最適かが判定される。
以上のポイント（１）、（２）及び（３）は、最適コストを判定する際に定義すべき再帰的手続きを規定している。しかし、二進のケースで分配のオプションを実行する場合には、その最適ツリーに到達するまでに実行した決定を知る必要がある。更に、問題の二進節点自体が、別の二進節点の左又は右のサブツリー（部分木）の中に埋め込まれていたならば、それ以前の全ての決定に加えて、問題の節点における決定をパスしなければならないであろう。カラーマッピングを分配しないことが決定されていたならば、サブツリーのコストの判定に到達した決定は総最適コストにはもはや寄与しないので、それらの決定を放棄しなければならないであろう。
【００４１】
従って、サブツリーのルート節点(root node)と、そのサブツリーに適用されるべきカラーマッピングとが与えられれば、再帰的手続きを実行することができる。この再帰的手続きは、カラーマッピングに適用すべき最適の方式と、修正後のサブツリーの中においてカラーマッピングを実行することのコストとを記述するところの、そのサブツリーに対する修正リストを返す。
【００４２】
なお、この方法は、各節点は、そのノードが表現する画像がどれだけ多数のの画素にわたって広がっているかを判定するための何らかの手段を備えているものと、想定している。例えば、先に挙げた特許出願の中で論じられている方法により、画素の広がり面積を最小限にすれば、有利であろう。
【００４３】
使用されるコストの計算方法は、単に色変換される画素の数（又は、均等な項で表される他の演算コスト）であっても良い。例えば、カラーマッピング演算を準備するための、一時記憶の量、又は走査線ごとの追加コストを加算するなどのセットアップコストを組み込んだ、より綿密なコスト確定戦略も可能である。
【００４４】
従って、好ましい実施例の総合最適化方法４０は、図８に示すように進行することができる。方法４０においては、コストは、色変換される画素の数に適用すべきカラーマッピングの画素ごとのコストを乗算したものが用いられる。ステップ４２で表式ツリーが与えられると、ステップ４４ではツリーの走査を実行する。縦型走査を推奨するが、それはこのプロセスには不可欠というものではない。この走査において節点が現れたときには、その節点がカラーマッピング節点であるか否かを判定するために、ステップ４６で、その節点を検査する。その節点がカラーマッピングでないならば、ステップ４４の走査を継続する。その節点がカラーマッピングである場合には、カラーマッピングが先のEQ. cを満たすか否かを、ステップ４８で実行する。EQ. cを満たさないならば、ステップ４４を経て走査を継続する。EQ. cを満たす場合には、コスト判定を行うためにステップ５０及び５２を実行する。図８ではステップ５０及び５２を並列して行われるものとして示しているが、これらのステップを逐次実行しても良い。更に、ステップ５０はプロセス中節点の段階で実行されても良い。ステップ５０は、現在位置でカラーマッピングから離れることのコストを判定するように機能する。ステップ５２は、カラーマッピングをサブツリーに分配することの最適コストを、この最適動作を実行するために要求される一連の修正と共に判定するために、カラーマッピングのオペランド及びカラーマッピング自体を通過して、ルーチンＣＭＤＭＣ（後述する）を呼び出すように機能する。ステップ５４では、ステップ５２で得られた「分配する」コストを、ステップ５０で得られた「離れる」コストと比較する。分配のコストの方が小さければ、ステップ５６へ進み、ツリーからカラーマッピングを削除し、修正のリストを実行する。一方、分配のコストの方が大きい場合には、修正のリストを廃棄し、ツリーは変更されないままである。いずれにせよ、ステップ４４で走査は継続される。
【００４５】
ルーチンＣＭＤＭＣを以下の擬似コードにより記述することができる。
【００４６】
0004355394.tif 000008
0004355394.tif 000009
0004355394.tif 000010
【００４７】
二進節点の取り扱いを様々な二進節点のケースとの類推によって、より高度の節点に一般化することができる。例えば、二進節点を通過してマップを分配する場合、３つの（３進）オペランド節点への分配のコストを計算し、分配しないことのコストと比較しても良い。
【００４８】
これらの最適化は、ハードウェア又はソフトウェアＲＩＰにおける表式ツリーのより効率的な評価をもたらすことができる。
【００４９】
図８の方法並びに先に挙げた数式及びルーチンＣＭＤＭＣを取り入れた本発明の好ましい実施例は、Microsoft Corporationが開発したWindows(TM)オペレーティングシステムで支援されるコンピュータアプリケーションプログラムとして実現されても良い。しかし、ここで説明する実施例は他のオペレーティングシステムにより支援されるコンピュータシステムでも実現可能であることは当業者には認識されるであろう。例えば、ＵＮＩＸ(TM)、ＯＳ／２(TM)、ＤＯＳ(TM)を実行するコンピュータシステムにおいて好ましい実施例を実行することができる。アプリケーションプログラムはユーザインタフェースと協働して又はそれから独立して動作して、表式ツリーの最適化を制御する。アプリケーションプログラムは、ホストコンピュータに直接接続する又はネットワークを介してアクセスされる１つ又は複数のプリンタにデータを送信する能力を有する。また、アプリケーションプログラムは接続するデジタル通信ネットワーク（例えば、「インターネット」）との間でデータを送受信する能力も有する。
【００５０】
図９に示すコンピュータシステム１００のような従来の汎用（ホスト）コンピュータシステムを使用して、本発明の好ましい実施例を実施することができる。この場合、先に説明し、また、その他の図面を参照して説明されるべきアプリケーションプログラムは、コンピュータシステム１００において実行されるソフトウェアとして実現される。コンピュータシステム１００はコンピュータモジュール１０１と、キーボード１０２及びマウス１０３などの入力装置と、プリンタ１１５及び表示装置１１４を含む出力装置とを具備する。変復調器（モデム）装置１１６はコンピュータモジュール１０１により、例えば、電話回線又は他の機能媒体を介して接続可能である通信ネットワーク１２０との間で通信を実行するために使用される。モデム１１６を使用してインターネットや、他のネットワークシステムへのアクセスを得ることができる。
【００５１】
コンピュータモジュール１０１は、典型的には、少なくとも１つのプロセッサユニット１０５と、例えば、半導体ランダムアクセスメモリ（ＲＡＭ）及び読み取り専用メモリ（ＲＯＭ）から形成されるメモリユニット１０６と、ビデオインタフェース１０７を含む入出力（Ｉ／Ｏ）インタフェースと、キーボード１０２及びマウス１０３、更にはオプションであるジョイスティック（図示せず）に対するＩ／Ｏインタフェース１１３と、モデム１１６用のインタフェース１０８とを含む。記憶装置１０９が設けられており、これは、典型的には、ハードディスクドライブ１１０と、フロッピーディスクドライブ１１１とを含む。ＣＤ_ＲＯＭドライブ１１２は、通常、不揮発性データ源として設けられている。コンピュータモジュール１０１のコンポーネント１０５から１１３は、典型的には、当該技術分野の当業者に知られている従来通りのコンピュータシステム１００の動作モードが実現されるように、相互結合バス１０４を介して通信する。実施例を実施できるコンピュータとしては、ＩＢＭ_ＰＣ及びそのコンパチブルのＰＣがある。米国Sun社のSparcstation及びそれに類するコンピュータシステムはそこから派生したものである。通常、好ましい実施例のアプリケーションプログラムはハードディスクドライブ１１０に常駐し、そこからプロセッサ１０５により読み取られ、実行を制御される。半導体メモリ１０６を使用して、おそらくはハードディスクドライブ１１０と協調して、プログラム及びネットワーク１２０から取り出されるデータの中間格納を行っても良い。場合によっては、アプリケーションプログラムをＣＤ_ＲＯＭ又はフロッピーディスクに符号化してユーザに供給しても良く、あるいは、ユーザがモデム装置１１６を介してアプリケーションプログラムをネットワークから読み取っても良い。
【００５２】
図１０は、本発明の別の実施例の方法２００に従ったフローチャートである。方法２００は、コンピュータシステム１００の中で先に説明したアプリケーションプログラムとして実現されても良い。
【００５３】
方法２００はステップ２０２で始まり、画像を記述する表式ツリーが提供される。ステップ２０４では、様々な節点とそれらの形態（単項、二進など）を識別するために、表式ツリーの構造を解析する。ステップ２０６では、表式ツリーの演算の効率を判定する。
【００５４】
次のステップ２０８においては、ツリーのより効率的な演算を取り出すことができるか否かを判定するために、ツリーの演算の評価を行う。そのような演算を取り出すことができなければ、制御はステップ２１４へ進み、表式ツリーをレンダリングする。
【００５５】
より効率的な演算を取り出すことができる場合には、制御はステップ２１０へ進み、元のツリーと、より効率的な演算に従ったツリーの出力との一致、不一致を判定する。２つの出力の相違が所定の量を超えている場合は、ステップ２１４へ進み、元のツリーをレンダリングする。
【００５６】
２つの出力がほぼ等価（即ち、相違が所定の量より少ない）であるか又は同一である場合には、ステップ２１２で、元の表式ツリーをより効率的な動作のツリーに対応する形態に修正する。次にステップ２１４へ進み、修正後の表式ツリーをレンダリングする。
【００５７】
特定の実施例で示した本発明に対し、本発明の広い意味での趣旨から逸脱することなく数多くの変形及び／又は変更を実施しうることは当業者には理解されるであろう。従って、上記の実施例はあらゆる点で単なる例であり、限定的な意味を持たないとみなされるべきである。
【図面の簡単な説明】
【図１】  合成プロセスの例を示す図。
【図２】  図１の合成プロセスに対応する表式ツリーを示す図。
【図３】  表式ツリーに適用することができる様々なカラーマッピング最適化を示す図。
【図４】  表式ツリーに適用することができる様々なカラーマッピング最適化を示す図。
【図５】  表式ツリーに適用することができる様々なカラーマッピング最適化を示す図。
【図６】  表式ツリーに適用することができる様々なカラーマッピング最適化を示す図。
【図７Ａ】  表式ツリーに適用することができる様々なカラーマッピング最適化を示す図。
【図７Ｂ】  表式ツリーに適用することができる様々なカラーマッピング最適化を示す図。
【図７Ｃ】  表式ツリーに適用することができる様々なカラーマッピング最適化を示す図。
【図８】  好ましい実施例の方法を示すフローチャート。
【図９】  好ましい実施例を実行しうるコンピュータシステムの概略ブロック線図。
【図１０】  別の実施例の方法を示すフローチャート。
【図１】
0004355394.tif 000011
【図２】
0004355394.tif 000012
【図３】
0004355394.tif 000013
【図４】
0004355394.tif 000014
【図５】
0004355394.tif 000015
【図６】
0004355394.tif 000016
【図７Ａ】
0004355394.tif 000017
【図７Ｂ】
0004355394.tif 000018
【図７Ｃ】
0004355394.tif 000019
【図８】
0004355394.tif 000020
【図９】
0004355394.tif 000021
【図１０】
0004355394.tif 000022