(57)【要約】【課題】半透明の領域を有するＣＧ画像の通信量を抑えつつ、正確にＣＧ画像をクロマキー合成できる画像処理システムを構成できるようにする。【解決手段】コントローラ側では、まず、画像処理装置から受信したＣＧ画像の中に半透明の個所があるか否かを判定する。そして、ブロック単位でＣＧ画像を半透明のエリアと非半透明のエリアとに分割し、これらをエンコードしてＨＭＤに送信する。一方、ＨＭＤ側では、ブロック単位の半透明の画像及び非半透明の画像をブロック単位で撮像画像とクロマキー合成する。その後、同じブロック番号を有する半透明の領域を含むブロックが存在する場合は、さらに、その合成した画像に半透明でクロマキー合成する。【選択図】図４
2015191314.tif 000002
【特許請求の範囲】
【請求項１】
半透明の領域を有するＣＧ画像を撮像画像と合成する画像合成装置とともに画像処理システムを構成する画像処理装置であって、
前記ＣＧ画像から半透明の領域を検出する検出手段と、
前記検出手段によって検出された半透明の領域に基づいて、前記ＣＧ画像を半透明の画像と非半透明の画像とに分割する分割手段と、
前記分割手段によって分割された半透明の画像及び非半透明の画像を前記画像合成装置に送信する送信手段とを有することを特徴とする画像処理装置。
【請求項２】
前記半透明の画像及び非半透明の画像を圧縮する圧縮手段をさらに有し、
前記送信手段は、前記圧縮手段によって圧縮された半透明の画像及び非半透明の画像を前記画像合成装置に送信することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記圧縮手段は、前記半透明の画像の圧縮率を前記非半透明の画像の圧縮率よりも高くすることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記分割手段は、前記圧縮手段によって処理されるブロック単位で分割することを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
前記ＣＧ画像のピクセル毎のα値から前記ブロック単位のα値を算出する算出手段をさらに有し、
前記送信手段は、前記半透明の画像及び非半透明の画像とともに、前記算出手段によって算出された前記ブロック単位のα値の情報を送信することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記分割手段は、前記検出手段によって検出された半透明の領域をクロマキー色にした非半透明の画像と、半透明と検出されなかった領域をクロマキー色にした半透明の画像とに分割することを特徴とする請求項４又は５に記載の画像処理装置。
【請求項７】
半透明の領域を有するＣＧ画像を送信する画像処理装置と、前記画像処理装置から送信されたＣＧ画像を撮像画像と合成する画像合成装置とがネットワークに接続されて構成される画像処理システムであって、
前記画像処理装置は、
前記ＣＧ画像から半透明の領域を検出する検出手段と、
前記検出手段によって検出された半透明の領域に基づいて、前記ＣＧ画像を半透明の画像と非半透明の画像とに分割する分割手段と、
前記分割手段によって分割された半透明の画像及び非半透明の画像を前記画像合成装置に送信する送信手段とを有し、
前記画像合成装置は、
前記送信手段によって送信された半透明の画像及び非半透明の画像を受信する受信手段と、
前記受信手段によって受信された半透明の画像及び非半透明の画像を撮像画像と合成する合成手段とを有することを特徴とする画像処理システム。
【請求項８】
半透明の領域を有するＣＧ画像を撮像画像と合成する画像合成装置とともに画像処理システムを構成する画像処理装置の画像処理方法であって、
前記ＣＧ画像から半透明の領域を検出する検出工程と、
前記検出工程において検出された半透明の領域に基づいて、前記ＣＧ画像を半透明の画像と非半透明の画像とに分割する分割工程と、
前記分割工程において分割された半透明の画像及び非半透明の画像を前記画像合成装置に送信する送信工程とを有することを特徴とする画像処理方法。
【請求項９】
半透明の領域を有するＣＧ画像を送信する画像処理装置と、前記画像処理装置から送信されたＣＧ画像を撮像画像と合成する画像合成装置とがネットワークに接続されて構成される画像処理システムの画像処理方法であって、
前記ＣＧ画像から半透明の領域を検出する検出工程と、
前記検出工程において検出された半透明の領域に基づいて、前記ＣＧ画像を半透明の画像と非半透明の画像とに分割する分割工程と、
前記分割工程において分割された半透明の画像及び非半透明の画像を前記画像合成装置に送信する送信工程と、
前記送信工程において送信された半透明の画像及び非半透明の画像を受信する受信工程と、
前記受信工程において受信された半透明の画像及び非半透明の画像を撮像画像と合成する合成工程とを有することを特徴とする画像処理方法。
【請求項１０】
半透明の領域を有するＣＧ画像を撮像画像と合成する画像合成装置とともに画像処理システムを構成する画像処理装置を制御するためのプログラムであって、
前記ＣＧ画像から半透明の領域を検出する検出工程と、
前記検出工程において検出された半透明の領域に基づいて、前記ＣＧ画像を半透明の画像と非半透明の画像とに分割する分割工程と、
前記分割工程において分割された半透明の画像及び非半透明の画像を前記画像合成装置に送信する送信工程とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、ＭＲ技術に用いて好適な画像処理装置、画像処理システム、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、現実世界と仮想世界とをリアルタイムにシームレスに融合させる技術として複合現実感、いわゆるＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）技術が知られている。そして、このＭＲ技術の１つに、ビデオシースルーＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）を利用する技術が知られている。この技術では、ＨＭＤ使用者の瞳位置から観察される被写体と略一致する被写体をビデオカメラなどで撮像し、ＨＭＤ使用者はその撮像画像にＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）を重畳表示した画像を観察することができる。
【０００３】
図２２は、ＨＭＤ使用者がＨＭＤ２２０１を装着している状態を示す図である。図２２に示すようにＨＭＤ使用者はＨＭＤ２２０１を用いてＭＲ空間を体験することが可能となる。ＨＭＤ２２０１は、カメラで撮影した映像からＨＭＤ２２０１の位置姿勢を計算して、この位置姿勢データを外部装置に送信したり、外部装置からＣＧ画像を受信し、受信したＣＧ画像とカメラで撮影したカメラ映像とを重畳した映像を表示したりする。
【０００４】
ＣＧ画像とカメラで撮影したカメラ映像とを重畳する際、ＣＧ画像を半透明にして重畳する場合がある。例えばＣＧ画像に窓のようなオブジェクトを含む場合には、このオブジェクトに対してＣＧ画像を半透明にしてカメラ映像とクロマキー合成する。半透明でクロマキー合成をすることにより、ＨＭＤ使用者は窓の外に実写映像があるような映像を見ることができる。
【０００５】
図２３は、半透明にしてクロマキー合成する例を示す図である。ここで図２３（ａ）には、カメラで撮影した被写体２３０１を含むカメラ映像を示しており、図２３（ｂ）には、ＣＧ画像の一例を示している。領域２３０３はカメラ映像と半透明でクロマキー合成をする個所を示しており、領域２３０２はクロマキー合成時にカメラ映像をＣＧ画像に置き換える個所を示している。図２３（ａ）に示す画像と図２３（ｂ）に示す画像とをクロマキー合成すると、図２３（ｃ）に示す画像が得られる。図２３（ｃ）に示す領域２３０３では半透明でクロマキー合成が行われているため、透けたような状態でカメラ映像が表示される。
【０００６】
しかしながら、半透明でクロマキー合成を行うためには、ＣＧ画像とは別に透明度を表すα値の情報が必要になる。また、ＣＧ画像を描画する装置とは別の装置でクロマキー合成を行う場合には、ＣＧ画像を描画する装置からクロマキー合成をする装置へ、ＣＧ画像とα値の情報とを送る必要がある。そこで、画像データにα値の情報を埋め込むことによりα値のデータを削減する方法が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１０７７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＨＭＤ２２０１を使用して自由に動きながらＭＲ空間を体験するには、ＨＭＤ２２０１と外部装置との間では無線伝送で通信した方がよい。一般的に、有線通信と比べて無線通信は伝送帯域が狭いため、無線により伝送を行うためにはデータ量を削減する必要がある。このことから、ＣＧ画像を生成する装置からＣＧ画像をクロマキー合成する装置へ送信するために、ＣＧ画像を圧縮しておく必要がある。
【０００９】
ところが、特許文献１に記載の方法のように、ＣＧ画像の中にα値の情報を埋め込むと、このＣＧ画像に対して圧縮率の高い非可逆圧縮で圧縮した場合に、元画像の情報が一部失われてしまう。そのため、ＣＧ画像を復元する時にα値が正しい値に復元しない可能性があり、不向きである。また、画像データとは別にα値の情報を送信する方法が考えられるが、この場合、ピクセル毎にα値の情報を送信する必要があるため、データの削減には不向きである。
【００１０】
本発明は前述の問題点に鑑み、半透明の領域を有するＣＧ画像の通信量を抑えつつ、正確にＣＧ画像をクロマキー合成できる画像処理システムを構成できるようにすることを目的としている。
【課題を解決するための手段】
【００１１】
本発明に係る画像処理装置は、半透明の領域を有するＣＧ画像を撮像画像と合成する画像合成装置とともに画像処理システムを構成する画像処理装置であって、前記ＣＧ画像から半透明の領域を検出する検出手段と、前記検出手段によって検出された半透明の領域に基づいて、前記ＣＧ画像を半透明の画像と非半透明の画像とに分割する分割手段と、前記分割手段によって分割された半透明の画像及び非半透明の画像を前記画像合成装置に送信する送信手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、半透明の領域を有するＣＧ画像の通信量を抑えつつ、正確にＣＧ画像をクロマキー合成する画像処理システムを構成することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るＭＲシステムの構成例を示す図である。
【図２】本発明の実施形態に係るＭＲシステムを実現するために必要な機能構成例を示すブロック図である。
【図３】本発明の第１の実施形態において、ＣＧを描画する処理を説明するための図である。
【図４】本発明の第１の実施形態におけるコントローラの分割ユニットの詳細な構成例を示すブロック図である。
【図５】半透明エリアと非半透明のエリアとに分割する処理を説明するための図である。
【図６】本発明の第１の実施形態におけるコントローラからＨＭＤへ送信するパケットの一例を示す図である。
【図７】本発明の第１の実施形態におけるＨＭＤの画像合成ユニットの詳細な構成例を示すブロック図である。
【図８】半透明のブロックをクロマキー合成する手順を説明するための図である。
【図９】本発明の実施形態において、コントローラがＣＧ画像を分割してパケットをＨＭＤに送信する処理手順の一例を示すフローチャートである。
【図１０】本発明の第１の実施形態において、半透明ブロックを検出する詳細な処理手順の一例を示すフローチャートである。
【図１１】本発明の実施形態において、ＣＧ画像を分割する詳細な処理手順の一例を示すフローチャートである。
【図１２】本発明の実施形態において、ＣＧ画像を受信してから合成画像を表示するまでの処理手順の一例を示すフローチャートである。
【図１３】本発明の第１の実施形態において、画像の合成を行う詳細な処理手順の一例を示すフローチャートである。
【図１４】半透明の画素データの一例を示す図である。
【図１５】本発明の第２の実施形態におけるコントローラの分割ユニットの詳細な構成例を示すブロック図である。
【図１６】ブロック毎のα値を計算する処理を説明するための図である。
【図１７】本発明の第２の実施形態におけるＨＭＤの画像合成ユニットの詳細な構成例を示すブロック図である。
【図１８】ピクセル毎のα値へ計算する処理を説明するための図である。
【図１９】本発明の第２の実施形態において、半透明ブロックを検出する詳細な処理手順の一例を示すフローチャートである。
【図２０】本発明の第２の実施形態において、画像の合成を行う詳細な処理手順の一例を示すフローチャートである。
【図２１】α値を補正する手順を説明するための図である。
【図２２】ＨＭＤ使用者がＨＭＤを装着している状態を示す図である。
【図２３】半透明にしてクロマキー合成する例を示す図である。
【発明を実施するための形態】
【００１４】
（第１の実施形態）
以下、本発明の第１の実施形態について、図面を参照しながら説明する。
図１は、本実施形態に係るＭＲシステム（画像処理システム）１００の構成例を示す図である。
図１において、ＭＲシステム１００はビデオシースルー型の頭部搭載型の表示装置（以下、ＨＭＤ）１０１、コントローラ１０２、及び表示部１０３を有する画像処理装置１０４から構成されている。
【００１５】
ＨＭＤ１０１は、使用者の頭部に装着され、詳細は後述するが、撮像部と、画像表示部と、それらを制御する制御部とを含んでいる。撮像部はビデオカメラ等で構成され、使用者の視点の位置姿勢とほぼ同じになる位置姿勢で取付けられており、使用者の観察している現実空間の画像を取得する。画像表示部は、現実空間画像に画像処理装置１０４で生成したＣＧ画像を重畳した合成画像や、撮影した現実空間を示す撮像画像などを表示する。また、ＨＭＤ１０１は撮像部で撮影された現実空間の撮像画像とＣＧ画像とを合成する機能も有する。画像表示部は、使用者のそれぞれの眼の前に光学系を含む構成で取付けられている。
【００１６】
ＨＭＤ１０１は、ＷＬＡＮ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＰＡＮ（Ｗｉｒｅｌｅｓｓ  Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のような、小規模ネットワークを構成する無線接続されたコントローラ１０２と通信する。なお、ＨＭＤ１０１とコントローラ１０２との間の通信は、無線通信方式に限らず、有線通信方式を利用してもよい。
【００１７】
コントローラ１０２と有線接続された画像処理装置１０４は、例えばパーソナルコンピュータ（ＰＣ）であり、ＣＧ画像の描画を行う画像処理部を有する。画像処理装置１０４はコントローラ１０２を介してＨＭＤ１０１と通信を行う。また、画像処理装置１０４は、キーボードなどを備え、データや、命令等を入力し、入力されたデータの表示や、命令の結果等は、表示部１０３に表示される。
【００１８】
なお、図１に示す例では、画像処理装置１０４とコントローラ１０２とを別々のハードウェア構成としている。一方、コントローラ１０２の持つ機能をすべて画像処理装置１０４内に実装して一体化してもよく、画像処理装置１０４とコントローラ１０２とがそれぞれ有する機能を集めた専用の画像処理装置を構成してもよい。
【００１９】
図２は、本実施形態に係るＭＲシステム１００を実現するために必要な機能構成例を示すブロック図である。
図２において、ＨＭＤ２０１は、表示部２０３に表示するための現実空間画像を撮影する撮像部２０２、撮像画像とＣＧ画像との合成画像を表示する表示部２０３、及び画像や制御信号を送受信する無線Ｉ／Ｆユニット２０７を備えている。さらに、ＨＭＤ２０１を制御する制御部２０６、撮像画像からＨＭＤ２０１の位置姿勢を求める位置姿勢算出部２０４、ＣＧ画像と撮像画像を重畳する画像合成ユニット２０５、及びその他不図示の機能部を備えている。なお、ＭＲシステムが３Ｄ映像に対応できるように、撮像部２０２及び表示部２０３は、左眼用、右眼用と別々に存在してもよい。
【００２０】
コントローラ２１０は、ＨＭＤ２０１と画像や制御信号を送受信する無線Ｉ／Ｆユニット２１１、及び画像処理装置２２０と画像や制御信号を送受信する画像処理装置Ｉ／Ｆ通信ユニット２１２を備えている。さらに、画像処理装置２２０から受信した画像を分割する分割ユニット２１３、及びその他不図示の機能部を備えている。
【００２１】
画像処理装置２２０は、画像や制御信号等を送受信するＨＭＤ  Ｉ／Ｆ通信ユニット２２１、及びＣＧ等のコンテンツが格納されているコンテンツＤＢ  ２２３を備えている。さらに、受信した位置姿勢情報からＣＧを描画するＣＧ描画部２２２、及びその他不図示の機能部を備えている。
【００２２】
上述の構成において、ＨＭＤ２０１の撮像部２０２が撮影した撮像画像からＨＭＤ２０１の位置姿勢を位置姿勢算出部２０４で算出し、この位置姿勢データを、コントローラ２１０を介して画像処理装置２２０に送信する。画像処理装置２２０は、受信した位置姿勢データを元にＣＧ描画部２２２で物体などのＣＧを描画し、このＣＧ画像を、コントローラ２１０を介してＨＭＤ２０１へ送信する。
【００２３】
ＨＭＤ２０１は、コントローラ２１０から受信したＣＧ画像と撮像部２０２で撮影した撮像画像とを画像合成ユニット２０５で合成して、表示部２０３に表示する。このような手順により、使用者はリアルタイムで撮影した撮像画像にＣＧ画像を重畳した合成画像を見ることが可能となる。よって、ビデオシースルーＨＭＤを装着することにより、現実世界と仮想世界とがリアルタイムにシームレスに融合した複合現実世界を体験できる。
【００２４】
なお、図２に示す例では、位置姿勢算出部２０４をＨＭＤ２０１が備える構成にしているが、位置姿勢算出部２０４をコントローラ２１０や画像処理装置２２０が備える構成にしてもよい。この場合、ＨＭＤ２０１からコントローラ２１０には位置姿勢を算出するために必要なデータのみ（例えば撮像画像を２値化した画像）を送信する。さらに、本実施形態では、ＨＭＤ２０１の位置姿勢を撮像画像から求めるようにしているが、撮像画像と外部のセンサーとを組み合わせて位置姿勢を求めるようにしても、外部センサーからのみ位置姿勢を求めるようにしてもよい。
【００２５】
図３は、本実施形態において、画像処理装置２２０のＣＧ描画部２２２でＣＧを描画する処理を説明するための図である。なお、図３において、１つの四角は１つのピクセルを示しているものとする。
【００２６】
図３（ａ）には、「Ａ」という文字のＣＧ３０２を描き、文字の中に半透明のエリア３０３が存在する例を示している。ＣＧ描画部２２２は、図３（ａ）に示すような半透明のエリアがあるＣＧを描画する際に、図３（ｂ）に示す例のように描画する。つまり、半透明のあるエリアの最左側と最右側との境界ピクセルを半透明のエリアであることを示す色に置き換える。図３（ｂ）に示す例では、ピクセル３１３が置き換えられた境界ピクセルである。この半透明のエリアであることを示すピクセルの色はＣＧやクロマキー色ではない色とする。また、図３（ｃ）には、半透明の個所３２１、３２２のみのＣＧを描画した時の例を示している。
【００２７】
本実施形態においては、ＣＧ画像の中に半透明のエリアがある場合に、この境界ブロックを設けることによって、コントローラ２１０は半透明のエリアを判別することができるが、半透明のエリアを判別できるのであれば、別の方法でも構わない。
【００２８】
図４は、本実施形態における図２の分割ユニット２１３の詳細な構成例を示すブロック図である。
図４において、半透明ブロック検出部４０３は、画像処理装置２２０から受信したＣＧ画像の中に半透明の個所があるか否かを判定する。検出用メモリ４０１は、半透明ブロック検出部４０３の処理に必要なデータを格納する。ＣＧ分割部４０４は、ＣＧ画像を半透明のエリアと非半透明のエリアとに分割し、分割用メモリ４０２に格納する。エンコード部４０５は、ＣＧ画像をエンコードする。
【００２９】
なお、本実施形態ではＣＧ画像をエンコード（圧縮）するものとして説明するが、ＣＧ画像を圧縮しなくてもよいし、圧縮する場合には圧縮方法は特に限定されない。また、本実施形態では、半透明の検出や、ＣＧの分割は、エンコード部４０５でエンコード（圧縮）するブロック単位で行われるものとして説明するが、必ずしもこの限りではない。
【００３０】
まず、半透明ブロック検出部４０３によりＣＧ画像の中から半透明のエリアが存在するか否かを判定するロジックについて説明する。画像処理装置２２０から受信するＣＧ画像は、半透明のエリアが存在する場合には図３（ｂ）に示すように半透明のエリアであることを示す境界ピクセルが含まれた画像である。そこで、半透明ブロック検出部４０３は、ＣＧ画像の中に半透明の境界ピクセルが存在するか否かを判定する。そして、境界ピクセルが存在する場合には、この境界ピクセル内のピクセルは半透明のエリアであるものと判定する。
【００３１】
次に、ＣＧ分割部４０４によりＣＧ画像の中から半透明エリアと非半透明エリアとに分割するロジックについて説明する。
図５は、半透明エリアと非半透明のエリアとに分割する処理を説明するための図である。図５（ａ）には、画像処理装置２２０から受信したＣＧ画像の一例を示している。なお、１つの四角はエンコード部４０５でエンコードするブロックの単位を示している。
【００３２】
図５（ｂ）には、図５（ａ）に示す画像の上から二行目のブロックを分割した例を示している。図５（ｂ）に示す例の場合、上から二行目のブロックには半透明のエリアがないため、ＣＧ画像はブロック単位に分割される。
【００３３】
図５（ｃ）には、図５（ａ）に示す画像の上から三行目のブロックを分割した例を示している。図５（ｃ）に示す例の場合、左から三つ目までのブロックには半透明のエリアがないため、そのままブロック単位に分割される。これに対して左から四つ目のブロック５０１は、半透明のエリアが含まれているブロックになっている。この場合、ブロック５０１をブロック５０２とブロック５０３とに分割する。ブロック５０２は半透明のエリアを含まないブロックになっており、ブロック５０３は非半透明のエリアを含まないブロックになっている。このように半透明のエリアを含むブロックの場合は、半透明を含まないブロックと、非半透明を含まないブロックとに分割する。
【００３４】
エンコード部４０５でエンコードする際には、ブロック５０２のように半透明部を含まないブロックよりも、ブロック５０３のように半透明部を含むブロックの方が圧縮率が高くなるようにしてもよいし同じ圧縮率で圧縮してもよい。
【００３５】
図６は、コントローラ２１０からＨＭＤ２０１へ送信するパケット６００の一例を示す図である。図６に示すように、パケットは、ヘッダー６０１、ブロック番号６０２、及び画像データ６０３から構成されている。ブロック番号６０２の領域には、画像データがどのブロックかを示す番号が格納され、画像データ６０３を格納する領域には、コントローラ２１０の分割ユニット２１３におけるエンコード部４０５でエンコードされたＣＧ画像の一部が格納されている。なお、ブロック番号６０２の領域には基本的にシーケンシャル番号が格納されるが、図５（ｃ）に示したブロック５０２、５０３のように１つのブロックを２つのブロックに分割した時は、ブロック番号６０２の領域には同じブロック番号が格納される。
【００３６】
図７は、本実施形態における図２の画像合成ユニット２０５の詳細な構成例を示すブロック図である。
図７において、デコード部７０１は、無線Ｉ／Ｆユニット２０７で受信したＣＧ画像をデコードし、受信した画像をデコード部用メモリ７０２に格納する。合成部７０３は、撮像画像とＣＧ画像とを合成し、合成用メモリ７０４に格納する。また、撮像画像用メモリ７０５は撮像部２０２で撮影された撮像画像を格納する。
【００３７】
次に、合成部７０３によって撮像画像とＣＧ画像とを合成する方法について説明する。合成部７０３はデコード部７０１によりデコードされたＣＧ画像と撮像画像とをクロマキー合成する。クロマキー合成を行う際に、１つ前に合成したブロックと同じブロック番号のブロックを受けた場合は、そのブロックは半透明のエリアを含むブロックであるため、同じブロックについて半透明で再度クロマキー合成を行う。本実施形態では、先に半透明のエリアを含まないブロックと撮像画像とをクロマキー合成し、その結果と半透明を含むブロックとを半透明でクロマキー合成するが、処理の順番を逆にしてもよい。つまり、先に半透明のエリアを含むブロックと撮像画像とを半透明でクロマキー合成し、その結果と半透明のエリアを含まないブロックとをクロマキー合成してもよい。
【００３８】
図８は、半透明のブロックをクロマキー合成する手順を説明するための図である。図８において、ブロック８０１は半透明のエリアを含まないＣＧ画像のブロックであり、ブロック８０２は撮像画像のブロックである。まず、これらの２つのブロック８０１、８０２のクロマキー合成を行うと、ブロック８０３が生成される。次に、生成されたブロック８０３と半透明のエリアを含むＣＧ画像のブロック８０４とを半透明でクロマキー合成を行う。その結果、合成画像のブロック８０５が生成される。
【００３９】
なお、本実施形態では、透明度を表すα値を固定して半透明にクロマキー合成しており、このα値はシステム固有の値でもよいし、システム起動時にユーザーが入力して決めるようにしてもよい。また、本実施形態では詳細な説明は省略するが、非可逆圧縮でエンコードした場合のクロマキー合成に関しては、公知の技術を用いてＣＧとクロマキー色との境界をきれいにする手法を使用する。
【００４０】
図９は、コントローラ２１０がＣＧ画像を分割してパケットをＨＭＤ２０１に送信する処理手順の一例を示すフローチャートである。
まず、Ｓ９０１において、半透明ブロック検出部４０３は、画像処理装置２２０から受信したＣＧ画像の中に半透明の個所を検出する。なお、この処理の詳細については図１０を参照しながら後述する。
【００４１】
次に、Ｓ９０２において、ＣＧ分割部４０４は、ＣＧ画像の中に半透明のエリアを含む場合に、図５（ｃ）に示した例のように、半透明のエリアを含まないブロックと半透明のエリアを含むブロックとに分割する。この処理の詳細については図１１を参照しながら後述する。続いてＳ９０３において、エンコード部４０５は、ブロックに分割したＣＧ画像をエンコードする。そして、Ｓ９０４において、無線Ｉ／Ｆユニット２１１はブロック番号とエンコードしたＣＧ画像とをもとにパケットを作成し、ＨＭＤ２０１へ送信する。
【００４２】
図１０は、図９のＳ９０１において、半透明ブロック検出部４０３が半透明ブロックを検出する詳細な処理手順の一例を示すフローである。
まず、Ｓ１００１において、受信したＣＧ画像の１つのブロック単位で水平ライン内に半透明の境界ピクセルが含まれているか否かを判定する。この判定の結果、半透明の境界ピクセルが存在する場合は、Ｓ１００２において、半透明の境界ピクセルの間にあるピクセルを半透明でクロマキー合成するピクセルとし、半透明のピクセルまたは半透明でないピクセルを示す情報を作成する。
【００４３】
次に、Ｓ１００３において、半透明の境界ピクセルを隣の半透明のピクセルに置き換える。この処理によって、半透明の境界を示す境界ピクセルはすべて半透明のピクセルとなる。そして、Ｓ１００４において、１つのブロック単位の最終ラインまで処理が終了したか否かを判定する。この判定の結果、最終ラインまで処理が終了していない場合はＳ１００１に戻り、ブロック単位で次の水平ラインについて処理を行う。
【００４４】
一方、Ｓ１００４の判定の結果、ブロック単位で最終ラインまで処理が終了した場合は、Ｓ１００５において、各ブロックに対してピクセル毎に半透明か非半透明かを示すピクセル情報とともに、検出用メモリ４０１にそのＣＧ画像をブロック単位で格納する。そして、Ｓ１００６において、ＣＧ分割部４０４へ処理を開始するように通知する。次に、Ｓ１００７において、１枚のＣＧ画像におけるすべてのブロックについて処理が終了したか否かを判定する。この判定の結果、まだ処理を行っていない部分が存在する場合はＳ１００１に戻り、１枚のＣＧ画像に対して処理が終了した場合は、そのまま処理を終了する。
【００４５】
図１１は、図９のＳ９０２において、ＣＧ分割部４０４がＣＧ画像を分割する詳細な処理手順の一例を示すフローチャートである。
まず、Ｓ１１０１において、検出用メモリ４０１からＣＧ画像の１つのブロックとそのブロックに対応するピクセル情報とを読み出す。そして、Ｓ１１０２において、読み出したピクセル情報から半透明のピクセルがブロック内に存在しているか否かを判定する。この判定の結果、半透明のピクセルがブロック内に存在しない場合は、Ｓ１１０４に進み、ブロック番号とともにそのブロックを分割用メモリ４０２に格納する。
【００４６】
一方、Ｓ１１０２の判定の結果、半透明のピクセルがブロック内に存在する場合は、Ｓ１１０３において、図５（ｃ）に示した例のように、ピクセル情報を元に該当するブロックを、半透明を含むブロックと半透明を含まないブロックとに分割する。そして、Ｓ１１０４において、分割したブロックの画像をブロック番号とともに分割用メモリ４０２に格納する。
【００４７】
続いてＳ１１０５において、エンコード部４０５へ処理を開始するように指示する。そして、Ｓ１１０６において、１枚の画像におけるすべてのブロックに対して処理を終了したか否かを判定する。この判定の結果、まだ処理を行っていないブロックが存在する場合はＳ１１０１に戻り、全てのブロックについて処理が終了した場合はそのまま処理を終了する。
【００４８】
次に、クロマキー合成を行う際の処理について説明する。図１２は、ＨＭＤ２０１がコントローラ２１０からＣＧ画像を受信してから合成画像を表示するまでの処理手順の一例を示すフローチャートである。
まず、Ｓ１２０１において、デコード部７０１は、受信したパケットの中のＣＧ画像に対してデコードを行う。そして、Ｓ１２０２において、デコード部７０１は、デコード後のＣＧ画像とブロック番号の情報とをデコード部用メモリ７０２に格納する。続いてＳ１２０３において、合成部７０３は、ＣＧ画像と撮像画像とを合成する。この処理の詳細については図１３を参照しながら後述する。そして、Ｓ１２０４において、合成部７０３は、合成画像を表示部２０３へ送る。
【００４９】
図１３は、図１２のＳ１２０３において、合成部７０３が画像の合成を行う詳細な処理手順の一例を示すフローチャートである。
まず、Ｓ１３０１において、デコード部用メモリ７０２からブロック単位でＣＧ画像を読み出す。そして、Ｓ１３０２において、Ｓ１３０１で読み出したブロック単位のＣＧ画像のブロック番号が、１つ前に読み出したブロックのブロック番号と同じか否かを判定する。この判定の結果、同じブロック番号である場合は、今回読み出したブロックは半透明でクロマキー合成しなければならないため、Ｓ１３０３に進む。そして、Ｓ１３０３において、合成用メモリ７０４から前回のブロックに対してクロマキー合成したブロックの合成画像を読み出す。次に、Ｓ１３０４において、Ｓ１３０１及びＳ１３０３で読み出したそれぞれのブロックの画像を半透明でクロマキー合成する。
【００５０】
一方、Ｓ１３０２の判定の結果、１つ前に読み出したブロックのブロック番号と異なる場合は、Ｓ１３０５において、Ｓ１３０１で読み出したブロックのＣＧ画像に対応する撮像画像を撮像画像用メモリ７０５から読み出す。そして、Ｓ１３０６において、これらの２つの画像をクロマキー合成する。
【００５１】
次に、Ｓ１３０７において、Ｓ１３０４またはＳ１３０６でクロマキー合成した合成画像を合成用メモリ７０４に格納する。そして、Ｓ１３０７において、１枚の画像におけるすべてのブロックについて処理が終了したか否かを判定する。この判定の結果、まだ処理を行っていないブロックが存在する場合はＳ１２０１に戻り、全てのブロックについて処理が終了した場合はそのまま処理を終了する。
【００５２】
以上のように本実施形態によれば、コントローラ２１０を、ＣＧ画像を半透明の領域と非半透明の領域とに分割し、それぞれを圧縮して送信する構成とした。また、ＨＭＤ２０１は、まず非半透明の領域を撮像画像と合成し、その後、非半透明の領域を半透明にクロマキー合成するようにした。このようにＣＧを描画する装置とクロマキー合成を行う装置とが別々のシステムにおいて、データ量を増やすことなく簡易な構成でかつ正確に半透明でクロマキー合成を行うことが可能となる。
【００５３】
（第２の実施形態）
第１の実施形態では、ＣＧ画像中の半透明でクロマキー合成を行う領域を検出し、半透明があるブロックについては、２つのブロックに分割した。このように、データ量を大幅に増やすことなく簡易な構成により半透明でクロマキー合成を行うようにしている。本実施形態では、第１の実施形態と比べてデータ量を大幅に増やすことなく、より高精細に半透明のクロマキー合成を行う方法について説明する。なお、本実施形態におけるＭＲシステムの構成については図１及び図２と同様であるため説明を省略する。
【００５４】
図１４（ａ）は、本実施形態において、画像処理装置２２０のＣＧ描画部２２２でＣＧを描画する処理を説明するための図である。なお、図１４（ａ）において、１つの四角は１つのピクセルを示しているものとする。図３に示した例と同様に、非半透明のエリア１４０２の内部の半透明のあるエリア１４０４の最左側と最右側とを半透明のエリアであることを示す色の境界ピクセル１４０３に置き換える。
【００５５】
図１４（ｂ）は、半透明の個所の画素データの一例を示す概略図である。本実施形態では、画素データは、Ｒ、Ｇ、Ｂそれぞれ８ｂｉｔで構成されており、各８ｂｉｔのうち、４ｂｉｔをα値の情報に割り当てる。本実施形態では、半透明の個所のα値を画素データの中に埋め込むものとするが、画素データの中に埋め込まず、別データとするなど、他の方法を用いてもよい。また、画素データ中のα値のｂｉｔ数は４ｂｉｔでなくてもよく、ｂｉｔ数は可変でもよい。
【００５６】
図１５は、本実施形態における図２の分割ユニット２１３の詳細な構成例を示すブロック図である。図４に示した構成と比べると、ブロックα値計算部１５０１をさらに備えており、ブロックα値計算部１５０１は、各ピクセルのα値からブロック毎のα値を計算する。なお、他の構成は図４と同様であるため、説明は省略する。
【００５７】
図１６は、ブロック毎のα値を計算する処理を説明するための図である。図１６に示す例では、１つのブロックを３×３のピクセルで構成されているものとする。図１６（ａ）に示す例では、各ピクセルのα値１６０１を計算した結果、１つのブロックのα値１６０２が得られている。図１６（ａ）に示す例の場合、ブロック内のα値の平均値をブロックのα値とするため、ブロックのα値は４となる。なお、ブロックを構成するピクセル数は３×３ピクセルとしたが、ピクセル数については特に限定されない。また、ブロックのα値を各ピクセルの平均値に限定されるものではなく、それ以外の値を採用してもよい。
【００５８】
半透明ブロック検出部４０３は、画像処理装置２２０から受信したＣＧ画像からピクセル毎のα値をブロックα値計算部１５０１へ送る。そして、ブロックα値計算部１５０１は、受け取ったピクセル毎のα値からブロック単位のα値を計算する。また、ブロックα値計算部１５０１は、計算したブロック単位のα値の情報を無線Ｉ／Ｆユニット２１１へ送る。無線Ｉ／Ｆユニット２１１は、受け取ったα値の情報をパケットの中に埋め込んでＨＭＤ２０１へ送信する。なお、図１６（ｂ）には、ＨＭＤ２０１へ送信するパケット１６００の例を示しており、パケット１６００の中にブロック毎のα値の情報１６０３を埋め込むようにしている。
【００５９】
図１７は、本実施形態における図２の画像合成ユニット２０５の詳細な構成例を示すブロック図である。図７に示した構成と比べると、ピクセルα値計算部１７０１、ピクセルα値用メモリ１７０２、及び半透明補正部１７０３をさらに備えている。なお、他の構成は図７と同様であるため、説明は省略する。
【００６０】
ピクセルα値計算部１７０１は、ブロック毎のα値からピクセル毎のα値へ計算し、その結果をピクセルα値用メモリ１７０２に格納する。半透明補正部１７０３は、ピクセルα値計算部１７０１で計算したピクセル毎のα値を補正する。
【００６１】
このように本実施形態では、ピクセルα値計算部１７０１は受け取ったブロック毎のα値からピクセル毎のα値に計算する。図１８は、ピクセル毎のα値へ計算する処理を説明するための図である。なお、図１８に示す例では、１つのブロックを３×３のピクセルとする。まず、図１８（ａ）に示すように、ブロック毎のα値をブロックの中心のピクセルのα値とし、周囲のブロックのα値と線形補間を行う。そして、図１８（ｂ）には、３×３ブロックの時のα値をピクセル毎のα値に計算した時の例を示している。なお、本実施形態では、ピクセル毎のα値を求めるのに線形補間を用いているが、それ以外の方法によりピクセル毎のα値を求めてもよい。
【００６２】
コントローラ２１０でＣＧ画像を分割して送信するまでの処理手順は、基本的には図９と同様であるため説明を省略する。また、ＨＭＤ２０１がコントローラ２１０からＣＧ画像を受信してから合成画像を表示するまでの処理手順も図１２と同様であるため説明を省略する。一方、図９のＳ９０１の詳細な手順については、図１０と異なっている。また、図１２のＳ１２０３の詳細な手順についても、図１３と異なっている。以下、これらの処理手順について説明する。
【００６３】
図１９は、図９のＳ９０１において、半透明ブロックを検出する詳細な処理手順の一例を示すフローである。なお、図１０に示した処理と同一の処理については説明を省略する。以下、図１０に示した処理手順との違いを中心に説明する。
【００６４】
Ｓ１００３において、半透明ブロック検出部４０３が境界ピクセルを置き換えると、次のＳ１９０１において、半透明ブロック検出部４０３は半透明のピクセルに対してピクセル毎にα値を取り出し、検出用メモリ４０１に格納する。前述したように、半透明のピクセルは、α値を取り出されると画素データとしては４ｂｉｔと半分になるため、その後、半透明ブロック検出部４０３は半透明のピクセルの画素データの値を２倍にする。この処理により、半透明のピクセルの画素データも通常の画素データとなる。
【００６５】
また、Ｓ１９０２においては、ブロックα値計算部１５０１は、ブロック内の各ピクセルのα値を検出用メモリ４０１から読み出し、ブロックのα値を、図１６（ａ）に示した例のように計算する。
【００６６】
図２０は、図１２のＳ１２０３において、画像の合成を行う詳細な処理手順の一例を示すフローチャートである。なお、図１３に示した処理と同一の処理については説明を省略する。以下、図１３に示した処理手順との違いを中心に説明する。
【００６７】
Ｓ２００１においては、ピクセルα値計算部１７０１は、該当するブロック及び周囲の９ブロックのα値の情報をピクセルα値用メモリ１７０２から読み出す。そして、Ｓ２００２において、ピクセルα値計算部１７０１は、Ｓ２００１で読み出した１０ブロックのα値から該当するブロックの各ピクセルのα値を、図１８に示したような方法で計算する。そして、計算結果のピクセル毎のα値をピクセルα値用メモリ１７０２に格納する。
【００６８】
次に、Ｓ２００３において、半透明補正部１７０３は、半透明のブロックのＣＧ画像と、Ｓ２００２で計算したα値とを比較して、α値の補正を行う。α値を補正する詳細な方法に関しては後述する。そして、Ｓ２００４において、合成部７０３は、Ｓ１３０１及びＳ１３０３で読み出したブロックのＣＧ画像を、Ｓ２００１〜Ｓ２００３で計算したピクセル毎のα値をもとに半透明でクロマキー合成する。
【００６９】
図２１は、図２０のＳ２００３においてα値を補正する手順を説明するための図である。図２１（ａ）は、ブロック毎のα値の一例を示した図であり、図２１（ｂ）は、図２１（ａ）に示すブロックの真中の行に対してピクセル毎のα値に計算した例を示す図である。
【００７０】
図２０のＳ２００３では、半透明補正部１７０３はピクセル毎のα値と、デコード後の半透明ブロックの画素データとを比較する。そしてピクセルの画素データがクロマキー色であるにも関わらず、Ｓ２００１〜Ｓ２００３で計算した対応するピクセルのα値が０でない場合に、このα値を０に補正する。つまりクロマキー色にも関わらず、α値が０でない場合は、α値をブロック毎に算出したことによって生じた誤差であるため、α値を０に補正する。図２１（ｂ）に示す例では、一番左端のピクセルが、これに該当した例である。
【００７１】
以上のように本実施形態によれば、ブロック毎にα値の情報を持つようしたことで、第１の実施形態に比べてわずかにデータ量が増加するものの、より高精細に半透明のクロマキー合成を行うことが可能になる。
【００７２】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７３】
４０３  半透明ブロック検出部
４０４  ＣＧ分割部
４０５  エンコード部
【図１】
2015191314.tif 000003
【図２】
2015191314.tif 000004
【図３】
2015191314.tif 000005
【図４】
2015191314.tif 000006
【図５】
2015191314.tif 000007
【図６】
2015191314.tif 000008
【図７】
2015191314.tif 000009
【図８】
2015191314.tif 000010
【図９】
2015191314.tif 000011
【図１０】
2015191314.tif 000012
【図１１】
2015191314.tif 000013
【図１２】
2015191314.tif 000014
【図１３】
2015191314.tif 000015
【図１４】
2015191314.tif 000016
【図１５】
2015191314.tif 000017
【図１６】
2015191314.tif 000018
【図１７】
2015191314.tif 000019
【図１８】
2015191314.tif 000020
【図１９】
2015191314.tif 000021
【図２０】
2015191314.tif 000022
【図２１】
2015191314.tif 000023
【図２２】
2015191314.tif 000024
【図２３】
2015191314.tif 000025