(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0014】
図1は、本発明の実施形態に係る画像処理システムの構成を示す図である。第1の実施形態に係る画像処理システムは、高解像度画像データを2つの画像データ(分割画像データ)に分割し、分割された各画像データの画像処理を2つの画像処理チップで並列に行うものである。
【0015】
図1において、画像処理チップA101は、画像処理及びグラフィック生成処理を実行し、画像データにグラフィックデータを重畳した後、表示デバイスに出力する機能を有する。
図1に示すように、画像処理チップA101は、画像データを受信する受信部102、画像データに対して所定の処理を施す画像処理部103、グラフィックデータ生成処理を制御するプロセッサ107、グラフィックデータ生成処理を行うグラフィック生成部106、画像データにグラフィックデータを重畳する合成部104、及び、表示デバイスに対して画像データを出力する出力部105を備える。メモリ108は、画像処理チップA101に対応するメモリである。また、プロセッサ107は、グラフィック分割部110、順番決定部111及び生成中止指示部112を備える。グラフィック生成部106は、生成完了通知部109を備える。
【0016】
本実施形態に係る画像処理システムは、高解像度画像データを処理するため、画像処理チップA101と、画像処理チップA101と同等の画像処理チップB121との2つのチップを備える。画像処理チップA101は、表示デバイスの左半分の表示領域を担当する。即ち、画像処理チップA101は、表示デバイスの左半分の表示領域に表示される画像データ(以下、左側画像データと称す)130に対して画像処理を施し、画像処理後の左側画像データ131とグラフィックデータとを合成した後、表示デバイスに対して出力する。より具体的には、受信部102は、左側画像データ130を受信すると、左側画像データ130を画像処理部103に出力する。画像処理部103は、左側画像データ130に対して、IP(インタレース・プログレッシブ)変換やエッジ強調等の画像処理を施し、画像処理後の左側画像データ131を合成部104に出力する。合成部104は、メモリ108からグラフィックデータを読み出し、画像処理後の左側画像データ130に重畳することにより、左側表示画像データ138を生成する。そして、合成部104は、左側表示画像データ138を出力部105に出力する。出力部105は、表示デバイスに左側表示画像データ138を出力することにより、左側表示画像データ138を表示させる。
図1において、左側表示画像データ138における領域C、領域D及び領域Eは、画像処理後の左側画像データ131に対して重畳するように合成されたグラフィックデータである。
【0017】
同様に、画像処理チップB121は、表示デバイスの右半分の表示領域を担当する。即ち、画像処理チップB121は、表示デバイスの右半分の表示領域に表示される画像データ(以下、右側画像データと称す)132の画像処理を施す。そして、画像処理チップB121は、画像処理後の右側画像データ133とグラフィックデータとを合成した後、右側表示画像データ139として表示デバイスに対して出力する。
図1において、右側表示画像データ139における領域Fは、画像処理後の右側画像データ133に対して重畳するように合成されたグラフィックデータである。
【0018】
メモリ124は、画像処理チップB121に対応するメモリである。つまり、画像処理後の右側画像データ133に合成されるグラフィックデータは、メモリ124から読み出されたグラフィックデータである。なお、画像処理チップB121における受信部102、画像処理部103、合成部104及び出力部105は夫々、画像処理チップA101における受信部102、画像処理部103、合成部104及び出力部105と同様の構成である。グラフィック生成部122は、生成完了通知部125を備える。
【0019】
表示デバイスは、左側表示画像データ138と右側表示画像データ139とを合わせて、1つの高解像度画像データとして表示する。本実施形態では、説明の便宜上、メモリ108及び124は、グラフィックデータを格納するためのメモリであるとしているが、実際には、画像処理チップA101及び画像処理チップB121の画像処理部103が画像データを格納するためのフレームメモリとしても使用される。
【0020】
リモコンやキーボード等を介して入力されるユーザ指示140が画像処理チップA101のプロセッサ107に入力される。グラフィックデータとしては、表示されている画像データに関する情報、設定メニュー、Web画面及び写真等が挙げられ、表示サイズや表示位置は様々である。グラフィックデータは、高解像度画像データを分割した両方の境界をまたいで表示される場合もあれば、片側の領域のみに表示される場合もある。
【0021】
プロセッサ107は、ユーザ指示140から生成するグラフィックデータを確定し、グラフィック生成部106及び122が解釈可能なグラフィック生成命令に変換する。グラフィック生成命令としては、例えば、連続する同一記号の列を記号列の長さを示す数字で置き換えるランレングス命令等が一例として挙げられる。グラフィックデータの特性、例えば、図形であるのか、文字であるのか、又は、写真であるのかに応じて、部分毎に適切な命令フォーマットに切り替えながらグラフィック生成命令に変換するということも、効率的なグラフィックデータ生成のために一般的に行われている。また、グラフィックデータをいくつかに分割し、分割単位毎にグラフィック生成命令を生成する方法も公知であるため、ここでは詳細に説明しない。
【0022】
グラフィック生成部106及び122は、グラフィック生成命令を入力し、ビットマップデータ等のグラフィックデータを生成する。グラフィック生成部106及び122は、グラフィック生成命令の仕様変更に柔軟に対応するために、プロセッサとファームウエアで構成される場合もあれば、高速なグラフィックデータ生成を至上命題とし、フルハードで構成される場合もある。
【0023】
画像処理チップA101のプロセッサ107は、画像処理システム全体のグラフィックデータ生成処理を制御する。即ち、画像処理チップA101のプロセッサ107は、画像処理チップA101のグラフィック生成部106、及び、画像処理チップB121のグラフィック生成部122を制御することにより、グラフィックデータを生成する。
【0024】
グラフィック生成部106及び122は夫々、生成したグラフィックデータを一旦、自らが属している画像処理チップに対応するメモリに格納する。その後、グラフィック生成部106及び122は夫々、生成したグラフィックデータを合成する画像データの領域が他の画像処理チップが担当する領域である場合、当該グラフィックデータを他の画像処理チップに対応するメモリに転送する。例えば、画像処理チップB121のグラフィック生成部122は、領域E136及び領域F137のグラフィックデータを生成し、メモリ124に格納した場合、領域E136のグラフィックデータは、画像処理後の左側画像データ131に合成されるグラフィックデータである。そのため、領域E136のグラフィックデータは、画像処理チップB121のメモリ124から画像処理チップA101のメモリ108に転送されることになる。
【0025】
画像処理チップA101のプロセッサ107と画像処理チップB121のグラフィック生成部122との通信は、PCIバスやシリアル通信等、複数チップで並列処理を行う場合の一般的な通信用ルートが用いられる。同様に、画像処理チップA101と画像処理チップB121とは、画像処理等で相手側にあるデータを参照する等の理由で、一般的にPCIExpress等の高速なデータ転送用バスで接続されており、相手側のメモリにアクセスすることができる。即ち、画像処理チップA101は、画像処理チップB121に対応するメモリ124にアクセスすることができる。同様に、画像処理チップB121は、画像処理チップA101に対応するメモリ108にアクセスすることができる。領域E136のグラフィックデータのメモリ124からメモリ108への転送は、上記ルートを用いて行われる。
【0026】
グラフィック分割部110、順番決定部111及び生成中止指示部112は、プロセッサ107内部にハードウエアとして実装してもよいし、プロセッサ107上で動作するソフトウェアとして実装してもよい。グラフィック分割部110は、生成されたグラフィックデータを、グラフィック生成部106及び122が生成する単位となる領域に分割する。グラフィックデータの分割の際、分割されたグラフィックデータの領域が、分割された画像データの境界をまたぐ場合、少なくともその境界でグラフィックデータを分割するようにする。例えば、
図1に示すように、グラフィックデータが領域C、領域D、領域E及び領域Fに分割される際、領域E及び領域Fについては、左側表示画像データ138及び右側表示画像データ139の境界に基づいて分割される。
画像データの境界は、画像データ端の一例である。
【0027】
順番決定部111は、グラフィック分割部110により分割が決定された領域C、領域D、領域E及び領域Fをどの順番でグラフィック生成部106及び125に生成させるかを決定する。即ち、順番決定部111は、画像処理チップA101については、左側表示画像データ138から、左側表示画像データ138と右側表示画像データ139との境界への方向に、グラフィックデータを生成するように生成順番を決定する。一方、画像処理チップB121については、右側表示画像データ139から、左側表示画像データ138と右側表示画像データ139との境界への方向に、グラフィックデータを生成するように生成順番を決定する。より具体的には、画像処理チップA101については、順番決定部111は、領域C、領域D、領域E、領域Fの順番でグラフィックデータを生成するように決定される。一方、画像処理チップB121については、領域F、領域E、領域D、領域Cの順番でグラフィックデータを生成するように決定される。
【0028】
プロセッサ107は、グラフィック分割部110により決定されたグラフィックデータの分割方法に基づいて、グラフィック生成命令141を領域毎に生成する。そして、グラフィック分割部110は、順番決定部111で決定された順番で各領域のグラフィックデータを生成するよう、グラフィック生成命令141及び142をグラフィック生成部106及び122に対して通知する。即ち、プロセッサ107は、順番決定部111で決定された順番に従って、各領域に対応するグラフィック生成命令141をグラフィック生成部106に対して出力する。同様に、プロセッサ107は、順番決定部111で決定された順番に従って、各領域に対応するグラフィック生成命令142をグラフィック生成部122に対して出力する。
【0029】
グラフィック生成部106及び122は、グラフィック生成命令を入力すると、グラフィック生成命令の入力順番に従ってグラフィックデータを生成し、当該グラフィック生成部が属する画像処理チップに対応するメモリに格納する。グラフィック生成部106及び122(生成完了通知部109及び125)は、各領域のグラフィックデータの生成処理及びメモリへの格納処理が終了する度に、グラフィック生成完了通知143及び144をプロセッサ107に対して出力する。
【0030】
プロセッサ107は、グラフィック生成部106及び122から、全ての領域のグラフィックデータのグラフィック生成完了通知143及び144を入力すると、生成中止指示部112は、グラフィック生成部106及び122に対して、グラフィック生成中止命令145及び146を出力する。そして、プロセッサ107は、メモリ108に格納されたグラフィックデータを左側画像データ131に重畳させることを、画像処理チップA101の合成部104に指示する。また、プロセッサ107は、メモリ124に格納されたグラフィックデータを右側画像データ133に重畳させることを、画像処理チップB121の合成部104に指示する。
【0031】
次に、
図2を参照しながら、本実施形態に係る画像処理システムの処理の流れについて説明する。なお、
図2に示す処理は、プロセッサ107内においてCPUがROM等の記録媒体から必要なプログラム及びデータを読み込んで実行することにより実現する処理である。
【0032】
先ず、画像処理チップA101のプロセッサ107は、メニュー画面を表示させるためのユーザ指示140を入力する。ステップS101において、グラフィック分割部110は、ユーザ指示140に基づいて、グラフィックデータの分割方法を決定する。
【0033】
ステップS102において、順番決定部111は、グラフィック分割部110により決定された分割方法に基づいて、各領域のグラフィックデータの生成順番を決定する。なお、グラフィックデータの生成順番は、グラフィック生成部106及び122夫々について決定される。ステップS103において、プロセッサ107は、順番決定部111により決定された生成順番に従って、各領域のグラフィックデータに対応するグラフィク生成命令を生成する。
【0034】
ステップS104において、プロセッサ107は、グラフィック生成部106に対して、領域C、領域D、領域E、領域Fの順番でグラフィックデータを生成するよう、各領域のグラフィックデータに対応するグラフィック生成命令141を出力する。また、プロセッサ107は、グラフィック生成部122に対して、領域F、領域E、領域D、領域Cの順番でグラフィックデータを生成するよう、各領域のグラフィックデータに対応するグラフィック生成命令142を出力する。ステップS105において、プロセッサ107は、グラフィック生成部106及び122に対して、グラフィックデータの生成開始を指示する。これにより、グラフィック生成部106及び122は独立にグラフィックデータの生成処理を開始する。
【0035】
ステップS201において、グラフィック生成部106は、領域C134のグラフィックデータの生成を開始する。ステップS202において、グラフィック生成部106は、領域C134のグラフィックデータの生成を完了し、メモリ108に格納すると、グラフィック生成完了通知143をプロセッサ107に出力する。ステップS203において、グラフィック生成部106は、領域D135のグラフィックデータの生成を開始する。ステップS204において、グラフィック生成部106は、領域D135のグラフィックデータの生成を完了し、メモリ108に格納すると、グラフィック生成完了通知143をプロセッサ107に出力する。ステップS205において、グラフィック生成部106は、領域E136のグラフィックデータの生成を開始する。
【0036】
ステップS301において、グラフィック生成部122は、領域F137のグラフィックデータの生成を開始する。ステップS302において、グラフィック生成部122は、領域F137のグラフィックデータの生成を完了し、メモリ124に格納すると、グラフィック生成完了通知144をプロセッサ107に出力する。
【0037】
ステップS303において、グラフィック生成部122は、領域E136のグラフィックデータの生成を開始する。ステップS304において、グラフィック生成部122は、領域E136のグラフィックデータの生成を完了し、メモリ124に格納する。領域E136のグラフィックデータは、画像処理チップA101が担当する領域であるから、ステップS304において、グラフィック生成部122は、領域E136のグラフィックデータをメモリ124からメモリ108に転送する。
【0038】
ステップS305において、グラフィック生成部122は、領域E136のグラフィックデータをメモリ108に格納すると、グラフィック生成完了通知144をプロセッサ107に出力する。ステップS306において、グラフィック生成部122は、領域D135のグラフィックデータの生成を開始する。
【0039】
ステップS106において、プロセッサ107は、領域C、領域D、領域E及び領域Fの全てのグラフィックデータについてグラフィック生成完了通知を入力することにより、全ての領域のグラフィックデータを生成したと判定する。ステップS107において、生成中止指示部112は、グラフィック生成部106及び122に対して、グラフィック生成中止命令145及び146を出力する。グラフィック生成部106は、グラフィック生成中止命令145を入力すると、ステップS306で開始した領域E136のグラフィックデータの生成処理を中止する。グラフィック生成部122は、グラフィック生成中止命令146を入力すると、ステップS205で開始した領域D135のグラフィックデータの生成処理を中止する。ステップS108において、プロセッサ107は、画像データとグラフィックデータとの合成処理の開始を、画像処理チップA101及び画像処理チップB121の合成部104に対して指示する。なお、上述した処理において、プロセッサ107がグラフィック生成完了通知を入力する処理は、受付手段の処理例である。
【0040】
ここで、
図3及び
図4を参照しながら、本実施形態における順番決定部111によるグラフィックデータの生成順番の決定方法について具体的に説明する。
図3は、本実施形態におけるグラフィックデータの生成順番の決定方法の第1の例を示す図である。
【0041】
図3に示すように、第1の例では、左側表示画像データ301(
図1の左側表示画像データ138に相当)については、矢印3011のように、左から右への方向の順番で各領域のグラフィックデータを生成することが決定されている。一方、右側表示画像データ302(
図1の右側表示画像データ139に相当)については、矢印3021のように、右から左への方向の順番で各領域のグラフィックデータを生成することが決定されている。従って、左側表示画像データ301の処理を担当する画像処理チップA101のグラフィック生成部106は、領域C、領域D、領域Eの順番でグラフィックデータを生成する。一方、右側領域302の処理を担当する画像処理チップB121のグラフィック生成部122は、領域E、領域D、領域Cの順番でグラフィックデータを生成する。
【0042】
図4は、本実施形態におけるグラフィックデータの生成順番の決定方法の第2の例を示す図である。
図4に示すように、第2の例では、左側表示画像データ401(
図1の左側表示画像データ138に相当)については、矢印4011のように、左から右への方向の順番で各領域のグラフィックデータを生成することが決定されている。一方、右側表示画像データ402(
図1の右側表示画像データ139に相当)については、矢印4021のように、右から左への方向の順番で各領域のグラフィックデータを生成することが決定されている。従って、左側表示画像データ401の処理を担当する画像処理チップA101のグラフィック生成部106は、領域C、領域D、領域E、領域F、領域Gの順番でグラフィックデータを生成する。一方、右側表示画像データ402の処理を担当する画像処理チップB121のグラフィック生成部122は、領域G、領域F、領域E、領域D、領域Cの順番でグラフィックデータを生成する。
【0043】
上述した実施形態では、高解像度画像データを空間で左右2つの領域に分割し、分割された各画像データの処理を2つの画像処理チップで並列に行う場合を例に挙げた。これに対し、次に、高解像度画像データを空間で3つの画像データに分割し、分割された3つの画像データの処理を3つの画像処理チップで並列に行う場合について説明する。即ち、ここでは、
図1に示した構成に画像処理チップB121と同等のチップを1つ追加した画像処理システムにて、上記分割された3つの画像データの処理を行う場合について説明する。
【0044】
図5は、3つの画像処理チップを用いた場合におけるグラフィックデータの生成順番の決定方法の例を示す図である。ここでは、
図5に示すように、左側表示画像データ501、中央表示画像データ502及び右側表示画像データ503のように、高解像度画像データを縦に分割した場合について考える。
【0045】
左側表示画像データ501については、矢印5011のように、左から右への方向の順番で各領域のグラフィックデータを生成することが決定されている。中央表示画像データ502については、矢印5021のように、中心から左右への方向の順番で各領域のグラフィックデータを生成することが決定されている。右側表示画像データ503については、矢印5031のように、右から左への方向の順番で各領域のグラフィックデータを生成することが決定されている。
【0046】
従って、左側表示画像データ501の処理を担当する画像処理チップのグラフィック生成部は、領域D、領域E、領域F、領域G、領域H、領域Iの順番でグラフィックデータを生成する。また、中央表示画像データ502の処理を担当する画像処理チップのグラフィック生成部は、領域G、領域F、領域H、領域E、領域I、領域Dの順番でグラフィックデータを生成する。また、右側表示画像データ503の処理を担当する画像処理チップのグラフィック生成部は、領域I、領域H、領域G、領域F、領域E、領域Dの順番でグラフィックデータを生成する。
【0047】
次に、高解像度画像データを空間で4つの画像データに分割し、分割された4つの画像データの処理を4つの画像処理チップで並列に行う場合について説明する。即ち、ここでは、
図1に示した構成に画像処理チップB121と同等のチップを2つ追加した画像処理システムにて、上記分割された4つの画像データの処理を行う場合について説明する。
【0048】
図6は、4つの画像処理チップを用いた場合におけるグラフィックデータの生成順番の決定方法の例を示す図である。ここでは、
図6に示すように、左上表示画像データ601、右上表示画像データ602、左下表示画像データ603及び右下表示画像データ604のように、田の字型に高解像度画像データを分割した場合について考える。
【0049】
左上表示画像データ601については、矢印6011のように、左上から中心への方向の順番で各領域のグラフィックデータを生成することが決定されている。右上表示画像データ602については、矢印6021のように、右上から中心への方向の順番で各領域のグラフィックデータを生成することが決定されている。左下表示画像データ603については、矢印6031のように、左下から中心への方向の順番で各領域のグラフィックデータを生成することが決定されている。右下表示画像データ604については、矢印6041のように、右下から中心への方向の順番で各領域のグラフィックデータを生成することが決定されている。
【0050】
従って、左上画像データ601の処理を担当する画像処理チップのグラフィック生成部は、領域E、領域F、領域G、領域J、領域K、領域H、領域L、領域M、領域O、領域P、領域I、領域Q、領域N、領域R、領域Sの順番でグラフィックデータを生成する。また、右上画像データ602の処理を担当する画像処理チップのグラフィック生成部は、領域I、領域N、領域H、領域M、領域S、領域R、領域G、領域L、領域Q、領域F、領域K、領域P、領域E、領域J、領域Oの順番でグラフィックデータを生成する。また、左下画像データ603の処理を担当する画像処理チップのグラフィック生成部は、領域O、領域P、領域Q、領域R、領域J、領域K、領域L、領域S、領域M、領域N、領域E、領域F、領域G、領域H、領域Iの順番でグラフィックデータを生成する。さらに、右下表示画像データ604の処理を担当する画像処理チップのグラフィック生成部は、領域S、領域N、領域R、領域I、領域M、領域Q、領域H、領域L、領域P、領域G、領域K、領域O、領域F、領域J、領域Eの順番でグラフィックデータを生成する。
次に、高解像度画像データを空間で9つの画像データに分割し、分割された9つの画像データの処理を9つの画像処理チップで平行に行う場合について説明する。
図7は、9つの画像処理チップを用いた場合におけるグラフィックデータの生成順番の決定方法の例を示す図である。
図7において、分割した画像データ701,702,703,704,706,707,708及び709は、画像データの境界及び分割境界の両方を持つ。従って、生成の順番は、画像データの境界から分割境界の方向になるよう、それぞれ矢印7011,7021,7031,7041,7061,7071,7081及び7091の方向になる。しかし、画像データ705は、画像データの境界を持たない。その場合は、生成順番は、画像データの中心から、分割境界の方向、即ち、矢印7051の方向となる。
従って、画像データ701の処理を担当する画像処理チップのグラフィック生成部は、領域E、領域F、領域H、領域I、領域G、領域K、領域J、領域L、領域Mの順番でグラフィックデータを生成する。画像データ702の処理を担当する画像処理チップのグラフィック生成部は、領域G、領域F、領域J、領域I、領域E、領域H、領域M、領域L、領域Kの順番でグラフィックデータを生成する。画像データ703の処理を担当する画像処理チップのグラフィック生成部は、領域G、領域J、領域F、領域I、領域E、領域M、領域L、領域H、領域Kの順番でグラフィックデータを生成する。画像データ704の処理を担当する画像処理チップのグラフィック生成部は、領域K、領域H、領域E、領域L、領域I、領域F、領域M、領域J、領域Gの順番でグラフィックデータを生成する。画像データ705の処理を担当する画像処理チップのグラフィック生成部は、領域M、領域J、領域L、領域I、領域G、領域K、領域F、領域H、領域Eの順番でグラフィックデータを生成する。画像データ706の処理を担当する画像処理チップのグラフィック生成部は、領域M、領域J、領域G、領域L、領域I、領域F、領域K、領域H、領域Eの順番でグラフィックデータを生成する。画像データ707の処理を担当する画像処理チップのグラフィック生成部は、領域K、領域L、領域H、領域I、領域M、領域E、領域J、領域F、領域Gの順番でグラフィックデータを生成する。画像データ708の処理を担当する画像処理チップのグラフィック生成部は、領域M、領域L、領域K、領域J、領域I、領域H、領域G、領域F、領域Eの順番でグラフィックデータを生成する。
画像データ709の処理を担当する画像処理チップのグラフィック生成部は、領域M、領域J、領域L、領域I、領域G、領域K、領域F、領域H、領域Eの順番でグラフィックデータを生成する。
【0051】
上述した実施形態においては、複数の画像処理チップのグラフィック生成部間で、グラフィック生成負荷を均一にできるとともに、他方への画像処理チップへのグラフィック転送も減らすことが可能となる。従って、グラフィックデータ生成の指示を受けてから、実際にグラフィックデータを重畳した画像データを出力するまでの時間を短くすることが可能となる。また、アニメーション等を表示する場合は、グラフィックデータの表示スピード、即ち更新レートを可能な限り速くすることが可能となる。
【0052】
なお、グラフィックデータの分割単位に関して、グラフィックデータの大きさ、グラフィック生成部の処理能力、グラフィック生成部とプロセッサ間の通信のオーバーヘッド、メモリ転送時の帯域及びレイテンシ等の様々な要因によって、最適な分割単位は変化する。従って、本発明は、グラフィックデータの分割単位に関して、特に限定をかけるものではない。
【0053】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。