(57)【要約】【課題】２つ以上の図形オブジェクトを重ねて合成する際に、低負荷の処理で各図形オブジェクトを高画質で半透明表示させる。【解決手段】描画パターン取得部３２は、所定の数値列から順に生成した数値と、図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターン２３を取得する。描画処理部３３は、取得された描画パターン２３に基づいて新たな図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行う。ここで、描画処理部３３は、図形オブジェクト同士が重なって半透明表示される場合には、重なる各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる数値列から生成された描画パターン２３を使用して描画の判定を行う。【選択図】　　　　図１
2004005285.tif 000002
【特許請求の範囲】
【請求項１】
背景上に２つ以上の図形オブジェクトを合成して描画する画像処理装置において、
所定の数値列から順次生成した数値と、前記図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターンを取得する描画パターン取得手段と、
新たな前記図形オブジェクトを描画するごとに、取得された前記描画パターンに基づいて新たな前記図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行う描画処理手段と、
を有し、前記描画処理手段は、前記図形オブジェクト同士が重なって半透明表示される場合に、重なる前記各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる前記数値列から生成された前記描画パターンを使用して描画の判定を行うことを特徴とする画像処理装置。
【請求項２】
前記描画処理手段において、前記図形オブジェクト同士が重なる場合に使用される前記描画パターンの基となる前記各数値列は、前記相互相関係数の絶対値が０．３５以下であることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記各数値列は疑似雑音符号列であることを特徴とする請求項２記載の画像処理装置。
【請求項４】
複数の異なる前記描画パターンをあらかじめ保持して、前記描画パターン取得手段の要求に応じて前記描画パターンを出力する描画パターン保持手段をさらに有することを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記描画パターン保持手段は、前記アルファ値の取り得る所定の各段階において、異なる前記数値列を基に生成された複数の前記描画パターンを保持することを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記描画処理手段における新たな前記図形オブジェクトの描画のたびに異なる前記数値列を生成する数値列生成手段と、
前記数値列生成手段によって生成された前記数値列に基づく数値と、前記図形オブジェクトの前記アルファ値とを画素ごとに順に比較した結果を基に前記描画パターンを生成して前記描画パターン取得手段に出力する描画パターン生成手段と、
をさらに有することを特徴とする請求項１記載の画像処理装置。
【請求項７】
前記描画パターンは、前記数値列から順次生成した前記数値がとる値域に前記アルファ値の値域を正規化した場合に、各画素について、正規化された前記アルファ値が前記数値以上のときに新たな前記図形オブジェクトを描画することを示し、正規化された前記アルファ値が前記数値未満のときに前記図形オブジェクトの非描画を示すことを特徴とする請求項１記載の画像処理装置。
【請求項８】
背景上に２つ以上の図形オブジェクトを合成して描画する画像処理方法において、
所定の数値列から順次生成した数値と、前記図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターンを取得し、
新たな前記図形オブジェクトを描画するごとに、取得された前記描画パターンに基づいて新たな前記図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行い、前記図形オブジェクト同士が重なって半透明表示される場合には、重なる前記各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる前記数値列から生成された前記描画パターンを使用して描画の判定を行う、
ことを特徴とする画像処理方法。
【請求項９】
背景上に２つ以上の図形オブジェクトを合成して描画する処理をコンピュータに実行させる画像処理プログラムにおいて、
所定の数値列から順次生成した数値と、前記図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターンを取得し、
新たな前記図形オブジェクトを描画するごとに、取得された前記描画パターンに基づいて新たな前記図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行い、前記図形オブジェクト同士が重なって半透明表示される場合には、重なる前記各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる前記数値列から生成された前記描画パターンを使用して描画の判定を行う、
処理を前記コンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、背景上に２つ以上の図形オブジェクトを合成して描画するための画像処理装置、画像処理方法および画像処理プログラムに関し、特に、２つ以上の図形オブジェクト同士が重なる場合に対応した画像処理装置、画像処理方法および画像処理プログラムに関する。
【０００２】
【従来の技術】
近年、画像のデジタル処理技術の発達に伴い、放送等の業務用画像処理装置の他、家庭用のＰＣ（パーソナルコンピュータ）を用いても手軽に画像の編集や合成を行うことが可能となっている。
【０００３】
画像を合成する場合に、複数の図形オブジェクトを互いに半透明な状態で同時に表示させることがよく行われる。このような半透明描画では、アルファブレンディングやディザ法といった手法が一般的に用いられている。アルファブレンディングでは、図形オブジェクトａに対して合成時の透明度を示すアルファ値（α：０≦α≦１）を与える。そして、この図形オブジェクトａを背景画像ｂ上に合成する場合に、各ピクセルの色要素（Ｒ、Ｇ、Ｂ）についてそれぞれ次の式（１）、（２）および（３）を適用することにより、半透明描画を実現する。
【０００４】
【数１】
Ｒ＝Ｒ（ａ）・α＋Ｒ（ｂ）・（１−α）　　　　　　　　　　　………（１）
Ｇ＝Ｇ（ａ）・α＋Ｇ（ｂ）・（１−α）　　　　　　　　　　　………（２）
Ｂ＝Ｂ（ａ）・α＋Ｂ（ｂ）・（１−α）　　　　　　　　　　　………（３）
ただし、Ｒ（ａ）、Ｇ（ａ）およびＢ（ａ）はそれぞれ図形オブジェクトａ上の当該ピクセルの各色要素、Ｒ（ｂ）、Ｇ（ｂ）およびＢ（ｂ）はそれぞれ背景画像ｂ上の当該ピクセルの各色要素を示す。
【０００５】
しかし、このアルファブレンディングを用いた半透明描画処理では多くの乗除算演算が行われるため、高い処理能力が必要となる。このため、ソフトウェアによる高速な半透明描画を行う場合、特に動画表示やアニメーション表示を行う場合には、ディザ法が用いられることが多い。
【０００６】
従来のディザ法では、画像表示面を例えば４×４画素や１６×１６画素といった範囲で区切り、それぞれの範囲内で規則的なパターンを設定する。そして、このパターンによるしきい値と図形オブジェクトのアルファ値とを比較して、その大小を基に、重なり合うピクセルについて、図形オブジェクトのピクセルを描画するか、背景画像のピクセルを描画するか、いずれの描画も行わないかについて判定する。これにより、全体として半透明の表示を擬似的に実現している。
【０００７】
【発明が解決しようとする課題】
しかし、従来のディザ法では、０と１との間のアルファ値を有する図形オブジェクトが２つ以上重なった場合、互いの位置によって各パターンの極端な一致状態や完全な不一致状態等が発生する。例えば、各パターンが一致している場合、最終的に生成される画像では、２つの図形オブジェクトが存在するにも関わらず、１つの図形オブジェクトしか見ることができないという現象が発生することがある。逆に各パターンが完全に不一致である場合には、アルファ値による条件では本来、背景画像の一部が見えるはずであるにも関わらず、図形オブジェクトに隠れてしまって背景画像が見えないという現象が発生することがある。特に、これらの図形オブジェクトが相対的に移動している場合には、移動に応じた上記現象の発生によりフリッカー（ちらつき）が発生して、正常な表示ができなくなり、画質が劣化してしまう。
【０００８】
本発明はこのような課題に鑑みてなされたものであり、２つ以上の図形オブジェクトを重ねて合成する際に、低負荷の処理で各図形オブジェクトを高画質で半透明表示させることが可能な画像処理装置を提供することを目的とする。
【０００９】
また、本発明の他の目的は、２つ以上の図形オブジェクトを重ねて合成する際に、低負荷の処理で各図形オブジェクトを高画質で半透明表示させることが可能な画像処理方法を提供することである。
【００１０】
さらに、本発明の他の目的は、２つ以上の図形オブジェクトを重ねて合成する処理をコンピュータに実行させる際に、低負荷の処理で各図形オブジェクトを高画質で半透明表示させることが可能な画像処理プログラムを提供することである。
【００１１】
【課題を解決するための手段】
本発明では上記課題を解決するために、背景上に２つ以上の図形オブジェクトを合成して描画する画像処理装置において、所定の数値列から順次生成した数値と、前記図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターンを取得する描画パターン取得手段と、新たな前記図形オブジェクトを描画するごとに、取得された前記描画パターンに基づいて新たな前記図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行う描画処理手段とを有し、前記描画処理手段は、前記図形オブジェクト同士が重なって半透明表示される場合に、重なる前記各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる前記数値列から生成された前記描画パターンを使用して描画の判定を行うことを特徴とする画像処理装置が提供される。
【００１２】
ここで、描画パターン取得手段は、所定の数値列から順に生成した数値と、図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターンを取得する。描画処理手段は、取得された描画パターンに基づいて新たな図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行う。このように、描画パターンを用いて図形オブジェクトの描画の可不可を判定して合成割合を決定するため、処理負荷の大きい乗除算が必要とならない。また、描画処理手段は、図形オブジェクト同士が重なって半透明表示される場合に、重なる各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる数値列から生成された描画パターンを使用して描画の判定を行う。従って、描画後の各図形オブジェクトの表示率をアルファ値に近づけることができる。
【００１３】
また、本発明では、背景上に２つ以上の図形オブジェクトを合成して描画する画像処理方法において、所定の数値列から順次生成した数値と、前記図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターンを取得し、新たな前記図形オブジェクトを描画するごとに、取得された前記描画パターンに基づいて新たな前記図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行い、前記図形オブジェクト同士が重なって半透明表示される場合には、重なる前記各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる前記数値列から生成された前記描画パターンを使用して描画の判定を行うことを特徴とする画像処理方法が提供される。
【００１４】
このような画像処理方法では、所定の数値列から順次生成した数値と、図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターンを取得し、新たな図形オブジェクトを描画するごとに、取得された描画パターンに基づいて新たな図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行う。このように、描画パターンを用いて図形オブジェクトの描画の可不可を判定して合成割合を決定するため、処理負荷の大きい乗除算が必要とならない。また、描画の判定時において、図形オブジェクト同士が重なって半透明表示される場合には、重なる各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる数値列から生成された描画パターンを使用して描画の判定を行う。従って、描画後の各図形オブジェクトの表示率をアルファ値に近づけることができる。
【００１５】
さらに、本発明では、背景上に２つ以上の図形オブジェクトを合成して描画する処理をコンピュータに実行させる画像処理プログラムにおいて、所定の数値列から順次生成した数値と、前記図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターンを取得し、新たな前記図形オブジェクトを描画するごとに、取得された前記描画パターンに基づいて新たな前記図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行い、前記図形オブジェクト同士が重なって半透明表示される場合には、重なる前記各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる前記数値列から生成された前記描画パターンを使用して描画の判定を行う処理を前記コンピュータに実行させることを特徴とする画像処理プログラムが提供される。
【００１６】
このような画像処理プログラムを実行することにより、コンピュータは画像処理装置として機能する。この画像処理装置では、所定の数値列から順次生成した数値と、図形オブジェクトの合成時の透明度を示すアルファ値とを画素ごとに順に比較した結果を基に生成された描画パターンを取得し、新たな図形オブジェクトを描画するごとに、取得された描画パターンに基づいて新たな図形オブジェクトの各画素またはそれ以前に描画されていた画像のいずれかを描画するか否かを判定して描画を行う。このように、描画パターンを用いて図形オブジェクトの描画の可不可を判定して合成割合を決定するため、処理負荷の大きい乗除算が必要とならない。また、描画の判定時において、図形オブジェクト同士が重なって半透明表示される場合には、重なる各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる数値列から生成された描画パターンを使用して描画の判定を行う。従って、描画後の各図形オブジェクトの表示率をアルファ値に近づけることができる。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の実施の形態例である画像処理装置の構成を示す機能ブロック図である。
【００１８】
図１に示す画像処理装置１は、背景画像データ２１、図形オブジェクトデータ２２および描画パターン２３等を記憶する記憶部２と、各種の制御処理を行う制御処理部３と、生成される画像データを一時的に記憶する画像メモリ４と、生成された画像データを基にして画像表示のための処理を行うグラフィック処理部５と、外部から画像データ等の入力を受ける外部入力Ｉ／Ｆ６によって構成される。
【００１９】
記憶部２に記憶された背景画像データ２１は、画像合成時の背景となる画像のデータである。図形オブジェクトデータ２２は、背景画像の上に合成される画像のデータであり、例えば図形の形状や色、その位置情報等により構成される。描画パターン２３は、後述するように、所定の数値列を基にして合成時における画素ごとの描画・非描画を判定するために生成され、例えば“１”と“０”で構成される数値パターンとして実現される。この描画パターン２３は、複数の異なる数値列を基にあらかじめ複数生成されて記憶部２に記憶される。なお、背景画像データ２１および図形オブジェクトデータ２２は、いずれも静止画像あるいは動画像のデータでもよい。記憶部２は、これらのデータを制御処理部３からの要求に応じて出力する。
【００２０】
制御処理部３は、図形オブジェクト取得部３１、描画パターン取得部３２および描画処理部３３を具備する。図形オブジェクト取得部３１は、描画する図形オブジェクトデータ２２を記憶部２から、または外部入力Ｉ／Ｆ６を通じて取得し、描画処理部３３に対してそのデータを１画素ずつ出力する。描画パターン取得部３２は、描画処理部３３からの要求に応じて、記憶部２から描画パターン２３を取得して、描画処理部３３に供給する。
【００２１】
描画処理部３３は、記憶部２から、または外部入力Ｉ／Ｆ６を通じて背景画像データ２１および図形オブジェクトデータ２２の入力を受け、背景画像上に図形オブジェクトを合成表示する。例えば、合成する図形オブジェクトの透明度を示すアルファ値αが“１”の場合には、画面全体を画素ごとに走査し、図形オブジェクトデータ２２の位置情報に基づいて図形オブジェクトを描画するか、あるいはそれ以前に描画されていた画像を描画するかを判定して描画処理を行う。
【００２２】
また、合成する図形オブジェクトを半透明表示する場合（０＜α＜１の場合）には、描画パターン取得部３２の取得した描画パターン２３に従い、画素ごとの描画の判定を行って描画する。このとき、１つの図形オブジェクトの描画や１ライン分の描画ごと等の所定のタイミングで新たな描画パターン２３を使用して判定を行う。さらに例えば、複数の画像オブジェクトが重なって半透明表示される場合には、少なくとも重なる各図形オブジェクトに対して、相互相関係数の絶対値が小さい異なる数値列から生成された描画パターン２３を使用して描画の判定を行う。
【００２３】
画像メモリ４は、例えば半導体によってなるＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）によってなり、描画処理部３３における描画処理中の画像データや処理結果の画像データを一時的に記憶する。
【００２４】
グラフィック処理部５には、ＣＲＴ（Ｃａｔｈｏｄｅ　Ｒａｙ　Ｔｕｂｅ）またはＬＣＤ（Ｌｉｑｕｉｄ　Ｃｒｙｓｔａｌ　Ｄｉｓｐｌａｙ）等によってなるモニタ５１が接続されている。このグラフィック処理部５は、制御処理部３の描画処理部３３の要求に従って、画像メモリ４に記憶された画像データに基づく画像をモニタ５１の画面上に表示させる処理を行う。
【００２５】
外部入力Ｉ／Ｆ６は、外部の画像出力機器や画像受信機器から背景画像データ２１および図形オブジェクトデータ２２等の入力を受けることができる。入力された背景画像データ２１は描画処理部３３に供給され、また図形オブジェクトデータ２２は図形オブジェクト取得部３１に供給される。
【００２６】
なお図示しないが、画像処理装置１はこの他に、キーボードやマウス等の入力デバイスを通じて利用者からの操作入力を受ける入力部を具備している。
この画像処理装置１は例えば、プロセッサやＲＡＭ、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）等によって構成されるコンピュータ装置として実現される。この場合、制御処理部３はプロセッサ等により構成され、図形オブジェクトデータ２２や描画パターン２３の取得や画像の描画処理を行う処理プログラムが、例えばＨＤＤ（Ｈａｒｄ　Ｄｉｓｋ　Ｄｒｉｖｅ）によってなる記憶部２から読み出され、制御処理部３で実行されることにより、制御処理部３内の各機能ブロックの処理が実現される。
【００２７】
次に、描画パターン２３の生成処理について説明する。
上述したように、画像処理装置１では、複数の異なる描画パターン２３が記憶部２にあらかじめ記憶される。この描画パターン２３は、所定の数値列から順に得た数値と、アルファ値との比較を基に生成され、描画処理部３３において図形オブジェクトの半透明描画を行う際に使用される。従って、描画パターン２３は最低限、０＜α＜１の範囲でアルファ値の取り得る段階ごとに用意される必要がある。
【００２８】
図２は、描画パターン２３を生成する処理の流れを示すフローチャートである。
図２では、１つの描画パターン２３を生成する際の処理について示している。ここで、使用される数値列は所定の長さ（構成する数値の個数）を有しているものとする。また、数値列としては、この長さ、および数値が取り得る値域の中で、値が十分に均一に散らばっているものが使用される。ここで、例えば数値列を構成する各数値が７けたの２進数である場合には、０〜１２７の値域をとる。
【００２９】
ステップＳ２０１において、描画パターン２３の現在位置の更新を行う。具体的には描画パターン２３上の位置を１画素分進める。ステップＳ２０２において、数値列から数値を順に１つ選択する。ステップＳ２０３において、アルファ値の値域が数値列の値域に一致するように、このとき設定されているアルファ値を変換し、アルファ値と数値との比較が可能なようにアルファ値を正規化する。
【００３０】
ステップＳ２０４において、正規化されたアルファ値と、ステップＳ２０２で選択された数値とを比較する。そして、正規化されたアルファ値が数値以上である場合はステップＳ２０５に進み、描画パターン２３上の現在位置に“１”をセットする。また、正規化されたアルファ値が数値未満である場合はステップＳ２０６に進み、現在位置に“０”をセットする。
【００３１】
ステップＳ２０７において、数値列上の最後の数値要素に達したか否かを判断し、達していない場合はステップＳ２０１に進んで、現在位置を更新し、数値列の次の数値を選択して描画パターン２３の設定を行う。また、数値列上の最後の数値要素に達していた場合は処理を終了する。
【００３２】
このような処理により、１つのアルファ値に対応する描画パターン２３が１つ生成される。生成された描画パターン２３は、図形オブジェクトの半透明描画処理の際に使用されて、描画パターン２３中の“１”が当該画素についてこのとき新たに描画している図形オブジェクトを描画することを示し、“０”が当該画素についてこの図形オブジェクトを描画せず、これ以前に描画されていた画像を描画することを示す。
【００３３】
この後、同一または異なる数値列を用いて、別のアルファ値に対応する描画パターン２３を生成する。さらに、同じアルファ値についても、異なる複数の数値列を用いて複数の描画パターン２３を生成する。従って、数値列の種類の数にアルファ値の取り得る段階を乗じただけの数の描画パターン２３を生成することができる。
【００３４】
ところで、本発明では、複数の図形オブジェクト同士が重なって描画される際に高画質な画像が得られるように、数値列として、各数値の値が十分均一に散らばっているとともに、各数値列の相互相関係数が“０”に近いものが使用される。ここで、２つの数値列ｘｉおよびｙｉ（ｉ＝１，２，……，ｎ）に対して、その間の相互相関係数ｒは、以下の式（４）によって表される。
【００３５】
【数２】
2004005285.tif 000003
【００３６】
数値の値が均一に散らばり、かつ相互相関係数が低い数値列としては、例えば、熱雑音や白色雑音等の物理現象、特に電子回路上で得られる雑音から取得した数値列や、あるいは論理回路やソフトウェアを用いて生成される疑似雑音（ＰＮ：Ｐｓｅｕｄｏ　Ｎｏｉｓｅ）符号による数値列等を用いることが可能である。疑似雑音符号としては、例えばＭ系列（Ｍａｘｉｍａｌ−ｌｅｎｇｔｈ　ｓｅｑｕｅｎｃｅｓ）符号やゴールド（Ｇｏｌｄ）符号等を用いることが可能である。なお、本実施の形態例での使用に適する疑似雑音符号については、後述することにする。
【００３７】
なお、以上の描画パターン２３の生成処理は、本実施の形態例では、画像処理装置１の外部の機器において行われ、生成された複数の描画パターン２３が記憶部２にあらかじめ格納される。また、このような描画パターン２３を生成する機能を画像処理装置の内部に設けて、必要に応じて数値列を生成し、この数値列を基に描画パターン２３を生成してもよい。
【００３８】
次に、この画像処理装置１において、背景画像上に複数の図形オブジェクトが半透明表示されるように合成する場合の処理について説明する。この場合、各図形オブジェクトのアルファ値αはともに０＜α＜１の条件で設定される。
【００３９】
図３は、背景画像上に２つの図形オブジェクトが合成される場合の画面表示例を示す図である。
図３では、２つの図形オブジェクトＡおよびＢが、背景画像Ｃ上に合成表示された様子の例を示している。この例では、領域Ｘでは各図形オブジェクトＡおよびＢが重なっており、この領域Ｘでは背景画像Ｃ上に図形オブジェクトＡおよびＢの双方が半透明表示される。また、領域Ｙ１およびＹ２では背景画像Ｃ上に図形オブジェクトＡのみ、図形オブジェクトＢのみがそれぞれ半透明表示される。
【００４０】
ここで、図形オブジェクトＡおよびＢ、背景画像Ｃの表示の前後関係を示すＺオーダが、図形オブジェクトＡ、図形オブジェクトＢ、背景画像Ｃの順であるとすると、描画処理部３３での描画処理は、このＺオーダの逆順で行われる。まず、描画処理部３３は、記憶部２から、または外部入力Ｉ／Ｆ６を通じて外部から、１フレーム分の背景画像データ２１の入力を受け、このデータを画像メモリ４に記憶させる。次に、図形オブジェクトＡおよびＢに対応する図形オブジェクトデータ２２をそれぞれ、記憶部２あるいは外部入力Ｉ／Ｆ６を通じて図形オブジェクト取得部３１に順に取得させ、それぞれに対する描画処理を行う。
【００４１】
なお、図形オブジェクトＡおよびＢの背景を、背景画像Ｃを用いずに白色画像（１フレームの画面全体のデータが“０”であること）とすることも可能である。
【００４２】
図４は、各図形オブジェクトを描画する処理の流れを示すフローチャートである。
ステップＳ４０１において、新たに描画する図形オブジェクト（図３の例の場合は第１番目に図形オブジェクトＢ）のデータ（図形オブジェクトデータ２２）を、図形オブジェクト取得部３１が記憶部２から、または外部入力Ｉ／Ｆ６を通じて取得する。
【００４３】
ステップＳ４０２において、取得した図形オブジェクトに設定されたアルファ値に対応する描画パターン２３を、描画パターン取得部３２が記憶部２から取得する。このとき、異なる数値列から生成された複数の描画パターン２３を必要な数だけ取得しておく。これは、後のステップＳ４０３の描画処理において、画質を向上させるために、同じ描画パターン２３はある程度ラインの間隔を開けて使用されるためである。
【００４４】
なお、図形オブジェクト取得部３１および描画パターン取得部３２では、取得した図形オブジェクトデータ２２および描画パターン２３を、制御処理部３の内部あるいはこれに接続されたＲＡＭに一旦保持し、後のステップＳ４０３において描画処理部３３からの要求に応じてこれらのデータを順次描画処理部３３に供給する。あるいは、ステップＳ４０３で描画処理部３３からの要求を受けるたびに、必要な図形オブジェクトデータ２２あるいは描画パターン２３の各データを記憶部２から読み出して、描画処理部３３に供給するようにしてもよい。
【００４５】
ステップＳ４０３において、取得された図形オブジェクトデータ２２および描画パターン２３を基にして、描画処理部３３が各画素に対する描画処理を行う。このステップＳ４０３の処理については図５で詳述する。
【００４６】
ステップＳ４０４において、すべての図形オブジェクトについて描画処理が終了したか否かを判断し、終了していない場合はステップＳ４０１に戻る。図３の例の場合は、図形オブジェクトＢの描画を行った後、図形オブジェクトＡについて再びステップＳ４０１からの処理を行う。すべての図形オブジェクトの描画が終了すると、処理を終了する。
【００４７】
図５は、図４のステップＳ４０３における各画素に対する描画処理の流れを示すフローチャートである。
ステップＳ５０１において、描画パターン取得部３２によって取得された描画パターン２３の１つを読み込む。ステップＳ５０２において、描画対象の画素を、画像上の新しいライン（水平方向）の先頭に移動する。
【００４８】
ステップＳ５０３において、該当画素の描画パターン２３の値が“１”であるか否かを判定し、“１”であった場合はステップＳ５０４に進む。ステップＳ５０４において、該当画素に対して、このとき新たに描画している図形オブジェクトデータ２２を描画する。また、ステップＳ５０３で描画パターン２３が“０”であった場合は、ステップＳ５０４をバイパスしてステップＳ５０５に進む。
【００４９】
例えば、図３の場合では図形オブジェクトＢの描画処理中では、これ以前に描画された画像として背景画像Ｃのデータが画像メモリ４に一時記憶されている。そして、ステップＳ５０３で描画パターン２３が“１”である場合は、画像メモリ４上の背景画像Ｃのデータに対して、該当画素に図形オブジェクトＢのデータを上書きする。また、描画パターン２３が“０”である場合は、該当画素について背景画像Ｃのデータをそのまま残す。
【００５０】
ステップＳ５０５において、画像上のすべての画素の描画が終了したか否かを判断する。終了していない場合はステップＳ５０６に進み、終了した場合はステップＳ５０８に進む。ステップＳ５０６において、描画パターン２３をビットシフトする。続いてステップＳ５０７において、描画対象を次の画素に移動する。この後ステップＳ５０３に戻り、新たな画素について描画パターン２３の数値を基に描画・被描画の判定を行う。これらのステップＳ５０３〜Ｓ５０７までの処理を繰り返して、１ライン分の描画を行う。
【００５１】
ステップＳ５０８において、画像上のすべてのラインについて描画が終了したか否かを判断し、終了した場合は図４の処理に戻ってステップＳ４０４に進む。また、終了していない場合はステップＳ５０１に戻り、描画パターン取得部３２から前回と異なる描画パターン２３を読み込み、画像上の次のラインに対する描画処理を行う。
【００５２】
以上の図４および図５の処理によって、図形オブジェクトが半透明表示された１フレーム分の画像が得られる。ところで、上記の半透明描画処理では、各画素について描画パターン２３に基づいて描画・非描画を判定して描画を行っており、描画時に処理負荷の高い乗除算処理等が必要とされない。従って、例えばアルファブレンディングに比較して描画時の処理負荷がはるかに低く、処理能力の小さい機器でも容易に実時間での疑似半透明表示を行うことが可能である。
【００５３】
また、上記の半透明描画処理では、半透明表示された図形オブジェクトが重なる場合に、重なる図形オブジェクト間では、異なる描画パターン２３を使用して描画を行う。すなわち、これらの描画パターン２３は、相互相関係数の小さい異なる数値列からそれぞれ生成されたものとなる。
【００５４】
ここで、描画パターン２３では、数値列上で値が均一に散らばった数値とアルファ値との比較に基づいて、描画・被描画を示す“１”“０”が設定されている。このため、描画パターン２３内で“１”が現れる割合がアルファ値に近づき、かつ“１”が全体に渡って均一に散らばって現れる。
【００５５】
また、図形オブジェクトが互いに重なっている領域では、それぞれで使用した描画パターン２３の基となる各数値列の間で相関が低いために、双方の描画パターン２３で“１”が重複する位置が、設定されたアルファ値に応じて描画パターン２３内で安定的に現れ、集中的に“１”が重複する領域が生まれにくい。
【００５６】
例えば、図３の例において、図形オブジェクトＡおよびＢに設定されたアルファ値がともに５０％で、図形オブジェクトＢ、図形オブジェクトＡの順で描画する場合を考える。この場合、各図形オブジェクトＡおよびＢが重なっている領域Ｘでは、図形オブジェクトＡおよびＢの各画素が領域Ｘ内の全画素のそれぞれ５０％、２５％に近い値となり、各図形オブジェクトＡおよびＢの画素がこの領域Ｘ内の全体でほぼ均一に存在するようになる。
【００５７】
以上のように、互いに重なっている図形オブジェクトについて、相互相関係数が“０”に近い数値列が生成した異なる描画パターン２３を使用して半透明描画することにより、各図形オブジェクトについて設定されたアルファ値に応じた合成割合を有する高画質な合成画像を得ることが可能となる。また、このような高画質な半透明表示を処理能力の低い機器でも容易に実現することができる。
【００５８】
なお、図形オブジェクトの描画時において、隣接するラインや数本といった比較的近いラインについて常に同じ描画パターン２３を用いて描画を行った場合は、図形オブジェクトまたはそれ以前の画像の画素が画面上に直線状や曲線状に現れてしまう。このため、図５のステップＳ５０１では所定のライン数の間、すべて異なる描画パターン２３を読み込むようにし、同じ描画パターン２３を再利用して描画するまでの間隔を所定ライン数だけあけることが望ましい。これにより、同じ図形オブジェクトや背景画像が描画される画素をライン間で分散させることができる。
【００５９】
また、上述したように、重ねて描画される図形オブジェクト同士では同じ描画パターン２３が使用されないので、複数の図形オブジェクトが重なるときには、重なって描画される図形オブジェクトの数に、同じ描画パターン２３が再利用されるまでのライン数を乗じた数だけの異なる数値列を用意しておくことが望ましい。従って、画像処理装置１では、これらの数値列から生成された異なる描画パターン２３が、記憶部２にあらかじめ記憶されることが望ましい。
【００６０】
ここで、上記の画像処理装置１で使用される描画パターン２３を生成する基となる数値列の好適な例として、論理回路やソフトウェアにより容易に生成可能な疑似雑音符号から得られる数値列を挙げる。また、この中でも特に、プリファードＭ系列およびプリファードＧｏｌｄ系列といわれる符号系列を挙げる。
【００６１】
図６は、プリファードＭ系列を生成する符号生成器対の例を示す図である。
Ｍ系列は、ある段数のシフトレジスタとフィードバックによって生成される符号系列のうち、その周期が最長になる系列である。シフトレジスタの段数をｎとすると、その周期は２ｎ−１となる。図６（Ａ）は、Ｍ系列を生成する符号生成器の例を示しており、５段のシフトレジスタ６１と、その複数個の段の状態の論理結合をシフトレジスタ６１の入力にフィードバックする論理回路である排他的論理和回路６２によって構成される。描画パターン２３の基となる数値列としては、例えば、シフトレジスタ６１を順にシフトしたときに得られるシフトレジスタ６１上の数値（２進数）によって得ることができる。
【００６２】
また、同じ周期を有するＭ系列の中に相互相関係数が最小となる３値をもつＭ系列の対は、プリファードペアなＭ系列と呼ばれる。または、これらのＭ系列はプリファードＭ系列と呼ばれる。図６（Ａ）および（Ｂ）では、プリファードペアなＭ系列を生成することが可能な符号生成器の対を例示している。図６（Ａ）の符号生成器は、出力値と３段目の値との排他的論理和を入力にフィードバックしてＭ系列を得ている。これに対し、図６（Ｂ）では、出力値と２段目の値との排他的論理和をとった値に、さらに３段目および４段目の値の排他的論理和を順次とった値を入力にフィードバックしている。
【００６３】
プリファードペアなＭ系列間の相互相関係数（絶対値）の最大値ｒｍａｘは、次の式（５）によって近似される。
【００６４】
【数３】
2004005285.tif 000004
【００６５】
描画パターン２３の基となる数値列を生成する際には、例えば一般のモニタで出力される６４０画素×４８０画素以上の画像を想定した場合、好適な画質を得るためには５段以上のシフトレジスタを使用することが望ましい。例えば図６に示したような５段のシフトレジスタを用いたプリファードＭ系列符号の場合、周期は３１で、相互相関係数の最大値は約０．２５となる。同様に、７段のシフトレジスタを用いたプリファードＭ系列符号の場合、周期は１２７、相互相関係数の最大値は約０．１２５となる。
【００６６】
次に、図７は、プリファードＧｏｌｄ系列を生成する符号生成器の例を示す図である。
Ｇｏｌｄ系列は、基本的には周期の等しい２つのＭ系列を排他的論理和により合成することが得られる。さらに、プリファードペアなＭ系列を組み合わせて合成した場合は、プリファードＧｏｌｄ系列と呼ばれる。図７では例として、図６（Ａ）および（Ｂ）で示した各符号生成器を組み合わせたことにより、プリファードＧｏｌｄ系列が得られる符号生成器を示している。
【００６７】
プリファードＧｏｌｄ系列では、Ｍ系列で実現される系列数と比較して多くの系列数が実現可能で、元のプリファードペアなＭ系列対を含めて２ｋ＋１の異なった符号系列が得られる。従って、周期を抑制しながらより多くの数値列を得ることができるため、図形オブジェクトを重ねる数が多い場合により好適である。
【００６８】
また、プリファードＧｏｌｄ系列の相互相関係数（絶対値）の最大値は、Ｍ系列の約２−１倍に抑制される。例えば、図６のような５段のシフトレジスタを用いて生成されたプリファードＧｏｌｄ系列の場合、周期は３１、相互相関係数の最大値は約０．３５で、３３個の系列が得られる。また、７段のシフトレジスタを用いた場合、周期は１２７、相互相関係数の最大値は約０．１７７で、１２９個の系列が得られる。描画パターン２３の基として使用するためには、上記のプリファードＭ系列の場合と同様に５段以上のシフトレジスタを用いることが望ましいため、このために生成される数値列の相互相関係数を０．３５以下とすることにより、本発明の効果を十分に得ることが可能となる。
【００６９】
次に、重なって半透明表示される各図形オブジェクトの大きさや位置等が時間的に変化する場合の半透明描画処理について補足説明する。図８は、この場合の画面表示例を示す図である。
【００７０】
図８の例では、図３の場合と同様に、半透明表示される図形オブジェクトＡおよびＢ（ともに０＜α＜１）の一部の領域ＸＸが重なっている。またこのうち、図形オブジェクトＡは時間とともに拡大し、図形オブジェクトＢは時間とともに位置が移動している。従って、これらが重なった領域ＸＸも時間とともに変化する。
【００７１】
図９は、重なった各図形オブジェクトの大きさや位置等が時間的に変化する場合の半透明描画処理の流れを示すフローチャートである。
図９に示す処理は、基本的に、重なる各図形オブジェクトが静止している場合の図４の処理において、図形オブジェクトデータを取得する前に、図形オブジェクトの現在の状態の算出を行い、時間経過とともにこの現在の状態のデータを更新しながら、その都度描画を行うことで実現されている。
【００７２】
すなわち、ステップＳ９０１において、時間の更新を行う。ここでの時間は、例えばフレーム同期の時間を示す。ステップＳ９０２において、図形オブジェクトの現在の状態を算出する。例えば、図形オブジェクトの座標や拡大率等の情報が算出される。また、時間とともにアルファ値が変化する場合は、アルファ値の情報も取得する。
【００７３】
ステップＳ９０３〜Ｓ９０６の処理は、図４におけるステップＳ４０１〜Ｓ４０４の処理に対応しており、ここでは説明を省略する。ここで、ステップＳ９０３での図形オブジェクトデータの取得処理は、これに先立つステップＳ９０２で算出された現在の状態の情報に基づいて行うことで、無駄な記憶部２へのアクセスを行うことなく、効率的な処理を行うことが可能となる。
【００７４】
ステップＳ９０７において、図形オブジェクトの動きが終了したか否かを判断し、終了した場合は処理を終了する。また、終了していない場合はステップＳ９０１に戻り、再び時間を更新し、図形オブジェクトの現在の状態を算出して図形オブジェクトをあらためて描画する。これによって、図形オブジェクトの変化に応じた半透明描画が行われる。
【００７５】
以上の処理により、重なった図形オブジェクトが時間経過とともに変化する場合でも、描画パターン２３を使用した負荷の低い処理によって、設定されたアルファ値に応じた安定的な合成割合を有する合成画像を常に得ることができる。従って、フリッカーのない高画質な半透明表示を実現することが可能となる。
【００７６】
以上の半透明描画処理は、アルファブレンディングと比較して大幅に処理負荷を軽減できることから、例えばパーソナルコンピュータ上等でソフトウェアによる高速な半透明描画を行う場合、特に動画表示やアニメーション表示を行う場合に適している。また、例えば、画面上のアイコン等に対して動きを伴う半透明表示等の各種視覚効果を与えたい場合等や、疑似２Ｄ効果を利用した印象的なＧＵＩ（Ｇｒａｐｈｉｃａｌ　Ｕｓｅｒ　Ｉｎｔｅｒｆａｃｅ）を実現する場合等に、上記の半透明描画処理を好適に用いることができる。
【００７７】
なお、上記の実施の形態例では、描画パターン２３をあらかじめ生成して記憶部２に記憶しておいた場合について説明したが、任意の数値列（任意の桁数、周期）を生成する手段、および生成された数値列を基にして描画パターン２３を生成する手段を設けて、生成した描画パターン２３を描画パターン取得部３２に供給するようにしてもよい。この場合、図形オブジェクトを重ねる個数や装置の処理能力、画質等を考慮して最適な描画パターン２３を生成し、これを使用して画像の描画を行うことが可能となる。
【００７８】
また、上記の画像処理装置１の処理機能は、コンピュータによって実現することができる。その場合、画像処理装置１が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｋ）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｋ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）等がある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ　ｄｉｓｋ）等がある。
【００７９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８０】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８１】
【発明の効果】
以上説明したように、本発明の画像処理装置では、描画パターンを用いて図形オブジェクトの描画の可不可を判定して合成割合を決定するため、処理負荷の大きい乗除算が必要とならない。また、図形オブジェクト同士が重なって半透明表示される場合に、重なる各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる数値列から生成された描画パターンを使用して描画の判定を行うため、描画後の各図形オブジェクトの表示率をアルファ値に近づけることができる。従って、２つ以上の図形オブジェクトが重なった場合に、低負荷の処理で各図形オブジェクトを高画質で半透明表示させることが可能となる。
【００８２】
また、本発明の画像処理方法では、描画パターンを用いて図形オブジェクトの描画の可不可を判定して合成割合を決定するため、処理負荷の大きい乗除算が必要とならない。また、図形オブジェクト同士が重なって半透明表示される場合に、重なる各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる数値列から生成された描画パターンを使用して描画の判定を行うため、描画後の各図形オブジェクトの表示率をアルファ値に近づけることができる。従って、２つ以上の図形オブジェクトが重なった場合に、低負荷の処理で各図形オブジェクトを高画質で半透明表示させることが可能となる。
【００８３】
さらに、本発明の画像処理プログラムでは、描画パターンを用いて図形オブジェクトの描画の可不可を判定して合成割合を決定するため、処理負荷の大きい乗除算が必要とならない。また、図形オブジェクト同士が重なって半透明表示される場合に、重なる各図形オブジェクトに対して相互相関係数の絶対値が小さい異なる数値列から生成された描画パターンを使用して描画の判定を行うため、描画後の各図形オブジェクトの表示率をアルファ値に近づけることができる。従って、２つ以上の図形オブジェクトが重なった場合に、低負荷の処理で各図形オブジェクトを高画質で半透明表示させることが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態例である画像処理装置の構成を示す機能ブロック図である。
【図２】描画パターンを生成する処理の流れを示すフローチャートである。
【図３】背景画像上に２つの図形オブジェクトが合成される場合の画面表示例を示す図である。
【図４】各図形オブジェクトを描画する処理の流れを示すフローチャートである。
【図５】各画素に対する描画処理の流れを示すフローチャートである。
【図６】プリファードＭ系列を生成する符号生成器対の例を示す図である。
【図７】プリファードＧｏｌｄ系列を生成する符号生成器の例を示す図である。
【図８】重なって半透明表示される各図形オブジェクトの大きさや位置等が時間的に変化する場合の画面表示例を示す図である。
【図９】重なった各図形オブジェクトの大きさや位置等が時間的に変化する場合の半透明描画処理の流れを示すフローチャートである。
【符号の説明】
１……画像処理装置、２……記憶部、３……制御処理部、４……画像メモリ、
５……グラフィック処理部、６……外部入力Ｉ／Ｆ、２１……背景画像データ、
２２……図形オブジェクトデータ、２３……描画パターン、３１……図形オブジェクト取得部、３２……描画パターン取得部、３３……描画処理部、５１……モニタ
【図１】
2004005285.tif 000005
【図２】
2004005285.tif 000006
【図３】
2004005285.tif 000007
【図４】
2004005285.tif 000008
【図５】
2004005285.tif 000009
【図６】
2004005285.tif 000010
【図７】
2004005285.tif 000011
【図８】
2004005285.tif 000012
【図９】
2004005285.tif 000013