(57)【要約】【課題】複数のレイヤ画像を重ね合わせることにより生成された合成画像を表示する場合において、下位側のレイヤ画像の少なくとも一部が再描画される際のちらつき及び暗転の発生を抑える。【解決手段】画像合成システム１は、画像合成部１３及び画像生成部１０を備える。画像合成部１３は、レイヤ画像Ｐ１及びＰ２を入力し、レイヤ画像Ｐ１の前面にレイヤ画像Ｐ２を重ね合わせて合成画像ＭＰを生成する。画像生成部１０は、レイヤ画像Ｐ１を生成するとともに、レイヤ画像Ｐ１の少なくとも一部の領域（例えばウインドウＷ１１）が合成画像ＭＰに含まれるように、ウインドウＷ１１の配置に対応する対応領域が透過設定されたレイヤ画像Ｐ２を生成する。さらに、画像生成部１０は、ウインドウＷ１１の再描画が行われるブランク期間の間、再描画前のウインドウＷ１１の画像をレイヤ画像Ｐ２内の対応領域にはめ込むとともに、対応領域に対する透過設定を解除する。【選択図】図１
2010026297.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２のレイヤ画像を入力し、前記第１のレイヤ画像の前面に前記第２のレイヤ画像を重ね合わせることにより合成画像を生成する画像合成部と、
前記第１のレイヤ画像を生成するとともに、前記第１のレイヤ画像の少なくとも一部の領域が前記合成画像に含まれるように、前記少なくとも一部の領域の配置に対応する対応領域が透過設定されている前記第２のレイヤ画像を生成する画像生成部と、
を備え、
前記画像生成部は、前記第１のレイヤ画像内の前記少なくとも一部の領域の再描画が行われるブランク期間の間、再描画前の前記少なくとも一部の領域の画像を前記第２のレイヤ画像内の前記対応領域にはめ込むとともに、前記対応領域に対する透過設定を解除する、画像合成システム。
【請求項２】
前記少なくとも一部の領域は、第１のアプリケーション・プログラムの実行状況が表示される第１のウインドウを含み、
前記ブランク期間は、前記第１のアプリケーション・プログラムの再起動が行われる期間である、請求項１に記載の画像合成システム。
【請求項３】
前記画像生成部は、
前記第１のレイヤ画像を生成する第１の描画処理部と、
前記第１のウインドウの配置を示す配置情報及び前記ブランク期間の発生を示す通知情報を前記第１の描画処理部から受信し、前記配置情報及び前記通知情報に基づいて前記第２のレイヤ画像を生成する第２の描画処理部と、
を備える、請求項２に記載の画像合成システム。
【請求項４】
前記第１の描画処理部は、前記第１のアプリケーション・プログラム、前記第１のウインドウを含む前記第１のレイヤ画像を描画するための第１の描画用プログラム群、及び前記配置情報並びに前記通知情報を前記第２の画像処理部に送信するための第１のアプリケーション管理プログラムを実行する第１のプロセッサを備え、
前記第２の描画処理部は、前記第２のレイヤ画像を描画するための第２の描画用プログラム群、及び前記配置情報並びに前記通知情報に基づいて前記第２のレイヤ画像の描画を制御する第２のアプリケーション管理プログラムを実行する第２のプロセッサを備える、請求項３に記載の画像合成システム。
【請求項５】
前記第１のアプリケーション管理プログラムは、前記第１のアプリケーション・プログラムの実行中における例外発生に応じて実行され、前記第２のアプリケーション管理プログラムに前記通知情報を送信する処理と、前記第１のアプリケーション・プログラムを再起動させる処理とを前記第１のプロセッサに実行させる、請求項４に記載の画像合成システム。
【請求項６】
前記ブランク期間は、マルチウインドウ環境を提供するための少なくとも１つのプログラムの再起動に起因して前記第１のレイヤ画像の全体の再描画が行われる期間であり、
前記画像生成部は、前記ブランク期間の間、前記第１のレイヤ画像の全体を前記対応領域にはめ込む、請求項１乃至５のいずれか１項に記載の画像合成システム。
【請求項７】
前記画像生成部は、前記第１のレイヤ画像が書き込まれるとともに前記第１のレイヤ画像を前記画像合成部に供給する第１のフレームバッファから、前記第２のレイヤ画像が書き込まれるとともに前記第２のレイヤ画像を前記画像合成部に供給する第２のフレームバッファに対して、前記第１のレイヤ画像の少なくとも一部の領域の画像を転送することによって、前記対応領域への画像はめ込みを行う、請求項１乃至６のいずれか１項に記載の画像合成システム。
【請求項８】
前記画像生成部は、前記第２のレイヤ画像のアルファ値を前記画像合成部に供給することによって、前記透過設定及びその解除を行う、請求項１乃至７のいずれか１項に記載の画像合成システム。
【請求項９】
前記画像生成部は、前記対応領域に予め定められた透過色を使用することによって、前記透過設定を行う、請求項１乃至７のいずれか１項に記載の画像合成システム。
【請求項１０】
第１のレイヤ画像の前面に第２のレイヤ画像を重ね合わせることにより生成される合成画像のディスプレイ表示を制御する表示制御方法であって、
前記第１のレイヤ画像を生成すること、
前記第１のレイヤ画像の少なくとも一部の領域が前記合成画像に含まれるように、前記少なくとも一部の領域の配置に対応する対応領域が透過設定された前記第２のレイヤ画像を生成すること、及び
前記第１のレイヤ画像内の前記少なくとも一部の領域の再描画が行われるブランク期間の間、再描画前の前記少なくとも一部の領域の画像を前記第２のレイヤ画像内の前記対応領域にはめ込むとともに、前記対応領域に対する透過設定を解除すること、
を含む表示制御方法。
【請求項１１】
前記少なくとも一部の領域は、第１のアプリケーション・プログラムの実行状況が表示される第１のウインドウを含み、
前記ブランク期間は、前記第１のアプリケーション・プログラムの再起動が行われる期間である、請求項１０に記載の表示制御方法。
【請求項１２】
前記ブランク期間は、マルチウインドウ環境を提供するための少なくとも１つのプログラムの再起動に起因して前記第１のレイヤ画像の全体の再描画が行われる期間であり、
前記ブランク期間の間、前記第１のレイヤ画像の全体を前記対応領域にはめ込む、請求項１０又は１１に記載の表示制御方法。
【請求項１３】
第１のレイヤ画像の前面に第２のレイヤ画像を重ね合わせることにより合成画像を生成する装置に対して前記第２のレイヤ画像を供給する描画処理装置であって、
前記第２のレイヤ画像を生成する描画手段と、
前記描画手段による前記第２のレイヤ画像の生成を制御する制御手段と、
を備え、
前記制御手段は、
前記第１のレイヤ画像の少なくとも一部の領域の再描画が行われるブランク期間でないとき、前記少なくとも一部の領域が前記合成画像に含まれるように、前記少なくとも一部の領域の配置に対応する対応領域を透過設定させ、
前記ブランク期間であるとき、再描画前の前記少なくとも一部の領域の画像を前記第２のレイヤ画像内の前記対応領域にはめ込むとともに、前記対応領域に対する透過設定を解除させる、描画処理装置。
【請求項１４】
前記少なくとも一部の領域は、第１のアプリケーション・プログラムの実行状況が表示される第１のウインドウを含み、
前記ブランク期間は、前記第１のアプリケーション・プログラムの再起動が行われる期間である、請求項１３に記載の描画処理装置。
【請求項１５】
前記ブランク期間は、マルチウインドウ環境を提供するための少なくとも１つのプログラムの再起動に起因して前記第１のレイヤ画像の全体の再描画が行われる期間であり、
前記描画手段は、前記ブランク期間の間、前記第１のレイヤ画像の全体を前記対応領域にはめ込む、請求項１３又は１４に記載の描画処理装置。
【請求項１６】
第１のレイヤ画像の前面に第２のレイヤ画像を重ね合わせることにより生成される合成画像のディスプレイ表示を制御するための処理をコンピュータに実行させる制御プログラムであって、
前記処理は、
前記少なくとも一部の領域が前記合成画像に含まれるように、前記少なくとも一部の領域の配置に対応する対応領域が透過設定された前記第２のレイヤ画像の生成を、前記第２のレイヤ画像を描画するための描画用プログラムに要求すること、
前記第１のレイヤ画像の少なくとも一部の領域の再描画が行われるブランク期間の発生を検知すること、及び
前記ブランク期間の間、再描画前の前記少なくとも一部の領域の画像を前記第２のレイヤ画像内の前記対応領域にはめ込むとともに、前記対応領域に対する透過設定を解除するよう、前記描画用プログラムに要求すること、
を含む、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のレイヤ画像を重ね合わせることにより合成画像を生成する画像合成システムに関し、特にレイヤ画像の少なくとも一部が再描画される場合における合成画像の表示制御技術に関する。
【背景技術】
【０００２】
複数のレイヤ画像を重ね合わせることにより合成画像を生成する画像合成システムが知られている。例えば、特許文献１は、複数のレイヤ画像を透過合成（アルファ合成）し、合成画像をＬＣＤ（Liquid Crystal Display）等の表示装置に出力する画像合成システム（特許文献１では、出力データ制御装置）を開示している。特許文献１では、複数のレイヤ画像は、それぞれ別々の画像生成部（例えば、パーソナルコンピュータ）によって生成される。
【特許文献１】特開２００２−１８２８９０号公報
【特許文献２】特開２００４−３００９２号公報
【特許文献３】特開平５−１２７８６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本願の出願人は、複数のレイヤ画像を重ね合わせることによって合成画像を生成する場合に、下位レイヤつまり背景側の第１のレイヤ画像に含まれるウインドウの少なくとも一部を合成画像に出力するための表示方法等に関する発明を出願済みである（平成１９年１２月２６日出願の特願２００７−３３４８５４号）。本願に係る発明の目的を説明するために、以下では、特願２００７−３３４８５４号に記載の発明について簡単に説明する。
【０００４】
特願２００７−３３４８５４号に記載された発明の実施の形態の１つは、第１のレイヤ画像を生成する第１のプロセッサから、上位レイヤつまり前景側の第２のレイヤ画像を生成する第２のプロセッサに対して第１のレイヤ画像内のウインドウの配置を通知する。通知を受けた第２のプロセッサは、当該ウインドウに対応する第２のレイヤ画像内の対応領域を透過設定する。そして、第１のレイヤ画像及び第２のレイヤ画像を合成する画像合成部（例えば、グラフィック処理機能を有するディスプレイコントローラ）は、第１のレイヤ画像に第２のレイヤ画像を重ね合わせるに際して、透過設定がなされた対応領域に下位レイヤの画像を透過させることによって、第１のレイヤ画像に含まれるウインドウを合成画像に出力する。
【０００５】
ここで、ウインドウとは、アプリケーション・プログラム（以下、単にアプリケーションと呼ぶ）の実行状況を表示する仮想的なスクリーンである。ウインドウは、例えば、第１のプロセッサで実行されるアプリケーションの描画要求に応じて生成される。
【０００６】
また、透過設定とは、背景側の画像を透過させるべき領域であることを、第２のプロセッサから画像合成部に伝達するための設定である。第２のプロセッサによる透過設定は、例えば、アルファ合成に使用されるアルファ値を実質的に全透過を示す値（例えば、ゼロ又は１）に設定することで行われる。また、透過設定は、予め定められた透過色によって対応領域を塗りつぶすことで行われてもよい。
【０００７】
ところで、アプリケーション実行時の例外発生などに起因して第１のレイヤ画像に含まれるウインドウの再描画が必要となる場合がある。ウインドウの再描画が発生すると、上述した特願２００７−３３４８５４号に記載の発明では、合成画像内におけるウインドウの表示に"ちらつき"や"暗転"が発生するおそれがある。
【０００８】
ここで、"ちらつき"とは、ウインドウによって隠されていた背景が一時的に描画される現象を意味する。また、"暗転"とは、ウインドウが表示されていた領域が所定の背景色によって塗りつぶされる現象を意味する。例えば、第１のプロセッサが描画用プログラムとしてＸ Ｗｉｎｄｏｗ Ｓｙｓｔｅｍ（Ｘ１１）を使用している場合、アプリケーションの終了に伴ってＸサーバから再描画のためのＥｘｐｏｓｅイベントが発行される。Ｅｘｐｏｓｅイベントに応じて、描画処理が行われれば"ちらつき"が発生し、描画処理が行われなければ"暗転"が発生する。
【０００９】
合成画像が表示装置の画面上に出力されている場合における、上述した"ちらつき"や"暗転"の発生は、視感上好ましくない場合がある。例えば、車載情報機器で使用される車両制御に関するアプリケーション（例えば、自動車の速度計をウインドウ表示するアプリケーション）が再起動される場合に、上述した"ちらつき"や"暗転"の発生してしまうと、車載情報機器の故障であるとユーザに誤認されるおそれがある。
【００１０】
なお、特許文献２は、コンピュータで実行されているアプリケーションに異常が発生した場合に、これを再起動するアプリケーション回復システムを開示している。特許文献２に開示されたシステムは、アプリケーションの実行中にユーザによって入力された履歴を一時ファイルに記録しておく。そして、当該システムは、実行中のアプリケーションの異常を検知した場合に、当該アプリケーションのウインドウ表示位置を取得するとともに、アプリケーションを再起動する。このとき、当該システムは、再起動されたアプリケーションのウインドウを再起動前と同位置に再描画するとともに、記録しておいた一時ファイルを用いてユーザの作業内容を復元する。
【００１１】
つまり、特許文献２は、アプリケーションの再起動の前後で、ウインドウの配置及び表示内容を実質的に同一とするための技術を開示している。しかしながら、特許文献２は、アプリケーションの再起動に伴って、ウインドウが消去されてから再描画されるまでの間の画像表示の制御に関しては何ら開示していない。
【００１２】
また、特許文献３は、複数ウインドウのオーバラップ表示が可能なマルチウインドウ機能を有する画像処理システムを開示している。特許文献３に開示されたシステムは、下位層ウインドウのうち上位層ウインドウの重なりによって表示されない領域（重なり領域）の画像をビットマップ画像としてメモリに記憶しておく。そして、当該システムは、フォーカスの移動等によって下位層ウインドウが上位層ウインドウの前面にエクスポーズされる際に、予めメモリに記憶されていた重なり領域のビットマップ画像を読み出し、この重なり領域の画像を追加表示する。
【００１３】
上述したように、特許文献３は、エクスポーズ処理、すなわち、重なり領域の画像を描画する処理を速やかに実行するための技術を開示している。しかしながら、特許文献３に開示された発明を利用しても、アプリケーションの再起動に伴って、ウインドウが消去された後に再び描画される場合に "ちらつき"が生じてしまう。つまり、特許文献３に記載の発明では、上述した"ちらつき"を抑制することはできない。
【００１４】
本発明は、上述した知見に基づいてなされたものであって、複数のレイヤ画像を重ね合わせることにより生成された合成画像を表示する場合において、下位側のレイヤ画像の少なくとも一部が再描画される際の"ちらつき"及び"暗転"の発生を抑制することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の第１の態様にかかる画像合成システムは、画像合成部及び画像生成部を備える。前記画像合成部は、第１及び第２のレイヤ画像を入力し、前記第１のレイヤ画像の前面に前記第２のレイヤ画像を重ね合わせることにより合成画像を生成する。前記画像生成部は、前記第１のレイヤ画像を生成するとともに、前記第１のレイヤ画像の少なくとも一部の領域が前記合成画像に含まれるように、前記少なくとも一部の領域の配置に対応する対応領域が透過設定されている前記第２のレイヤ画像を生成する。さらに、前記画像生成部は、前記第１のレイヤ画像内の前記少なくとも一部の領域の再描画が行われるブランク期間の間、再描画前の前記少なくとも一部の領域の画像を前記第２のレイヤ画像内の前記対応領域にはめ込むとともに、前記対応領域に対する透過設定を解除する。
【発明の効果】
【００１６】
上述した本発明の第１の態様によれば、第２のレイヤ画像にはめ込まれた再描画前の画像によって、前記少なくとも一部の領域の再描画に伴う前記第１のレイヤ画像における過渡的な表示の変動が、合成画像に出力されることを防止できる。したがって、本発明の第１の態様によれば、上述した"ちらつき"及び"暗転"が合成画像に発生することを抑制できる。
【発明を実施するための最良の形態】
【００１７】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１８】
＜発明の実施の形態１＞
本実施の形態にかかる画像合成システム１は、複数のレイヤ画像を生成するとともに、これらを重ね合わせて合成することにより合成画像を生成する。説明の便宜のために、以下では、レイヤ画像Ｐ１及びレイヤ画像Ｐ２の２枚を重ね合わせて合成画像ＭＰを生成する場合について説明する。なお、レイヤ画像Ｐ１は背景側の画像とし、レイヤ画像Ｐ２はレイヤ画像Ｐ１の前面に重ねられる前景側の画像とする。
【００１９】
図１は、画像合成システム１の機能ブロック図である。図１において、画像生成部１０は、レイヤ画像Ｐ１及びＰ２を生成する。画像生成部１０が有する第１描画処理部１１は、レイヤ画像Ｐ１を生成する。
【００２０】
一方、第２描画処理部１２は、第２レイヤ画像Ｐ２を生成する。このとき、第２描画処理部１２は、第１レイヤ画像Ｐ１に描画されたウインドウが合成画像に含まれるように、当該ウインドウの配置に対応する第２レイヤ画像Ｐ２内の対応領域を透過設定する。上述したように、透過設定とは、後述する画像合成部１３に対して、背景側の画像を透過させるべき領域であることを伝達するための設定である。一例を示すと、第２描画処理部１２による透過設定は、アルファ合成に使用されるアルファ値を実質的に全透過を示す値（例えば、ゼロ又は１）に設定することで行えばよい。また、透過設定は、予め定められた透過色によって対応領域を塗りつぶすことで行われてもよい。つまり、透過設定の具体的手法は、画像合成部１３が採用している画像合成方法に合わせて適宜決定すればよい。
【００２１】
合成画像ＭＰに表示されるべきウインドウの配置を伝達するために、第１描画処理部１１は、配置情報Ｄ１を第２描画処理部１２に供給する。ここで、配置情報Ｄ１は、レイヤ画像Ｐ１内でのウインドウ配置を特定可能な情報である。ユーザ操作等に応じてレイヤ画像Ｐ１内でのウインドウの配置及びサイズが変化する場合、配置情報Ｄ１には、ウインドウの少なくとも一点の座標と、ウインドウサイズの情報を含めればよい。ところで、第１描画処理部１１による配置情報Ｄ１の送信は、必ずしも必要ではない。例えば、合成画像ＭＰに表示すべきウインドウのレイヤ画像Ｐ１内での配置が予め固定されている場合、第２描画処理部１２は、予め定められたウインドウの配置情報に基づいて透過設定を行えばよい。
【００２２】
また、第１描画処理部１１は、合成画像ＭＰに表示すべきウインドウの再描画を行なう際に、第２描画処理部１２に対して通知情報Ｄ２を送信する。通知情報Ｄ２を受けた第２描画処理部１２は、レイヤ画像Ｐ１に含まれる再描画前のウインドウをキャプチャした画像（以下、キャプチャ画像と呼ぶ）をレイヤ画像Ｐ２の対応領域にはめ込むとともに、対応領域の透過設定を解除する。ここで、透過設定の解除とは、透過設定がなされていたレイヤ画像Ｐ２内の領域を不透過状態に変更することである。透過設定の解除は、アルファ値を実質的に不透過を示す値に設定することで行えばよい。また、透過設定の解除は、予め定められた透過色による対応領域の塗りつぶしを停止することで行なってもよい。なお、レイヤ画像Ｐ２へのキャプチャ画像のはめ込み処理の詳細については後述する。
【００２３】
最後に、図１に示す画像合成部１３は、レイヤ画像Ｐ１及びＰ２を入力し、第２描画処理部１２によって指定される透過設定に基づいて、レイヤ画像Ｐ１及びＰ２を重ね合わせることにより合成画像ＭＰを生成する。
【００２４】
続いて、画像合成システム１による画像合成の具体例につき図２を参照して説明する。図２の左側部分は、レイヤ画像Ｐ１及びＰ２の例である。図２では、１つのウインドウＷ１１がレイヤ画像Ｐ１に描画されている。また、レイヤ画像Ｐ２には、２つのウインドウＷ２１及びＷ２２が描画されるとともに、透過ウインドウＴ１が配置されている。ここで、透過ウインドウとは、背景側の画像を透過させるために透過設定された対応領域を意味する。図２に示す透過ウインドウＴ１は、レイヤ画像Ｐ１内のウインドウＷ１１の配置に対応している。
【００２５】
一方、図２の右側部分は、図２左側部分に示すレイヤ画像Ｐ１及びＰ２を合成して得られる合成画像ＭＰの例である。画像合成部１３は、前景側のレイヤ画像Ｐ２の中から透過設定がなされた対応領域つまり透過ウインドウＴ１を検知し、透過ウインドウＴ１に背景側のレイヤ画像Ｐ１を透過させることによって合成画像ＭＰを生成する。透過ウインドウＴ１の検知は、アルファ値が実質的に全透過を示す画素を検知すること、又は所定の透過色に設定された画素を検知することにより行えばよい。
【００２６】
続いて以下では、レイヤ画像Ｐ２へのキャプチャ画像のはめ込み処理について図３及び４を参照して詳細に説明する。図３は、レイヤ画像Ｐ２へのキャプチャ画像のはめ込み処理の手順を示すシーケンス図である。
【００２７】
図３のステップＳ１１では、第１描画処理部１１が、ウインドウの再描画が必要となる異常の発生を検知する。ウインドウの再描画が必要となる異常の例は、ウインドウの描画要求元であるアプリケーションに例外（ゼロ除算、オーバーフロー、アドレスエラー等）が発生した場合である。この場合、例外の発生したアプリケーションの再起動が必要であるため、ウインドウの再描画も合わせて必要となる。ステップＳ１２では、第１描画処理部１１が、通知情報Ｄ２を送信することによって第２描画処理部１２に対して異常発生を通知する。
【００２８】
ステップＳ１３では、異常発生の通知を受けた第２描画処理部１２がキャプチャ画像を取得し、これを対応領域にはめ込む。第２描画処理部１２によるキャプチャ画像の取得は、第１描画処理部１１から再描画されるウインドウの画像を受信することによって行なえばよい。また、第２描画処理部１２は、レイヤ画像Ｐ１を画像合成部１３に供給するために設けられたバッファメモリ（不図示）にアクセスすることによって、キャプチャ画像を取得してもよい。
【００２９】
ステップＳ１４では、第２描画処理部１２が、キャプチャ画像がはめ込まれた透過ウインドウの透過設定を解除する。なお、所定の透過色の使用によって透過設定が行われている場合、ステップＳ１３にてキャプチャ画像のはめ込みが行なわれたことにより、実質的に透過設定が解除される。すなわち、独立した透過設定の解除ステップは存在しなくてもよい。
【００３０】
ステップＳ１５では、第１描画処理部１１が異常発生に関係するウインドウの再描画を実行する。例えば、アプリケーションの実行中に例外が発生した場合、例外の発生したアプリケーションの再起動を行い、再起動されたアプリケーションからの描画要求に応じてウインドウを再描画すればよい。ウインドウの再描画が完了した場合、第１描画処理部１１は、通知情報Ｄ２を送信することによって再描画の完了を第２描画処理部１２に通知する（ステップＳ１６）。
【００３１】
最後に、ステップＳ１７では、再描画完了通知を受信した第２描画処理部１２が、対応領域（透過ウインドウ）へのキャプチャ画像のはめ込みを停止し、透過設定を再開する。
【００３２】
図４は、図３に示した処理手順によって実現されるレイヤ画像Ｐ１及びＰ２の状態遷移を示している。なお、図４でのレイヤ画像Ｐ１及びＰ２の具体例は、図２に示したものと共通である。
【００３３】
図４（ａ）は、レイヤ画像Ｐ１のウインドウＷ１１に関して異常が発生したときのレイヤ画像Ｐ１及びＰ２の状態を示している。つまり、図４（ａ）は、図３のステップＳ１１の実行後に相当する。図４（ａ）では、レイヤ画像Ｐ２に関して透過設定がなされているため、レイヤ画像Ｐ２には透過ウインドウＴ１が含まれている。
【００３４】
図４（ｂ）は、ウインドウＷ１１のキャプチャ画像がレイヤ画像Ｐ２にはめ込まれ、透過設定が解除された状態を示している。つまり、図４（ｂ）は、図３のステップＳ１４の実行後に相当する。このとき、レイヤ画像Ｐ２からは透過ウインドウＴ１が消去され、代わりにウインドウＷ１１のキャプチャ画像が表示されている。
【００３５】
図４（ｃ）は、ウインドウＷ１１の再描画が行なわれている期間（以下では、ブランク期間と呼ぶ）のレイヤ画像Ｐ１及びＰ２の状態を示している。つまり、図４（ｃ）は、図３のステップＳ１５の実行中に相当する。このとき、レイヤ画像Ｐ２にはめ込まれたウインドウＷ１１のキャプチャ画像によって、合成画像ＭＰには、ウインドウＷ１１が継続的に表示される。
【００３６】
図４（ｄ）は、ウインドウＷ１１の再描画が完了したが、まだレイヤ画像Ｐ２の透過設定が再開されていないときのレイヤ画像Ｐ１及びＰ２の状態を示している。つまり、図４（ｄ）は、図３のステップＳ１５とＳ１７の間に相当する。
【００３７】
最後に、図４（ｅ）は、レイヤ画像Ｐ２に対する透過設定が再開された後のレイヤ画像Ｐ１及びＰ２の状態を示している。つまり、図４（ｅ）は、図３のステップＳ１７の実行後に相当する。
【００３８】
上述したように、本実施の形態にかかる画像合成システム１は、複数のレイヤ画像Ｐ１及びＰ２を重ね合わせ合成することによって合成画像ＭＰを生成するシステムである。また、画像合成システム１は、合成画像ＭＰに表示されている背景側のレイヤ画像Ｐ１内のウインドウの再描画を行なう際に、再描画前の当該ウインドウのキャプチャ画像を取得する。そして、画像合成システム１は、このキャプチャ画像を前景側のレイヤ画像Ｐ２にはめ込むとともに、ウインドウの透過表示のために設定されていた対応領域の透過設定を解除する。
【００３９】
つまり、画像合成システム１は、レイヤ画像Ｐ２にはめ込まれた再描画前のキャプチャ画像によって、ウインドウの再描画に伴うレイヤ画像Ｐ１における過渡的な表示の変動が合成画像ＭＰに出力されることを防止できる。したがって、画像合成システム１は、上述した"ちらつき"及び"暗転"が合成画像ＭＰに発生することを抑制できる。
【００４０】
ところで、上述した本実施の形態の説明では、再描画の対象が矩形のウインドウであるとして説明した。しかしながら、再描画及びキャプチャの対象は、矩形のウインドウに限定されるものでなく、任意の図形等の描画オブジェクトであってもよいことは勿論である。
【００４１】
また、上述した本実施の形態の説明では、説明を簡素化するために、２枚のレイヤ画像の重ね合わせにより合成画像ＭＰを生成する例を示した。しかしながら、３枚以上のレイヤ画像の重ね合わせによって合成画像ＭＰを生成してもよいことは勿論である。このとき、再描画の対象となる描画オブジェクト（例えばウインドウ）のキャプチャ画像が転写されるレイヤ画像は、再描画が行なわれるレイヤ画像よりも前景側のレイヤ画像であればよい。
【００４２】
続いて以下では、複数のプロセッサを含むコンピュータとこれに実行されるコンピュータプログラムを使用して、本実施の形態にかかる画像合成システム１を構成する具体例について説明する。
【００４３】
図５は、コンピュータシステム１００を利用した画像合成システム１の構成例を示している。図５において、コンピュータシステム１００は、プロセッサ１０１及び１０２を有する。例えば、画像合成システム１を車載情報機器に適用する場合であれば、コンピュータシステム１００は、複数のプロセッサコアを有するマルチコア型のシステムＬＳＩとすればよい。以下では、コンピュータシステム１００がマルチコア型のシステムＬＳＩ（ＭＣＵ（Micro Controller Unit）、ＭＰＵ（Micro Processor Unit）等とも呼ばれる）である場合を例にとって説明する。
【００４４】
第１プロセッサ１０１は、後述するオペレーティングシステム（ＯＳ：Operating System）２１０、描画用プログラム群（以下、描画システムと呼ぶ）２１１等を実行することによって、上述した第１描画処理部１１として動作する。また、第２プロセッサ１０２は、後述するＯＳ２２０、描画システム２２１等を実行することによって、上述した第２描画処理部１２として動作する。
【００４５】
２つのプロセッサ１０１及び１０２の間は、高速バス１０４によって通信可能に接続されている。ＲＡＭ１０３は、プロセッサ１０１及び１０２のキャッシュメモリ、プロセッサ１０１及び１０２の間で通信を行なうための共有メモリ等として使用される。
【００４６】
グラフィック処理ユニット（ＧＰＵ：Graphic Processing Unit）１０６は、プロセッサ１０１及び１０２によって生成されたレイヤ画像Ｐ１及びＰ２を重ね合わせ合成し、合成画像ＭＰを生成する。つまり、ＧＰＵ１０６は、上述した画像合成部１３として動作する。
【００４７】
ＧＰＵ１０６が接続されているメインバス１０５は、外部ＲＡＭ１１０とも接続されている。外部ＲＡＭ１１０は、レイヤ画像Ｐ１及びＰ２が格納されるフレームバッファ１１１及び１１２として使用される。ＧＰＵ１０６は、フレームバッファ１１１及び１１２からレイヤ画像Ｐ１及びＰ２を読み出し、画像合成を実行する。なお、レイヤ画像Ｐ１及びＰ２の書き込みと読み出しに同時に対応可能とするため、外部ＲＡＭ１１０には、同時アクセス可能な複数のポートを有するＲＡＭ（例えばＶＲＡＭ（Video RAM））を使用するとよい。
【００４８】
ディスプレイコントローラ１０７は、ＧＰＵ１０６によって生成された合成画像ＭＰをＲＧＢ出力として外部の表示装置に供給し、表示装置による画面表示を制御する。なお、ＧＰＵ１０６及び１０７は、プロセッサ１０１及び１０２と同一チップ上に集積される必要はなく、プロセッサ１０１及び１０２とは別チップとされてもよい。
【００４９】
不揮発性メモリ１２０は、プロセッサ１０１及び１０２において実行されるプログラムを格納する。不揮発性メモリ１２０は、例えば、ＲＯＭ（Read Only Memory）、フラッシュメモリ若しくはハードディスクドライブ、又はこれらの組合せ等である。なお、不揮発性メモリ１２０は、コンピュータシステム１２０の内部と外部に分割して配置されてもよい。
【００５０】
図６は、図５のコンピュータシステム１００により実行されるプログラム群の一例を示す階層図である。第１のプロセッサ１０１は、ＯＳ２１０を実行し、ＯＳ２１０によるハードウェアリソース管理の下で、描画システム２１１、アプリケーション管理マネージャ（以下ＡＰＭと呼ぶ）２１２、及びアプリケーション２１３及び２１４等のプログラムを実行する。
【００５１】
ここで、描画システム２１１は、ＧＵＩ（Graphical User Interface）環境を提供するためのプログラム群である。例えば、描画システム２１１は、Ｘ Ｗｉｎｄｏｗ Ｓｙｓｔｅｍなどのウインドウシステムのほか、アプリケーションが描画要求を行なうために用意されたソフトウェアライブラリを含む。
【００５２】
また、ＡＰＭ２１２は、第２プロセッサ１０２で実行されるＡＰＭ２２２との間でタスク間通信を行なう。タスク間通信には、ＯＳ２１０及びＯＳ２２０によって提供されるソケット、メールボックス、メッセージキュー等の通信機能を利用すればよい。ＡＰＭ２１２は、ＡＰＭ２２２との間で配置情報Ｄ１及び通知情報Ｄ２を送受信することにより、ＡＰＭ２２２と協調して、透過ウインドウの生成、再描画時のキャプチャ画像の取得、前景側レイヤ画像へのキャプチャ画像のはめ込み、ウインドウの再描画などを実行する。
【００５３】
同様に、第２のプロセッサ１０２は、ＯＳ２２０を実行し、ＯＳ２２０によるハードウェアリソース管理の下で、描画システム２２１、ＡＰＭ２２２、及びアプリケーション２２３及び２２４等のプログラムを実行する。
【００５４】
例えば、画像合成システム１が車載情報機器などの組み込み機器に適用される場合、第１のプロセッサ１０１は、μＩＴＲＯＮ等のリアルタイムＯＳを実行し、速度制御、障害物検知などの車両制御に関するリアルタイム性の高いアプリケーションを実行すればよい。このとき、描画システム２１１は、簡易なウインドウシステムとすればよい。一方、第２のプロセッサ１０２は、組み込み向けＵＮＩＸ（登録商標）等の非リアルタイムＯＳを実行し、カーナビゲーション、道路情報の受信処理、Ｗｅｂブラウザ等の情報系アプリケーションを実行するとよい。このとき、描画システム２２１には、例えば、Ｘ Ｗｉｎｄｏｗ Ｓｙｓｔｅｍを利用するとよい。
【００５５】
続いて、図５及び６を用いて説明した画像合成システム１によるウインドウ再描画の処理手順について説明する。図７は、当該処理手順を示すシーケンス図である。図７は先に説明した図３に対応する。
【００５６】
図７において、ステップＳ１０１では、ＯＳ２１０がＡＰＭ２１２に対してアプリケーション２１３の例外発生を通知する。これにより、ＡＰＭ２１２は、アプリケーション２１３での例外発生を検出する。つまり、ステップＳ１０１は、図３のステップＳ１１に相当する。なお、ここでは、アプリケーション２１３の描画要求に基づいてレイヤ画像Ｐ１内にウインドウが描画されており、当該ウインドウが合成画像ＭＰに表示されているものと仮定する。
【００５７】
ステップＳ１０２では、ＡＰＭ２１２が、ＡＰＭ２２２に対して例外発生を通知する。ステップＳ１０２は、図３のステップＳ１２に相当する。
【００５８】
ステップＳ１０３では、ＡＰＭ２１２がアプリケーション２１３を一時停止させる。ステップＳ１０４では、ＡＰＭ２１２が、フレームバッファ１１２にアクセスし、アプリケーション２１３に関するウインドウのキャプチャ画像を取得する。ステップＳ１０５では、ＡＰＭ２１２からＡＰＭ２２２へキャプチャ画像が転送される。
【００５９】
ステップＳ１０６では、ＡＰＭ２２２が、透過ウインドウとされていた対応領域にキャプチャ画像を描画するよう描画システム２２１に要求する。併せてステップＳ１０６では、透過ウインドウの透過設定が解除される。つまり、ステップＳ１０６は、図３のステップＳ１６及びＳ１７に相当する。例えば、レイヤ画像Ｐ２内の対応領域の画素を所定の透過色とすることによって透過ウインドウが生成されている場合を考える。ステップＳ１０６において、レイヤ画像Ｐ２の対応領域の画素値がキャプチャ画像の画素値によって置換されることにより、対応領域の各画素値は、背景側のレイヤ画像Ｐ１に描画されたウインドウの各画素値と同一となる（ステップＳ１０７）。
【００６０】
ステップＳ１０８〜Ｓ１１３は、図３のステップＳ１５（再描画ステップ）に相当する。具体的に述べると、ステップＳ１０８では、ＡＰＭ２１２がアプリケーション２１３の強制終了を要求する。ステップＳ１０９では、ＯＳ２１０がＡＰＭ２１２に対してアプリケーション２１３の終了を通知する。ステップＳ１１０では、ＡＰＭ２１２がアプリケーション２１３の再起動を要求する。ステップＳ１１１では、ＯＳ２１０がＡＰＭ２１２に対してアプリケーション２１３の起動完了を通知する。ステップＳ１１２では、再起動されたアプリケーション２１３が、描画システム２１１に対してウインドウの描画要求を行なう。ステップＳ１１３では、ＡＰＭ２１２がＡＰＭ２２２に対してアプリケーション２１３の再起動の完了を通知する。
【００６１】
ステップＳ１１４では、ＡＰＭ２２２が描画システム２２１に対して対応領域の透過設定を要求する。これにより、レイヤ画像Ｐ２内の対応領域は再び透過ウインドウとなり、レイヤ画像Ｐ１に再描画されたウインドウが合成画像ＭＰに出力される。
【００６２】
以上に述べたように、図１に示した画像生成部１０及び画像合成部１３の機能は、複数のプロセッサ１０１及び１０２と、プロセッサ１０１及び１０２の各々で実行されるＯＳ２１０（２２０）、描画システム２１１（２２２）及びＡＰＭ２１２（２２２）等のプログラム群と、ＧＰＵ１０６を用いて具体的に実現することができる。
【００６３】
ところで、図５〜７を用いて説明した具体例では、コンピュータシステム１００がマルチコア型のシステムＬＳＩである場合について説明した。しかしながら、コンピュータシステム１００は、システムＬＳＩに限られないことは勿論である。例えば、コンピュータシステム１００は、複数のシングルコアＭＰＵを含むものでもよい。また、コンピュータシステム１００は、通信ネットワークを介して結合された複数のパーソナルコンピュータを含むものでもよい。
【００６４】
また、図７では、ＡＰＭ２２２が、描画システム２２１に対してキャプチャ画像を供給し、キャプチャ画像を含むレイヤ画像Ｐ２を描画システム２２１に描画させる例を説明した。しかしながら、キャプチャ画像をレイヤ画像Ｐ２にはめ込む方法は、様々に変更可能である。例えば、ＡＰＭ２２２は、フレームバッファ１１１に格納された画像データをフレームバッファ１１２にコピーしてもよい。このとき、ＡＰＭ２２２は、キャプチャ画像がコピーされたフレームバッファ１１２の記憶領域への書き込みを行わないよう、描画システム２２１に要求すればよい。なお、フレームバッファ１１１からバッファ１１２へのデータコピーの制御は、ＡＰＭ１１１が行ってもよい。
【００６５】
また、アプリケーション２１３の再起動の契機となる異常検知は、上述した例外発生に限られないことはもちろんである。例えば、ＡＰＭ２１２がアプリケーション２１３に対して定期的にヘルスチェック要求を送信し、アプリケーション２１３からのヘルスチェック応答がタイムアウトするか否かによって異常を検知してもよい。
【００６６】
また、アプリケーション２１３の再起動を行なう場合には、アプリケーション２１３と同一のシステムリソース（メッセージキュー、共有メモリ等）を共用している他のアプリケーションについても再起動が必要となる場合がある。この場合、ＡＰＭ２１２は、予め定められたアプリケーショングループ単位で複数のアプリケーション管理しておき、アプリケーション２１３の再起動に合わせてこれと同一グループに属する他のアプリケーションも再起動すればよい。
【００６７】
また、ＡＰＭ２１２は、アプリケーション２１３の実行に伴う各種パラメータの変更履歴を記録してもよい。ＡＰＭ２１２は、アプリケーション２１３の再起動時に変更履歴を参照することによって、アプリケーションの状態及びウインドウの表示を例外発生直前の状態とすることができる。
【００６８】
＜発明の実施の形態２＞
本実施の形態にかかる画像合成システム２は、前景側のレイヤ画像Ｐ２に描画されたウインドウのキャプチャ画像を表示するために、通常時は全画面が透過ウインドウとされる第３のレイヤ画像Ｐ３を使用する。また、画像合成システム２は、レイヤ画像Ｐ２を描画する描画システム２２１の再起動が必要である場合に、レイヤ画像Ｐ２全体のキャプチャ画像を取得してレイヤ画像Ｐ３に転写する。
【００６９】
画像合成システム２の構成例を図８に示す。図８は、図５に示した画像合成システム１の具体例と同様に、マルチコア型のシステムＬＳＩを用いた構成例である。なお、図８は、外部ＲＡＭ１１０の一部がレイヤ画像Ｐ３を格納するためのフレームバッファ１１３として使用される点を除いて、図５と共通である。なお、レイヤ画像Ｐ３の生成は、プロセッサ１０１及び１０２のいずれかが行なえばよい。ここでは、プロセッサ１０１がレイヤ画像Ｐ３を生成するものとして説明を行なう。なお、レイヤ画像Ｐ２内のウインドウ又はレイヤ画像Ｐ２全体のキャプチャ画像を取得して前景側のレイヤ画像Ｐ３に転写する際の処理手順は、図３及び図７を用いて説明した画像合成システム１の処理手順と同様とすればよい。
【００７０】
図９は、画像合成システム２による画像合成を示す概念図である。なお、図９は、通常時、つまりレイヤ画像Ｐ２に表示されたウインドウの再描画が不要であるときを示している。図９の左側部分は、レイヤ画像Ｐ１〜Ｐ３の例である。レイヤ画像Ｐ３は、通常時は全体が透過ウインドウＴ２とされている。このため、合成画像ＭＰ（図９の右側部分）は、レイヤ画像Ｐ１及びＰ２のみの合成結果と同一となる。なお、図９に示すレイヤ画像Ｐ１及びＰ２は、図２に示したものと共通としている。
【００７１】
続いて以下では、レイヤ画像Ｐ２全体の再描画が行なわれる際の、レイヤ画像Ｐ３へのキャプチャ画像のはめ込み処理について説明する。図１０は、レイヤ画像Ｐ１〜Ｐ３の状態遷移を示している。
【００７２】
図１０（ａ）は、レイヤ画像Ｐ２を描画する描画システム２２２に異常が発生したときのレイヤ画像Ｐ１〜Ｐ３の状態を示している。図１０（ａ）では、まだ、レイヤ画像Ｐ３の全体に透過設定がなされている。このため、レイヤ画像Ｐ３の全体が透過ウインドウＴ２とされている。
【００７３】
図１０（ｂ）は、レイヤ画像Ｐ２のキャプチャ画像と、レイヤ画像Ｐ１のウインドウＷ１１のキャプチャ画像がレイヤ画像Ｐ３にはめ込まれ、透過設定が解除された状態を示している。このとき、レイヤ画像Ｐ３からは透過ウインドウＴ２が消去され、代わりにレイヤ画像Ｐ２全体及びウインドウＷ１１のキャプチャ画像が表示されている。
【００７４】
図１０（ｃ）は、レイヤ画像Ｐ２の再描画が行なわれているブランク期間のレイヤ画像Ｐ１〜Ｐ３の状態を示している。このとき、レイヤ画像Ｐ３に転写されたレイヤ画像Ｐ２全体及びウインドウＷ１１のキャプチャ画像によって、合成画像ＭＰの表示内容は再描画前の状態に維持される。
【００７５】
図１０（ｄ）は、レイヤ画像Ｐ２の再描画が完了したが、まだレイヤ画像Ｐ３の透過設定が再開されていないときのレイヤ画像Ｐ１〜Ｐ３の状態を示している。最後に、図１０（ｅ）は、レイヤ画像Ｐ３に対する透過設定が再開された後のレイヤ画像Ｐ１〜Ｐ３の状態を示している。
【００７６】
上述したように、画像合成システム２は、通常時に全体が透過設定とされる冗長なレイヤ画像を生成する。そして、画像合成システム２は、この冗長なレイヤ画像を背景側のいずれかのレイヤ画像全体のキャプチャ画像を転写するための領域として利用する。このため、画像合成システム２は、描画システムの再起動が必要であって、レイヤ画像の全体が再描画される場合にも、合成画像ＭＰに"ちらつき"及び"暗転"が発生することを抑制できる。
【００７７】
なお、レイヤ画像Ｐ３は、レイヤ画像Ｐ２に含まれる一部のウインドウのみを再描画する場合に、当該ウインドウのみのキャプチャ画像の転写先として利用してもよい。
【００７８】
また、レイヤ画像Ｐ３は、ユーザに対する警告メッセージ等のシステムダイアログを表示するためのレイヤ画像と兼用してもよい。この場合、プロセッサ１０１は、レイヤ画像Ｐ２からのキャプチャ画像とシステムダイアログとをレイヤ内で合成すればよい。
【００７９】
＜その他の実施の形態＞
上述した画像合成システム１は、レイヤ画像Ｐ１に描画されるウインドウ及びレイヤ画像Ｐ２に描画されるウインドウをレイヤ間にまたがって共通化された表示優先度で管理してもよい。具体的には、第１描画処理部１１と第２描画処理部１２の間で、レイヤ画像Ｐ１及びＰ２に描画される各ウインドウ単位での表示優先度を含む情報を送受信すればよい。そして、第２描画処理部１２は、画像レイヤ間で共通化された表示優先度に基づいて、透過ウインドウを生成すればよい。なお、画像レイヤ間で共通化された表示優先度を用いて画像合成を行なう技術については、本願の出願人によって出願済みの特願２００７−３３４８５４号（平成１９年１２月２６日出願）の記載を参考にするとよい。
【００８０】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施の形態１にかかる画像生成システムの機能ブロック図である。
【図２】図１に示す画像生成システムによって行なわれる透過ウインドウを用いた画像合成の概要を示す図である。
【図３】図１に示す画像生成システムにおいて、レイヤ画像Ｐ１内のウインドウ再描画を行なう際の処理手順を示すシーケンス図である。
【図４】レイヤ画像Ｐ１内のウインドウの再描画を行なう際の各レイヤ画像の状態遷移を示す図である。
【図５】本発明の実施の形態１にかかる画像生成システムの具体的な構成例の１つを示すブロック図である。
【図６】図５に示す画像生成システムのソフトウェア階層図である。
【図７】図５に示す画像生成システムにおいて、レイヤ画像Ｐ１内のウインドウ再描画を行なう際の処理手順を示すシーケンス図である。
【図８】本発明の実施の形態２にかかる画像生成システムのブロック図である。
【図９】図８に示す画像生成システムによって行なわれる透過ウインドウを用いた画像合成の概要を示す図である。
【図１０】レイヤ画像Ｐ２全体の再描画を行なう際の各レイヤ画像の状態遷移を示す図である。
【符号の説明】
【００８２】
１、２  画像生成システム
１０  画像生成部
１１  第１描画処理部
１２  第２描画処理部
１３  画像合成部
１００  コンピュータシステム
１０１  第１プロセッサ
１０２  第２プロセッサ
１０３  内部ＲＡＭ（Random Access Memory）
１０４  高速バス
１０７  メインバス
１０６グラフィック処理ユニット（ＧＰＵ：Graphic Processing Unit）
１０７  ディスプレイコントローラ
１１０  外部ＲＡＭ
１１１〜１１３  フレームバッファ
１２０  不揮発性メモリ
２１０、２２０  オペレーティングシステム
２１１、２２１  描画システム
２１２、２２２  アプリケーションマネージャ
２１３、２１４、２２３、２２４  アプリケーション
Ｐ１  第１レイヤ画像
Ｐ２  第２レイヤ画像
Ｐ３  システムダイアログ（第３レイヤ画像）
Ｗ１１、Ｗ２１、Ｗ２２  ウインドウ
Ｔ１、Ｔ２  透過ウインドウ
【図１】
2010026297.tif 000003
【図２】
2010026297.tif 000004
【図３】
2010026297.tif 000005
【図４】
2010026297.tif 000006
【図５】
2010026297.tif 000007
【図６】
2010026297.tif 000008
【図７】
2010026297.tif 000009
【図８】
2010026297.tif 000010
【図９】
2010026297.tif 000011
【図１０】
2010026297.tif 000012